نحوه شناسایی پروتئین های ضروری با استفاده از مرکزیت بین
شناسایی پروتئین های ضروری در سال های اخیر به یکی از زمینه های تحقیقاتی مهم تبدیل شده است. ارتباط بین پروتئینهای ضروری و ژنهای بیماری بسیار مهم شده است تشخیص و درمان بیماری. آزمایشهای بیولوژیکی سنتی اغلب بسیار پرهزینه و زمانبر هستند، به این معنی که روشهای محاسباتی حیاتیتر میشوند.
در این آموزش از آن استفاده خواهیم کرد مرکزیت بینابینی برای شناسایی پروتئین های ضروری برای این کار، ما از Memgraph، یک پلت فرم تجزیه و تحلیل گراف، استفاده می کنیم که می تواند تجزیه و تحلیل گراف پیچیده را در انواع شبکه ها انجام دهد. حتی اگر ما از مرکزیت میانی استفاده خواهیم کرد، الگوریتمهای گراف دیگری نیز میتوانند برای آن اعمال شوند شبکه تعامل پروتئین و پروتئینمانند سایر معیارهای مرکزیت یا الگوریتم PageRank.
ما همچنین یک برنامه وب ساده ایجاد کردیم که می تواند به شما در تجسم شبکه کمک کند. برای اطلاعات بیشتر به مخزن GitHub مراجعه کنید.
پیش نیازها
برای این آموزش شما نیاز دارید:
- یک دویدن ممگراف نمونه، مثال؛
- را آزمایشگاه ممگراف رابط کاربری بصری
ساده ترین راه برای نصب هر دو، دانلود تصویر Memgraph Platform Docker است.
فقط Docker را نصب کنید و دستور زیر را اجرا کنید تا همه چیز راه اندازی و اجرا شود:
docker run -it -p 7687:7687 -p 3000:3000 memgraph/memgraph-platform
این دستور تصویر Memgraph Platform را به صورت محلی جستجو می کند و اگر پیدا نشد، Docker آن را برای شما دانلود می کند.
پس از پایان دانلود و شروع Memgraph، می توانید Memgraph Lab را در مرورگر خود در آدرس باز کنید https://localhost:3000
.
1. ساخت مدل داده های نمودار
داده هایی که در این آموزش استفاده خواهیم کرد بر اساس a ایجاد شده است شبکه تعامل پروتئین-پروتئین بافت خاص [1]. این مجموعه داده شامل موارد خاصی است شبکه های تعامل پروتئین-پروتئین برای مختلف بافت های انسانی.
را گره ها در نمودار همه برچسب گذاری شده اند PROTEIN
و نشان دهنده پروتئین های موجود در بافت های انسانی است. Gene را وارد کنید پایگاه داده اختصاصی ژن در مرکز ملی اطلاعات بیوتکنولوژی (NCBI) است و شناسه ژن Entrez یک شناسه منحصر به فرد برای یک ژن است که دستورالعمل های خاص پروتئین را نشان می دهد.
برای این آموزش، مجموعه دادههای موجود را با اطلاعات اضافی خراشیده شده از NCBI گسترش دادهایم تا بتوانید به راحتی شبکههای پروتئینی را کاوش کنید. هر یک گره دارای خواص:
- EnterGeneID
- نماد رسمی
- OfficialFullName
- خلاصه
لبه ها از نوع INTERACTION
نشان دهنده برهمکنش های فیزیکی خاص بافت بین پروتئین ها است و هیچ خاصیتی را شامل نمی شود.
2. واردات شبکه پروتئین
دو فایل برای هر بافت موجود است، یکی حاوی توضیحات پروتئین در بافت انتخاب شده، و دیگری فهرستی از تمام تعاملات پروتئینی است. می توانید داده های مربوط به بافت مورد استفاده در این آموزش را از اینجا دانلود کنید.
پس از دانلود و استخراج فایلهای CSV، باید آنها را در ظرف Docker کپی کنیم، جایی که Memgraph میتواند به آنها دسترسی داشته باشد.
1. ابتدا پلتفرم Memgraph را پیدا کنید CONTAINER_ID
با دویدن:
docker ps
2. اکنون میتوانید فایلها را در ظرف کپی کنید docker cp
دستور:
docker cp interactions_cochlea.csv CONTAINER_ID:/
docker cp interactions_cochlea_properties.csv.csv CONTAINER_ID:/
تعویض را فراموش نکنید
CONTAINER_ID
با شناسه واقعی مرحله قبل.
3. بند LOAD CSV شما را قادر می سازد تا داده ها را از یک فایل CSV انتخابی خود در یک پرس و جو بارگیری و استفاده کنید. ابتدا میخواهیم گرهها را وارد کنیم. کوئری زیر را در آن اجرا کنید آزمایشگاه ممگراف یا mgconsole:
LOAD CSV FROM "/interactions_cochlea_properties.csv"
WITH HEADER DELIMITER "|" AS row
CREATE (n:PROTEIN
{EntrezGeneID: ToInteger(row.EntrezGeneID),
OfficialSymbol: row.OfficialSymbol,
OfficialFullName: row.OfficialFullName,
Summary: row.Summary}
);
4. اکنون، میخواهیم یک فهرست پایگاه داده ایجاد کنیم تا لبهها را با کارایی بیشتری وارد کنیم:
CREATE INDEX ON :PROTEIN(EntrezGeneID);
5. در نهایت، می توانیم لبه ها را ایجاد کنیم:
LOAD CSV FROM "/interactions_cochlea.csv"
WITH HEADER DELIMITER "|" AS row
MATCH (a:PROTEIN {EntrezGeneID: toInteger(row.EntrezGeneID1)}),
(b:PROTEIN {EntrezGeneID: toInteger(row.EntrezGeneID2)})
CREATE (a)-[e:INTERACTION]->(b);
3. شناسایی پروتئین های ضروری با مرکزیت بین
کتابخانه نمودار MAGE
پسوندهای گراف پیشرفته Memgraphیا به طور خلاصه، MAGE، یک کتابخانه گراف منبع باز است که شامل پیاده سازی الگوریتم های گراف استاندارد و افزایشی است. شما می توانید از هر یک از الگوریتم ها و همچنین پیاده سازی الگوریتم های خود استفاده کنید.
مرکزیت بین گنجانده شده است MAGE، و اجرای الگوریتم از الهام گرفته شده است الگوریتم برندز.
محاسبه مرکزیت بین هر پروتئین
1. ما یک پرس و جوی Cypher ایجاد می کنیم که الگوریتم مرکزیت بین بودن را برای هر گره فراخوانی می کند و نتایج را در ویژگی ذخیره می کند. BetweennessCentrality
:
CALL betweenness_centrality.get(FALSE, TRUE)
YIELD node, betweenness_centrality
SET node.BetweennessCentrality = toFloat(betweenness_centrality);
2. پس از محاسبه مرکزیت بین هر گره، میتوانیم آنها را بر اساس این مقدار مرتب کنیم. مهمترین پروتئینهای بافت دارای بالاترین میزان مرکزیت هستند:
MATCH (node:PROTEIN)
RETURN node
ORDER BY node.BetweennessCentrality DESC;
اگر پرس و جو را در Memgraph Lab اجرا می کنید، نتایج باید مشابه موارد زیر باشد:
نتایج کاملاً واضح است، پروتئین ضروری با بالاترین مرکزیت میانی در آن حلزون گوش بافت است برنامه. بین پروتئین APP و بیماری آلزایمر، که می تواند به عنوان ارتباط بین پروتئین های ضروری و بیماری ها به طور کلی تعبیر شود. در حالی که این یک ساده سازی بسیار بزرگ است، اما هنوز یک آزمایش تحلیل شبکه جالب است.
از آنجایی که شبکههای برهمکنش پروتئین-پروتئین ساختارهای بسیار پیچیده و بسیار مرتبطی هستند، تکنیکهای حوزه نظریه گراف برای تجزیه و تحلیل و شناسایی پروتئینهای ضروری مناسب هستند. پیشرفتهای فناوری استفاده از چنین روشهایی را به جای انجام آزمایشهای مبتنی بر منابع بسیار آسانتر کرده است. در حالی که این پست آموزشی بر روی یک معیار مرکزیت کلی تمرکز دارد، می توان از الگوریتم های دیگری مانند رتبه صفحه نیز استفاده کرد.
ما همچنین یک ساده ایجاد کرده ایم برنامه وب که می تواند این شبکه های تعامل پروتئین-پروتئین را تجسم کند. فقط دستورالعملهای نصب ساده را دنبال کنید، و در نهایت باید ابزاری ساده و در عین حال قدرتمند برای تجزیه و تحلیل تعاملات پروتئین در بافتهای انسانی داشته باشید.
منابع:
[1]: Marinka Zitnik و Jure Leskovec. (2018). مجموعه داده های BioSNAP: مجموعه داده های شبکه زیست پزشکی استانفورد. http://snap.stanford.edu/biodata.