پادکست های تولید شده با هوش مصنوعی:
در این بخش با استفاده از هوش مصنوعی و به صورت صوتی، مقاله های مروری ارزشمندی را به شما به اشتراک می گذارم. براساس تجربه و برای استفاده بهتر، پادکست ها به زبان انگلیسی تولید می شوند و متن مقاله هم در اختیار شما قرار می گیرد.
1. RNA sequencing the teenage
2. DNA sequencing at 40: past, present and future
❤3
Audio
مقاله منتشر شده در سال ۲۰۱۹ توسط استارک، گرزلاک و هادفیلد، با عنوان "RNA sequencing the teenage years"، یک مرور جامع از تاریخچه، روشها و کاربردهای تکنیک RNA sequencing (RNA-seq) ارائه میدهد. این مقاله ابتدا به کاربرد اصلی RNA-seq یعنی تجزیه و تحلیل بیان ژن افتراقی (DGE) و مراحل استاندارد آن میپردازد. سپس روشهای نوین RNA-seq از جمله RNA-seq تک سلولی (scRNA-seq)، ترانسکریپتومیکس مکانی (spatialomics) و RNA-seq طولانیخوان (long-read RNA-seq) را شرح میدهد و مزایا و معایب هر کدام را در مقایسه با روشهای کوتاهخوان سنتی بررسی میکند. این مقاله همچنین به اهمیت طراحی آزمایشگاهی مناسب و تحلیل دادههای بیوانفورماتیکی در مطالعات RNA-seq اشاره دارد و در نهایت به کاربردهای پیشرفتهتر این تکنیک در بررسی ساختار RNA (structurome) و برهمکنشهای RNA-پروتئین و RNA-RNA (interactome) میپردازد.
متن مقاله در بخش نظرات قرار دارد.
متن مقاله در بخش نظرات قرار دارد.
👏3
بیوانفورماتیک برای همه
بسم الله الرحمن الرحیم در این کانال قصد دارم تا به صورت کلاس های متعدد کارگاهی، مفاهیم بیوانفورماتیکی و برخی تکنیک های مورد استفاده در آنها را به زبان ساده توضیح دهم. بدیهی است که چون تجربه جدیدی برای بنده است و در محیط تلگرام انجام می شود، عاری از ایراد…
سلام و احترام
اگر تازه عضو کانال شده اید
از اینجا توضیحات مربوطه را مطالعه بفرمایید.
فهرست مطالب تا کنون هم اینجاست.
اگر تازه عضو کانال شده اید
از اینجا توضیحات مربوطه را مطالعه بفرمایید.
فهرست مطالب تا کنون هم اینجاست.
❤1
حلقهها (Loops) :
حلقهها در برنامهنویسی به ما این امکان را میدهند که یک بلوک از کد را چندین بار تکرار کنیم. این کار زمانی بسیار مفید است که بخواهیم یک عمل خاص را روی مجموعهای از دادهها انجام دهیم یا تا زمانی که یک شرط خاص برقرار است، یک قطعه کد را اجرا کنیم.
دو نوع اصلی حلقه در پایتون وجود دارد:
حلقه for: این حلقه برای تکرار روی یک دنباله (مانند یک لیست، یک رشته، یا یک محدوده از اعداد) استفاده میشود.
حلقه while: این حلقه تا زمانی که یک شرط خاص درست باشد، به اجرای بلوک کد خود ادامه میدهد.
حلقه for:
حلقه for در پایتون برای تکرار روی یک دنباله از آیتمها استفاده میشود. این دنباله میتواند یک لیست، یک تاپل، یک رشته، یا هر شی دیگری باشد که قابلیت پیمایش داشته باشد.
ساختار کلی حلقه for در پایتون به این صورت است:
for item in sequence:
# کدهایی که برای هر آیتم در دنباله اجرا میشوند
در اینجا، item یک متغیر است که در هر بار تکرار حلقه، به مقدار آیتم بعدی در sequence اختصاص داده میشود. sequence دنبالهای است که میخواهیم روی آن پیمایش کنیم. کدهایی که داخل بلوک for (با تورفتگی) قرار دارند، برای هر آیتم در دنباله یک بار اجرا میشوند.
یک مثال ساده در نظر بگیرید. فرض کنید یک لیست از نام ژنها داریم و میخواهیم هر کدام از آنها را چاپ کنیم:
gene_list = ["BRCA1", "TP53", "EGFR"]
for gene in gene_list:
print(gene)
در این مثال، حلقه for سه بار تکرار میشود. در تکرار اول، متغیر gene مقدار "BRCA1" را میگیرد و چاپ میشود. در تکرار دوم، gene مقدار "TP53" را میگیرد و چاپ میشود، و در تکرار سوم، gene مقدار "EGFR" را میگیرد و چاپ میشود.
✍🏻 تمرین: یک لیست از سه نوع مختلف سلول (مثلاً "neuron", "muscle", "epithelial") ایجاد کنید و سپس با استفاده از یک حلقه for، هر کدام از آنها را چاپ کنید. چطور این کار را انجام میدهید؟
cell_type = ["epithelial", "muscle", "neuron"]
for cell in cell_type :
print(cell)
```
حالا میخواهیم کمی بیشتر با حلقه for کار کنیم و ببینیم چطور میتوانیم از آن برای انجام کارهای مفیدتری استفاده کنیم.
فرض کنید یک لیست از طول RNAهای مختلف داریم:
rna_lengths = [150, 200, 180, 220]
میخواهیم برای هر طول RNA یک پیام چاپ کنیم که نشان دهد طول آن چند نوکلئوتید است. چطور میتوانیم از حلقه for برای این کار استفاده کنیم؟ راهنمایی: در داخل حلقه، میتوانید از متغیر rna_length (یا هر نام دیگری که انتخاب میکنید) برای دسترسی به طول هر RNA استفاده کنید و سپس آن را در یک دستور print() قرار دهید.
rna_lengths = [150, 200, 180, 220]
for RNA in rna_lengths :
print(RNA)
```
حالا چطور میتوانیم پیام چاپ شده را کمی informativeتر کنیم؟ به جای اینکه فقط عدد طول را چاپ کنیم، میخواهیم بگوییم "طول RNA برابر است با [طول]". برای این کار، میتوانیم از f-strings (رشتههای قالبی) در پایتون استفاده کنیم:
rna_lengths = [150, 200, 180, 220]
for rna_length in rna_lengths:
print(f"طول RNA برابر است با {rna_length}")
در این مثال، در هر بار تکرار حلقه، مقدار متغیر rna_length در داخل رشتهای که با f شروع میشود و مقدار متغیر در داخل {} قرار میگیرد، جایگزین میشود.
حالا شما امتحان کنید. لیست gene_list = ["BRCA1", "TP53", "EGFR"] را در نظر بگیرید. با استفاده از یک حلقه for، برای هر ژن یک پیام چاپ کنید که بگوید "ژن [نام ژن] در حال بررسی است." چطور این کار را انجام میدهید؟
gene_list = ["BRCA1", "TP53", "EGFR"]
for gene in gene_list:
print(f"ژن {gene} در حال بررسی است.")
```
حلقه while:
حلقه while در پایتون تا زمانی که یک شرط خاص درست (True) باشد، به اجرای بلوک کد خود ادامه میدهد. این نوع حلقه زمانی مفید است که تعداد تکرارها از قبل مشخص نباشد و بخواهیم تا رسیدن به یک وضعیت خاص، کد را اجرا کنیم.
ساختار کلی حلقه while در پایتون به این صورت است:
در اینجا، condition یک عبارت منطقی است. قبل از هر بار اجرای بلوک کد داخل حلقه، این شرط ارزیابی میشود. اگر شرط True باشد، کد اجرا میشود. این فرآیند تا زمانی که condition False شود، ادامه پیدا میکند.
یک مثال ساده در نظر بگیرید. فرض کنید میخواهیم یک شمارنده از 1 تا 5 چاپ کنیم:
در این مثال، ابتدا متغیر counter با مقدار 1 (مقدار اولیه) تعریف میشود. سپس حلقه while شروع میشود. شرط counter <= 5 در ابتدا درست است، بنابراین مقدار counter چاپ میشود و سپس با 1 واحد افزایش مییابد. این فرآیند تکرار میشود تا زمانی که مقدار counter به 6 برسد. در این زمان، شرط counter <= 5 نادرست میشود و حلقه متوقف میشود.
حالا یک سناریو زیستی در نظر بگیرید. فرض کنید میخواهیم تعداد باکتریها را در یک محیط کشت در طول زمان شبیهسازی کنیم. اگر تعداد باکتریها در هر ساعت 10% افزایش یابد و ما با 100 باکتری شروع کنیم، میخواهیم ببینیم بعد از چند ساعت تعداد باکتریها از 200 بیشتر میشود.
✍🏻 : چطور میتوانیم با استفاده از حلقه while این را شبیهسازی کنیم؟ راهنمایی: یک متغیر برای تعداد باکتریها و یک متغیر برای تعداد ساعات در نظر بگیرید. در هر تکرار حلقه، تعداد باکتریها را 10% افزایش دهید و تعداد ساعات را یک واحد اضافه کنید. حلقه باید تا زمانی ادامه پیدا کند که تعداد باکتریها از 200 بیشتر شود.
```
bac_n = 100
hours = 0
while bac_n < 200:
hours += 1
bac_n = bac_n + (bac_n * 0.1)
print(hours)
```
✍🏻 : خروجی برنامه چند خواهد بود؟ سعی کنید کد را ذهنی یا اگر پایتون روی سیستمتان نصب است، اجرا کنید:
```
8
```
اینجا مفاهیم اولیه پایتون به اتمام می رسد.
حلقه while در پایتون تا زمانی که یک شرط خاص درست (True) باشد، به اجرای بلوک کد خود ادامه میدهد. این نوع حلقه زمانی مفید است که تعداد تکرارها از قبل مشخص نباشد و بخواهیم تا رسیدن به یک وضعیت خاص، کد را اجرا کنیم.
ساختار کلی حلقه while در پایتون به این صورت است:
while condition:
# کدهایی که تا زمانی که شرط درست باشد اجرا میشوند
# مهم است که در داخل حلقه، تغییری ایجاد شود که در نهایت شرط را نادرست کند،
# وگرنه حلقه برای همیشه ادامه پیدا میکند (حلقه بینهایت)
در اینجا، condition یک عبارت منطقی است. قبل از هر بار اجرای بلوک کد داخل حلقه، این شرط ارزیابی میشود. اگر شرط True باشد، کد اجرا میشود. این فرآیند تا زمانی که condition False شود، ادامه پیدا میکند.
یک مثال ساده در نظر بگیرید. فرض کنید میخواهیم یک شمارنده از 1 تا 5 چاپ کنیم:
counter = 1
while counter <= 5:
print(counter)
counter += 1
در این مثال، ابتدا متغیر counter با مقدار 1 (مقدار اولیه) تعریف میشود. سپس حلقه while شروع میشود. شرط counter <= 5 در ابتدا درست است، بنابراین مقدار counter چاپ میشود و سپس با 1 واحد افزایش مییابد. این فرآیند تکرار میشود تا زمانی که مقدار counter به 6 برسد. در این زمان، شرط counter <= 5 نادرست میشود و حلقه متوقف میشود.
حالا یک سناریو زیستی در نظر بگیرید. فرض کنید میخواهیم تعداد باکتریها را در یک محیط کشت در طول زمان شبیهسازی کنیم. اگر تعداد باکتریها در هر ساعت 10% افزایش یابد و ما با 100 باکتری شروع کنیم، میخواهیم ببینیم بعد از چند ساعت تعداد باکتریها از 200 بیشتر میشود.
✍🏻 : چطور میتوانیم با استفاده از حلقه while این را شبیهسازی کنیم؟ راهنمایی: یک متغیر برای تعداد باکتریها و یک متغیر برای تعداد ساعات در نظر بگیرید. در هر تکرار حلقه، تعداد باکتریها را 10% افزایش دهید و تعداد ساعات را یک واحد اضافه کنید. حلقه باید تا زمانی ادامه پیدا کند که تعداد باکتریها از 200 بیشتر شود.
bac_n = 100
hours = 0
while bac_n < 200:
hours += 1
bac_n = bac_n + (bac_n * 0.1)
print(hours)
```
✍🏻 : خروجی برنامه چند خواهد بود؟ سعی کنید کد را ذهنی یا اگر پایتون روی سیستمتان نصب است، اجرا کنید:
8
```
اینجا مفاهیم اولیه پایتون به اتمام می رسد.
آشنایی با سیستمهای عامل و کار با خط فرمان:
سیستم عامل (Operating System - OS) نرمافزاری است که بین کاربر و سختافزار کامپیوتر قرار میگیرد و منابع سختافزاری را مدیریت میکند. ویندوز، macOS و لینوکس از سیستم عاملهای رایج برای کامپیوترهای شخصی هستند.
خط فرمان (Command Line Interface - CLI) یک رابط کاربری متنی است که به شما اجازه میدهد با تایپ کردن دستورات، با سیستم عامل تعامل داشته باشید. در مقابل، رابط کاربری گرافیکی (Graphical User Interface - GUI) مانند آنچه که شما معمولاً در ویندوز یا macOS میبینید، از آیکونها و منوها برای تعامل استفاده میکند.
شاید در ابتدا کار با خط فرمان کمی ترسناک به نظر برسد، اما در بسیاری از کارهای مربوط به بیوانفورماتیک، به خصوص وقتی با سرورها یا سیستمهای لینوکسی بزرگ کار میکنید، بسیار قدرتمند و کارآمد است. بسیاری از ابزارهای بیوانفورماتیکی به بهترین شکل از طریق خط فرمان اجرا میشوند.
وقتی شما یک برنامه را باز میکنید، یک فایل را ذخیره میکنید، یا به اینترنت متصل میشوید، در واقع دارید از طریق سیستم عامل با کامپیوتر خود ارتباط برقرار میکنید.خط فرمان یک راه متنی برای انجام همین کارها است. به جای کلیک کردن روی آیکونها و منوها، شما دستورات متنی خاصی را تایپ میکنید و سیستم عامل آن دستورات را اجرا میکند.
چرا باید از خط فرمان استفاده کنیم؟
* قدرت و انعطافپذیری: بسیاری از کارهای پیچیده و خودکارسازی فرایندها از طریق خط فرمان بسیار سادهتر و سریعتر انجام میشوند.
* دسترسی به ابزارهای تخصصی: بسیاری از ابزارهای بیوانفورماتیکی، به ویژه آنهایی که روی سرورها اجرا میشوند، فقط از طریق خط فرمان قابل استفاده هستند.
* مدیریت از راه دور: وقتی با سرورهای لینوکسی کار میکنید (که در بیوانفورماتیک رایج است)، معمولاً فقط از طریق خط فرمان به آنها دسترسی خواهید داشت.
در سیستم عامل ویندوز، شما میتوانید از برنامهای به نام Command Prompt یا PowerShell برای دسترسی به خط فرمان استفاده کنید. در macOS و لینوکس، برنامهای به نام Terminal این کار را انجام میدهد.
* Command Prompt (یا CMD)
رابط خط فرمان قدیمیتر در ویندوز است و بسیاری از دستورات اساسی را پشتیبانی میکند. برای باز کردن آن، میتوانید در منوی استارت عبارت "cmd" را جستجو کرده و روی "Command Prompt" کلیک کنید. یک پنجره سیاه با یک مکاننما چشمکزن باز خواهد شد. این جایی است که شما دستورات خود را تایپ میکنید.
* PowerShell
یک رابط خط فرمان جدیدتر و قدرتمندتر است که امکانات بیشتری را نسبت به Command Prompt ارائه میدهد. برای باز کردن آن، میتوانید در منوی استارت عبارت "powershell" را جستجو کرده و روی "Windows PowerShell" کلیک کنید. پنجره آن معمولاً پسزمینه آبی دارد.
سیستم عامل (Operating System - OS) نرمافزاری است که بین کاربر و سختافزار کامپیوتر قرار میگیرد و منابع سختافزاری را مدیریت میکند. ویندوز، macOS و لینوکس از سیستم عاملهای رایج برای کامپیوترهای شخصی هستند.
خط فرمان (Command Line Interface - CLI) یک رابط کاربری متنی است که به شما اجازه میدهد با تایپ کردن دستورات، با سیستم عامل تعامل داشته باشید. در مقابل، رابط کاربری گرافیکی (Graphical User Interface - GUI) مانند آنچه که شما معمولاً در ویندوز یا macOS میبینید، از آیکونها و منوها برای تعامل استفاده میکند.
شاید در ابتدا کار با خط فرمان کمی ترسناک به نظر برسد، اما در بسیاری از کارهای مربوط به بیوانفورماتیک، به خصوص وقتی با سرورها یا سیستمهای لینوکسی بزرگ کار میکنید، بسیار قدرتمند و کارآمد است. بسیاری از ابزارهای بیوانفورماتیکی به بهترین شکل از طریق خط فرمان اجرا میشوند.
وقتی شما یک برنامه را باز میکنید، یک فایل را ذخیره میکنید، یا به اینترنت متصل میشوید، در واقع دارید از طریق سیستم عامل با کامپیوتر خود ارتباط برقرار میکنید.خط فرمان یک راه متنی برای انجام همین کارها است. به جای کلیک کردن روی آیکونها و منوها، شما دستورات متنی خاصی را تایپ میکنید و سیستم عامل آن دستورات را اجرا میکند.
چرا باید از خط فرمان استفاده کنیم؟
* قدرت و انعطافپذیری: بسیاری از کارهای پیچیده و خودکارسازی فرایندها از طریق خط فرمان بسیار سادهتر و سریعتر انجام میشوند.
* دسترسی به ابزارهای تخصصی: بسیاری از ابزارهای بیوانفورماتیکی، به ویژه آنهایی که روی سرورها اجرا میشوند، فقط از طریق خط فرمان قابل استفاده هستند.
* مدیریت از راه دور: وقتی با سرورهای لینوکسی کار میکنید (که در بیوانفورماتیک رایج است)، معمولاً فقط از طریق خط فرمان به آنها دسترسی خواهید داشت.
در سیستم عامل ویندوز، شما میتوانید از برنامهای به نام Command Prompt یا PowerShell برای دسترسی به خط فرمان استفاده کنید. در macOS و لینوکس، برنامهای به نام Terminal این کار را انجام میدهد.
* Command Prompt (یا CMD)
رابط خط فرمان قدیمیتر در ویندوز است و بسیاری از دستورات اساسی را پشتیبانی میکند. برای باز کردن آن، میتوانید در منوی استارت عبارت "cmd" را جستجو کرده و روی "Command Prompt" کلیک کنید. یک پنجره سیاه با یک مکاننما چشمکزن باز خواهد شد. این جایی است که شما دستورات خود را تایپ میکنید.
* PowerShell
یک رابط خط فرمان جدیدتر و قدرتمندتر است که امکانات بیشتری را نسبت به Command Prompt ارائه میدهد. برای باز کردن آن، میتوانید در منوی استارت عبارت "powershell" را جستجو کرده و روی "Windows PowerShell" کلیک کنید. پنجره آن معمولاً پسزمینه آبی دارد.
برای شروع، چند دستور اساسی وجود دارد که در هر دو محیط (CMD و PowerShell) کار میکنند و برای ناوبری و مشاهده فایلها و پوشهها مفید هستند:
dir :
(یا ls در لینوکس/macOS): این دستور لیستی از تمام فایلها و پوشههای موجود در پوشه فعلی (Current Directory) را نمایش میدهد. وقتی خط فرمان را باز میکنید، معمولاً در پوشه کاربری خود قرار دارید.
cd (Change Directory):
از این دستور برای تغییر پوشه فعلی استفاده میشود. به عنوان مثال، اگر بخواهید به پوشهای به نام "Documents" بروید که در پوشه فعلی شما قرار دارد، تایپ کنید cd Documents و سپس Enter بزنید.
cd..:
این دستور شما را یک سطح به عقب در ساختار پوشهها میبرد (به پوشه والد).
mkdir (Make Directory):
از این دستور برای ایجاد یک پوشه جدید استفاده میشود. به عنوان مثال، برای ایجاد پوشهای به نام "bioinformatics_project"، تایپ کنید mkdir bioinformatics_project و Enter بزنید.
type (یا cat در لینوکس/macOS):
از این دستور برای نمایش محتویات یک فایل متنی استفاده میشود. به عنوان مثال، برای دیدن محتویات فایلی به نام "sequence.txt"، تایپ کنید type sequence.txt و Enter بزنید.به فاصله بین نام فایل و دستور دقت کنید.
در ادامه چند دستور مفید دیگر در خط فرمان (هم برای ویندوز و هم برای لینوکس) به شما معرفی میکنم:
کپی کردن فایلها:
copy (ویندوز) / cp (لینوکس/macOS):
ویندوز:
لینوکس و macOS:
مثال:
یک کپی از فایل sequence.txt با نام backup.txt ایجاد میکند.
انتقال فایلها یا تغییر نام آنها:
move (ویندوز) / mv (لینوکس/macOS)
ویندوز (انتقال):
ویندوز (تغییر نام):
لینوکس/macOS (انتقال):
لینوکس/macOS (تغییر نام):
مثال (ویندوز - انتقال):
فایل results.csv را به پوشه project_folder منتقل میکند.
مثال (لینوکس - تغییر نام):
نام فایل data.txt را به processed_data.txt تغییر میدهد.
حذف فایلها:
del (ویندوز) / rm (لینوکس/macOS):
مراقب باشید! فایلهای حذف شده با این دستور معمولاً قابل بازیابی نیستند.
ویندوز:
لینوکس/macOS:
مثال:
فایل temp.log را حذف میکند.
دستورات سیستمی:
برای پاک کردن صفحه خط فرمان و نمایش دستورات جدید در بالای صفحه.
cls (ویندوز) / clear (لینوکس/macOS):
برای بستن پنجره خط فرمان:
exit
دستورات مربوط به کمک:
برای دریافت راهنما در مورد یک دستور خاص:
help (ویندوز) / man (لینوکس/macOS):
ویندوز:
help command_name
مثال:
لینوکس:/macOS:
man command_name
مثال:
اینها فقط چند نمونه از دستورات مفید هستند. با تمرین و کار بیشتر با خط فرمان، با دستورات بیشتری آشنا خواهید شد.
dir :
(یا ls در لینوکس/macOS): این دستور لیستی از تمام فایلها و پوشههای موجود در پوشه فعلی (Current Directory) را نمایش میدهد. وقتی خط فرمان را باز میکنید، معمولاً در پوشه کاربری خود قرار دارید.
cd (Change Directory):
از این دستور برای تغییر پوشه فعلی استفاده میشود. به عنوان مثال، اگر بخواهید به پوشهای به نام "Documents" بروید که در پوشه فعلی شما قرار دارد، تایپ کنید cd Documents و سپس Enter بزنید.
cd..:
این دستور شما را یک سطح به عقب در ساختار پوشهها میبرد (به پوشه والد).
mkdir (Make Directory):
از این دستور برای ایجاد یک پوشه جدید استفاده میشود. به عنوان مثال، برای ایجاد پوشهای به نام "bioinformatics_project"، تایپ کنید mkdir bioinformatics_project و Enter بزنید.
type (یا cat در لینوکس/macOS):
از این دستور برای نمایش محتویات یک فایل متنی استفاده میشود. به عنوان مثال، برای دیدن محتویات فایلی به نام "sequence.txt"، تایپ کنید type sequence.txt و Enter بزنید.به فاصله بین نام فایل و دستور دقت کنید.
در ادامه چند دستور مفید دیگر در خط فرمان (هم برای ویندوز و هم برای لینوکس) به شما معرفی میکنم:
کپی کردن فایلها:
copy (ویندوز) / cp (لینوکس/macOS):
ویندوز:
copy source_file destination_file
لینوکس و macOS:
cp source_file destination_file
مثال:
copy sequence.txt backup.txt
یک کپی از فایل sequence.txt با نام backup.txt ایجاد میکند.
انتقال فایلها یا تغییر نام آنها:
move (ویندوز) / mv (لینوکس/macOS)
ویندوز (انتقال):
move source_file destination_directory
ویندوز (تغییر نام):
ren old_name new_name
لینوکس/macOS (انتقال):
mv source_file destination_directory
لینوکس/macOS (تغییر نام):
mv old_name new_name
مثال (ویندوز - انتقال):
move results.csv project_folder
فایل results.csv را به پوشه project_folder منتقل میکند.
مثال (لینوکس - تغییر نام):
mv data.txt processed_data.txt
نام فایل data.txt را به processed_data.txt تغییر میدهد.
حذف فایلها:
del (ویندوز) / rm (لینوکس/macOS):
مراقب باشید! فایلهای حذف شده با این دستور معمولاً قابل بازیابی نیستند.
ویندوز:
del filename
لینوکس/macOS:
rm filename
مثال:
del temp.log
فایل temp.log را حذف میکند.
دستورات سیستمی:
برای پاک کردن صفحه خط فرمان و نمایش دستورات جدید در بالای صفحه.
cls (ویندوز) / clear (لینوکس/macOS):
برای بستن پنجره خط فرمان:
exit
دستورات مربوط به کمک:
برای دریافت راهنما در مورد یک دستور خاص:
help (ویندوز) / man (لینوکس/macOS):
ویندوز:
help command_name
مثال:
help dir
لینوکس:/macOS:
man command_name
مثال:
man ls
اینها فقط چند نمونه از دستورات مفید هستند. با تمرین و کار بیشتر با خط فرمان، با دستورات بیشتری آشنا خواهید شد.
کاربردهای خط فرمان در بیوانفورماتیک :
1. مدیریت فایلها و دایرکتوریهای بزرگ دادههای زیستی: دادههای بیولوژیکی مانند فایلهای توالی DNA یا RNA میتوانند بسیار بزرگ باشند. خط فرمان به شما اجازه میدهد تا این فایلها را به طور کارآمد کپی، انتقال، حذف یا سازماندهی کنید. برای مثال، ممکن است بخواهید تمام فایلهای مربوط به یک نمونه خاص را در یک پوشه جداگانه جمعآوری کنید.فرض کنید شما تعداد زیادی فایل توالی DNA دارید که از یک آزمایش تعیین توالی به دست آمدهاند و میخواهید تمام فایلهایی که پسوند .fastq.gz دارند را به یک پوشه به نام raw_reads منتقل کنید. در لینوکس میتوانید از دستور mv به همراه wildcard (*) استفاده کنید:
2. اجرای ابزارهای بیوانفورماتیکی: بسیاری از ابزارهای مهم بیوانفورماتیکی مانند BLAST (برای جستجوی توالیهای مشابه)، SAMtools (برای کار با دادههای تعیین توالی نسل بعد)، و GATK (برای تحلیل دادههای ژنوم) از طریق خط فرمان اجرا میشوند. شما معمولاً دستور خاصی را با آرگومانهای مختلف (مانند فایل ورودی، فایل خروجی، و پارامترهای تحلیل) تایپ میکنید تا ابزار کار خود را انجام دهد.
برای مثال، برای اجرای BLAST میتوانید دستوری شبیه به این در خط فرمان وارد کنید:
این دستور فایل توالی ورودی (input.fasta) را در پایگاه داده نوکلئوتیدی (nt) جستجو میکند و نتایج را در فایل output.txt ذخیره میکند. در مورد جزئیات بلاست بعدا صحبت خواهیم کرد.
3. خودکارسازی فرایندها (Scripting): شما میتوانید مجموعهای از دستورات خط فرمان را در یک فایل اسکریپت (مانند اسکریپتهای Bash در لینوکس) ذخیره کنید و سپس آن اسکریپت را اجرا کنید تا یک سری کارها به صورت خودکار و بدون دخالت دستی انجام شوند. این برای تحلیلهای تکراری یا پردازش دستهای از فایلها بسیار مفید است.تصور کنید شما هر روز یک فایل گزارش جدید دریافت میکنید و میخواهید به طور خودکار خطوط خاصی از آن را استخراج کرده و در یک فایل دیگر ذخیره کنید. میتوانید یک اسکریپت ساده با استفاده از ابزارهایی مانند grep و redirection (>) در لینوکس بنویسید:
این اسکریپت تمام خطوطی که شامل کلمه "ERROR" در فایل daily_report.log هستند را پیدا کرده و در فایل error_log.txt ذخیره میکند. شما میتوانید این اسکریپت را به صورت زمانبندی شده اجرا کنید.
4. دسترسی به سرورهای راه دور: بسیاری از محاسبات سنگین بیوانفورماتیکی روی سرورهای لینوکسی انجام میشوند. شما معمولاً از طریق خط فرمان و با استفاده از پروتکلهایی مانند SSH (Secure Shell) به این سرورها متصل میشوید و دستورات لازم را برای اجرای تحلیلها وارد میکنید.
5. دستکاری و فیلتر کردن دادهها: ابزارهایی مانند grep (برای جستجوی الگو در فایلها) و awk (برای پردازش و تحلیل ساختاریافته دادهها) در خط فرمان به شما اجازه میدهند تا به سرعت بخشهای خاصی از فایلهای متنی بزرگ را پیدا کرده یا تغییر دهید.فرض کنید یک فایل متنی بزرگ دارید که حاوی اطلاعات مربوط به ژنها و عملکردهای آنها است و میخواهید فقط خطوط مربوط به ژنهایی که با حرف "A" شروع میشوند را ببینید. میتوانید از دستور grep استفاده کنید:
علامت ^ در grep به معنای "شروع خط" است، بنابراین این دستور تمام خطوطی را که با حرف "A" شروع میشوند نمایش میدهد.
1. مدیریت فایلها و دایرکتوریهای بزرگ دادههای زیستی: دادههای بیولوژیکی مانند فایلهای توالی DNA یا RNA میتوانند بسیار بزرگ باشند. خط فرمان به شما اجازه میدهد تا این فایلها را به طور کارآمد کپی، انتقال، حذف یا سازماندهی کنید. برای مثال، ممکن است بخواهید تمام فایلهای مربوط به یک نمونه خاص را در یک پوشه جداگانه جمعآوری کنید.فرض کنید شما تعداد زیادی فایل توالی DNA دارید که از یک آزمایش تعیین توالی به دست آمدهاند و میخواهید تمام فایلهایی که پسوند .fastq.gz دارند را به یک پوشه به نام raw_reads منتقل کنید. در لینوکس میتوانید از دستور mv به همراه wildcard (*) استفاده کنید:
mkdir raw_reads
mv *.fastq.gz raw_reads/
2. اجرای ابزارهای بیوانفورماتیکی: بسیاری از ابزارهای مهم بیوانفورماتیکی مانند BLAST (برای جستجوی توالیهای مشابه)، SAMtools (برای کار با دادههای تعیین توالی نسل بعد)، و GATK (برای تحلیل دادههای ژنوم) از طریق خط فرمان اجرا میشوند. شما معمولاً دستور خاصی را با آرگومانهای مختلف (مانند فایل ورودی، فایل خروجی، و پارامترهای تحلیل) تایپ میکنید تا ابزار کار خود را انجام دهد.
برای مثال، برای اجرای BLAST میتوانید دستوری شبیه به این در خط فرمان وارد کنید:
blastn -query input.fasta -db nt -out output.txt -evalue 0.001
این دستور فایل توالی ورودی (input.fasta) را در پایگاه داده نوکلئوتیدی (nt) جستجو میکند و نتایج را در فایل output.txt ذخیره میکند. در مورد جزئیات بلاست بعدا صحبت خواهیم کرد.
3. خودکارسازی فرایندها (Scripting): شما میتوانید مجموعهای از دستورات خط فرمان را در یک فایل اسکریپت (مانند اسکریپتهای Bash در لینوکس) ذخیره کنید و سپس آن اسکریپت را اجرا کنید تا یک سری کارها به صورت خودکار و بدون دخالت دستی انجام شوند. این برای تحلیلهای تکراری یا پردازش دستهای از فایلها بسیار مفید است.تصور کنید شما هر روز یک فایل گزارش جدید دریافت میکنید و میخواهید به طور خودکار خطوط خاصی از آن را استخراج کرده و در یک فایل دیگر ذخیره کنید. میتوانید یک اسکریپت ساده با استفاده از ابزارهایی مانند grep و redirection (>) در لینوکس بنویسید:
grep "ERROR" daily_report.log > error_log.txt
این اسکریپت تمام خطوطی که شامل کلمه "ERROR" در فایل daily_report.log هستند را پیدا کرده و در فایل error_log.txt ذخیره میکند. شما میتوانید این اسکریپت را به صورت زمانبندی شده اجرا کنید.
4. دسترسی به سرورهای راه دور: بسیاری از محاسبات سنگین بیوانفورماتیکی روی سرورهای لینوکسی انجام میشوند. شما معمولاً از طریق خط فرمان و با استفاده از پروتکلهایی مانند SSH (Secure Shell) به این سرورها متصل میشوید و دستورات لازم را برای اجرای تحلیلها وارد میکنید.
5. دستکاری و فیلتر کردن دادهها: ابزارهایی مانند grep (برای جستجوی الگو در فایلها) و awk (برای پردازش و تحلیل ساختاریافته دادهها) در خط فرمان به شما اجازه میدهند تا به سرعت بخشهای خاصی از فایلهای متنی بزرگ را پیدا کرده یا تغییر دهید.فرض کنید یک فایل متنی بزرگ دارید که حاوی اطلاعات مربوط به ژنها و عملکردهای آنها است و میخواهید فقط خطوط مربوط به ژنهایی که با حرف "A" شروع میشوند را ببینید. میتوانید از دستور grep استفاده کنید:
grep "^A" gene_functions.txt
علامت ^ در grep به معنای "شروع خط" است، بنابراین این دستور تمام خطوطی را که با حرف "A" شروع میشوند نمایش میدهد.
✍🏻تمرین:
فرض کنید شما در پوشه کاربری خود در سیستم عامل ویندوز قرار دارید. میخواهیم مراحل زیر را با استفاده از خط فرمان انجام دهید:
1. یک پوشه جدید به نام bio_data ایجاد کنید.
2. وارد پوشه bio_data شوید.
3. یک فایل متنی خالی به نام sequences.txt در داخل پوشه bio_data ایجاد کنید (راهنمایی: میتوانید از دستور type nul > filename برای ایجاد یک فایل خالی در ویندوز استفاده کنید).
4. به یک سطح عقب برگردید (به پوشه کاربری خود).
5. پوشه bio_data را به biological_data تغییر نام دهید
mkdir bio_data
یک پوشه جدید به نام bio_data ایجاد میکند.
cd bio_data
شما را به داخل پوشه bio_data میبرد.
type nul > sequences.txt
یک فایل متنی خالی به نام sequences.txt در پوشه فعلی ایجاد میکند.
cd ..
شما را یک سطح به عقب، به پوشه کاربری خود بازمیگرداند.
ren bio_data biological_data
نام پوشه bio_data را به biological_data تغییر میدهد.
معادل دستورات تمرین قبلی در سیستم عامل لینوکس به این صورت است:
1. mkdir bio_data
2. cd bio_data
3. touch sequences.txt
4. cd ..
5. mv bio_data biological_data
همانطور که میبینید، دستورات بسیار شبیه هستند. touch در لینوکس برای ایجاد یک فایل خالی استفاده میشود و mv هم برای انتقال و هم برای تغییر نام فایلها و پوشهها به کار میرود.
فرض کنید شما در پوشه کاربری خود در سیستم عامل ویندوز قرار دارید. میخواهیم مراحل زیر را با استفاده از خط فرمان انجام دهید:
1. یک پوشه جدید به نام bio_data ایجاد کنید.
2. وارد پوشه bio_data شوید.
3. یک فایل متنی خالی به نام sequences.txt در داخل پوشه bio_data ایجاد کنید (راهنمایی: میتوانید از دستور type nul > filename برای ایجاد یک فایل خالی در ویندوز استفاده کنید).
4. به یک سطح عقب برگردید (به پوشه کاربری خود).
5. پوشه bio_data را به biological_data تغییر نام دهید
mkdir bio_data
یک پوشه جدید به نام bio_data ایجاد میکند.
cd bio_data
شما را به داخل پوشه bio_data میبرد.
type nul > sequences.txt
یک فایل متنی خالی به نام sequences.txt در پوشه فعلی ایجاد میکند.
cd ..
شما را یک سطح به عقب، به پوشه کاربری خود بازمیگرداند.
ren bio_data biological_data
نام پوشه bio_data را به biological_data تغییر میدهد.
معادل دستورات تمرین قبلی در سیستم عامل لینوکس به این صورت است:
1. mkdir bio_data
2. cd bio_data
3. touch sequences.txt
4. cd ..
5. mv bio_data biological_data
همانطور که میبینید، دستورات بسیار شبیه هستند. touch در لینوکس برای ایجاد یک فایل خالی استفاده میشود و mv هم برای انتقال و هم برای تغییر نام فایلها و پوشهها به کار میرود.
آمار و احتمالات در بیوانفورماتیک:
آمار و احتمالات ابزارهای قدرتمندی هستند که به ما کمک میکنند تا الگوها را در دادههای زیستی شناسایی کنیم، نتایج آزمایشها را تفسیر کنیم و پیشبینیهایی بر اساس دادهها انجام دهیم.
در مبانی آمار، ما معمولاً با دو شاخه اصلی سروکار داریم:
1. آمار توصیفی (Descriptive Statistics): این شاخه به جمعآوری، سازماندهی، خلاصه کردن و نمایش دادهها میپردازد. مفاهیمی مانند میانگین، میانه، مد، واریانس و انحراف معیار در این بخش مورد بحث قرار میگیرند. اینها به ما کمک میکنند تا یک تصویر کلی از دادههایمان به دست آوریم.
2. آمار استنباطی (Inferential Statistics): این شاخه از آمار به ما امکان میدهد تا بر اساس یک نمونه کوچک از دادهها، نتایجی را در مورد یک جمعیت بزرگتر استنباط کنیم. مفاهیمی مانند آزمونهای فرضیه، فاصله اطمینان و رگرسیون در این بخش قرار میگیرند. اینها به ما کمک میکنند تا تصمیمگیریهای آگاهانه بر اساس دادهها انجام دهیم.
در بیوانفورماتیک، ما اغلب با مجموعههای دادهای بزرگ روبرو هستیم. برای مثال، در تحلیل دادههای ژنومیکس، ممکن است اطلاعات مربوط به ژنوم هزاران فرد را داشته باشیم. آمار توصیفی به ما کمک میکند تا ویژگیهای کلی این دادهها را خلاصه کنیم (مثلاً میانگین سن افراد شرکتکننده در مطالعه). آمار استنباطی به ما کمک میکند تا الگوهای معناداری را در این دادهها پیدا کنیم (مثلاً آیا یک نوع ژن خاص با افزایش خطر ابتلا به یک بیماری مرتبط است؟).
آمار توصیفی به خلاصه کردن و توصیف ویژگیهای اصلی یک مجموعه داده میپردازد. تصور کنید شما نتایج یک آزمایش را جمعآوری کردهاید که در آن سطح بیان یک ژن خاص در 20 نمونه مختلف سلولی اندازهگیری شده است. آمار توصیفی به شما کمک میکند تا با محاسبه مواردی مانند میانگین (average) سطح بیان، میانه (median)، و میزان پراکندگی دادهها (مانند انحراف معیار)، یک دید کلی از این 20 مقدار به دست آورید.
از طرف دیگر، آمار استنباطی به شما امکان میدهد تا با استفاده از این 20 نمونه، در مورد سطح بیان این ژن در کل جمعیت سلولها (که ممکن است بسیار بزرگتر باشد) نتیجهگیری کنید. برای این کار از تکنیکهایی مانند آزمونهای فرضیه استفاده میشود تا مشخص شود آیا الگوهای مشاهده شده در نمونه تصادفی هستند یا نشاندهنده یک اثر واقعی در کل جمعیت هستند.
به نظر شما، در یک مطالعه بیوانفورماتیکی که هدف آن شناسایی ژنهای مرتبط با یک بیماری خاص است، کدام شاخه از آمار (توصیفی یا استنباطی) نقش مهمتری ایفا میکند؟ چرا؟
با این حال، آمار توصیفی نیز در این فرآیند نادیده گرفته نمیشود. قبل از انجام هرگونه استنباط، ما از آمار توصیفی برای خلاصه کردن و درک ویژگیهای اساسی دادههایمان استفاده میکنیم (مثلاً توزیع سن بیماران، میانگین سطح بیان یک ژن در هر گروه). این کار به ما کمک میکند تا دادههایمان را بهتر بشناسیم و فرضیههای مناسبی را برای آزمونهای استنباطی فرموله کنیم.
بنابراین، هر دو شاخه آمار، توصیفی و استنباطی، در تحلیل دادههای بیوانفورماتیکی اهمیت دارند و مکمل یکدیگر هستند.
❤1
آمار توصیفی :
حالا بیایید کمی عمیقتر به آمار توصیفی بپردازیم. برخی از مهمترین مقادیر در آمار توصیفی عبارتند از:
• میانگین (Mean): مجموع تمام مقادیر تقسیم بر تعداد آنها.
• میانه (Median): مقدار وسط در یک مجموعه داده مرتب شده.
• مد (Mode): مقداری که بیشترین تکرار را در یک مجموعه داده دارد.
• واریانس (Variance): معیاری از میزان پراکندگی دادهها حول میانگین.
• انحراف معیار (Standard Deviation): جذر واریانس و معیاری از پراکندگی دادهها که در واحد مشابه با دادهها بیان میشود
برای اینکه این مفاهیم آمار توصیفی برایتان ملموستر شود، یک مثال با یک مجموعه داده فرضی از نتایج یک آزمایش در نظر میگیریم.
فرض کنید ما سطح بیان یک ژن خاص را در 5 نمونه مختلف سلولی اندازهگیری کردهایم و نتایج به این صورت است:
{2.1,3.5,2.8,4.0,3.1}
حالا بیایید مقادیر مهم آمار توصیفی را برای این مجموعه داده محاسبه کنیم:
میانگین (Mean): برای محاسبه میانگین، تمام مقادیر را با هم جمع میکنیم و سپس بر تعداد آنها تقسیم میکنیم:
(2.1+3.5+2.8+4.0+3.1 )/5 =3.1
بنابراین، میانگین سطح بیان این ژن در این 5 نمونه برابر با 3.1 است.
میانه (Median): برای یافتن میانه، ابتدا باید دادهها را به صورت صعودی مرتب کنیم:
{2.1,2.8,3.1,3.5,4.0}
چون تعداد دادهها فرد (5) است، میانه مقدار وسطی است که در اینجا 3.1 است. اگر تعداد دادهها زوج بود، میانه میانگین دو مقدار وسطی میشد.
مد (Mode): مد مقداری است که بیشترین تکرار را دارد. در مجموعه داده ما
{2.1,3.5,2.8,4.0,3.1}
هیچ مقداری تکرار نشده است، بنابراین این مجموعه داده مد ندارد. اگر مثلاً دادهها
{2.1,3.5,2.8,4.0,3.1,3.5}
بودند، مد 3.5 میشد زیرا دوبار تکرار شده است.
واریانس (Variance): واریانس میانگین مربعات انحرافات از میانگین است. برای محاسبه آن:
ابتدا انحراف هر مقدار از میانگین را محاسبه میکنیم; سپس این انحرافات را به توان دو میرسانیم :
(2.1−3.1)=−1.0 ; Power 2 : 1
(3.5−3.1)=0.4 ; Power 2 : 0.16
(2.8−3.1)=−0.3 ; Power 2 : 0.09
(4.0−3.1)=0.9 ; Power 2 : 0.81
(3.1−3.1)=0.0 ; Power 2 : 0
در نهایت، میانگین این مربعات را محاسبه میکنیم . چون مثال ما نمونه است و نه جمعیت، بر n−1 تقسیم میکنیم که در اینجا 4 می شود تا برآورد بهتری از واریانس جمعیت به دست آید:
(1.0+0.16+0.09+0.81+0.0)/(5-1) = 2.06/4= 0.515
انحراف معیار (Standard Deviation): انحراف معیار جذر واریانس است:
Root 2 of 0.515 ≈0.718
انحراف معیار نشان میدهد که دادهها به طور متوسط چقدر از میانگین فاصله دارند.
این مقادیر به ما یک توصیف کلی از مجموعه داده ما میدهند. برای مثال، میانگین سطح بیان 3.1 است و دادهها با انحراف معیاری حدود 0.718 حول این میانگین پراکنده شدهاند.
❤1
آشنایی با احتمالات و توزیعهای آماری:
حالا که با مفاهیم پایه آمار توصیفی آشنا شدیم، میخواهیم به بخش دوم از مبانی آمار و احتمالات بپردازیم: آشنایی با احتمالات و توزیعهای آماری.
احتمال :
بیایید با مفهوم احتمال شروع کنیم. در سادهترین حالت، احتمال یک رویداد، نسبتی از تعداد دفعاتی است که آن رویداد رخ میدهد به تعداد کل نتایج ممکن.
تصور کنید یک آزمایش ژنتیکی انجام میدهید که در آن احتمال وقوع یک جهش خاص در یک ژن 0.05 است. این بدان معناست که اگر شما این آزمایش را بارها و بارها تکرار کنید، انتظار دارید که در حدود 5 درصد از مواقع این جهش رخ دهد.
یک مثال سادهتر: اگر یک سکه سالم ( به گونه ای ساختار سکه تغییر نکرده که احتمال آمدن یک سمت نسبت به سمت سمت دیگر متفاوت باشد) را پرتاب کنید، دو نتیجه ممکن وجود دارد: رو آمدن (Heads) یا پشت آمدن (Tails). فرض میکنیم که هر دو نتیجه احتمال یکسانی دارند. بنابراین، احتمال رو آمدن سکه برابر است با:
P(Heads)= تعداد دفعات رو آمدن / تعداد کل نتایج ممکن= 1/2=0.5
به همین ترتیب، احتمال پشت آمدن سکه نیز 0.5 است.
در بیوانفورماتیک، ما اغلب با احتمالات در زمینههای مختلف سروکار داریم. برای مثال:
• احتمال اینکه یک نوکلئوتید خاص در یک موقعیت مشخص در توالی DNA قرار بگیرد.
• احتمال اینکه یک تغییر ژنتیکی خاص با یک بیماری مرتبط باشد (که معمولاً از طریق مطالعات آماری بزرگ تعیین میشود).
• احتمال اینکه یک الگوریتم بیوانفورماتیکی یک توالی DNA را به درستی تراز کند : Alignment
مثال دیگر :
فرض کنید در یک جمعیت از مگسهای سرکه، ژنی وجود دارد که دو الل (شکل مختلف ژن) دارد: الل غالب (A) و الل مغلوب (a). فرض کنید که در این جمعیت، 30 درصد از اللها A و 70 درصد a هستند. اگر ما به طور تصادفی یک مگس را از این جمعیت انتخاب کنیم، احتمال اینکه این مگس دارای ژنوتیپ (ترکیب اللها) aa باشد چقدر است؟
برای سادگی فرض میکنیم که انتخاب هر الل مستقل از دیگری است. بنابراین، احتمال اینکه یک الل 'a' انتخاب شود 0.7 است. برای اینکه مگس ژنوتیپ aa داشته باشد، ما باید دو بار متوالی الل 'a' را انتخاب کنیم.
احتمال وقوع دو رویداد مستقل به طور همزمان، حاصلضرب احتمالات وقوع هر رویداد است. بنابراین:
P(aa)=P(انتخاب اول) * P(انتخاب دوم) = 0.7×0.7= 0.49
این بدان معناست که حدود 49 درصد از مگسهای این جمعیت احتمالاً دارای ژنوتیپ aa خواهند بود.
این مثال نشان میدهد که چگونه میتوان از مفهوم احتمال برای درک توزیع صفات ژنتیکی در یک جمعیت استفاده کرد.
👍1
آشنایی با احتمالات و توزیعهای آماری 2 :
توزیع های آماری :
مهم ترین مفهوم مرتبط با احتمال، توزیعهای آماری هستند. یک توزیع آماری نشان میدهد که چگونه مقادیر یک متغیر تصادفی (مانند قد افراد در یک جمعیت یا تعداد جهشها در یک ژن) در یک محدوده مشخص پخش شدهاند. در بیوانفورماتیک، برخی از توزیعهای آماری بسیار رایج هستند، از جمله:
• توزیع نرمال (Normal Distribution): یک توزیع متقارن و bell-shaped که که به آن توزیع گاوسی یا زنگولهای هم میگویند و یکی از رایجترین توزیعها در طبیعت است. بسیاری از صفات کمی مانند قد، وزن، و سطح بیان بسیاری از ژنها در یک جمعیت بزرگ، تقریباً از توزیع نرمال پیروی میکنند.
مثال زیستی: تصور کنید سطح بیان یک ژن خاص را در تعداد زیادی سلول اندازهگیری کردهاید. اگر این سطح بیان تحت تأثیر عوامل زیادی با اثرات کوچک و مستقل باشد، احتمالاً توزیع مقادیر به دست آمده شبیه به یک توزیع نرمال خواهد بود. بیشتر سلولها سطح بیان متوسطی خواهند داشت و تعداد کمی از سلولها سطح بیان بسیار بالا یا بسیار پایینی نشان خواهند داد.
• توزیع دوجملهای (Binomial Distribution): برای مدلسازی تعداد موفقیتها در یک تعداد ثابت از آزمایشهای مستقل با احتمال موفقیت ثابت استفاده میشود (مثلاً تعداد دفعاتی که یک جهش خاص در یک گروه از افراد رخ میدهد).هر آزمایش فقط دو نتیجه ممکن دارد (موفقیت یا شکست).
مثال زیستی: فرض کنید در حال مطالعه یک جمعیت از باکتریها هستید و میدانید که احتمال وقوع یک جهش خاص در هر باکتری در طول یک دوره زمانی مشخص 0.01 است. اگر شما 100 باکتری را بررسی کنید، توزیع دوجملهای به شما کمک میکند تا احتمال مشاهده 0، 1، 2، ... یا 100 باکتری دارای این جهش را محاسبه کنید.
• توزیع پواسون (Poisson Distribution): این توزیع برای مدلسازی تعداد رویدادهایی که در یک بازه زمانی یا مکانی مشخص رخ میدهند، زمانی که این رویدادها به طور مستقل و با یک نرخ متوسط ثابت اتفاق میافتند، استفاده میشود.
مثال زیستی: تصور کنید در حال بررسی تعداد جهشهایی هستید که در یک ژن خاص در طول یک نسل رخ میدهند. اگر نرخ متوسط جهش در این ژن مشخص باشد، توزیع پواسون به شما کمک میکند تا احتمال مشاهده 0، 1، 2، یا تعداد بیشتری جهش در آن ژن را تخمین بزنید.
👍1
آشنایی با بیوانفورماتیک:
در این بخش، ما به طور خاص به این خواهیم پرداخت که چگونه مفاهیمی که یاد گرفتیم در عمل برای تحلیل دادههای زیستی به کار میروند.
پایگاههای دادههای زیستی:
اولین قدم در این بخش، معرفی پایگاههای دادههای زیستی است. حجم عظیمی از دادههای زیستی در سراسر جهان تولید میشود و این دادهها در پایگاههای دادههای تخصصی ذخیره و سازماندهی میشوند تا برای محققان در دسترس باشند. از مهمترین این پایگاههای داده NCBI و EMBL-EBI هستند . این پایگاههای داده منابع بسیار ارزشمندی برای محققان بیوانفورماتیک هستند. آنها به ما امکان میدهند تا توالیهای ژنتیکی و پروتئینی را جستجو کنیم، اطلاعات مربوط به ژنها و پروتئینها را پیدا کنیم، مقالات علمی مرتبط را مرور کنیم و دادههای خام آزمایشها را دانلود کنیم. آشنایی با هر دو پایگاه داده NCBI و EMBL-EBI بسیار مفید است، زیرا هر کدام مجموعههای داده و ابزارهای منحصربهفردی را ارائه میدهند.
NCBI (National Center for Biotechnology Information):
یک منبع جامع که پایگاههای دادههای مختلفی از جمله GenBank (توالیهای ژنتیکی)، PubMed (مقالات علمی زیستپزشکی) و GEO (آرایههای ژنی و دادههای میکرواری) را در خود جای داده است.
• پایگاههای داده کلیدی:
GenBank:
یک پایگاه داده بزرگ از توالیهای نوکلئوتیدی (DNA و RNA). شما میتوانید توالیهای ژنی، ژنومهای کامل و سایر اطلاعات توالی را در اینجا پیدا کنید.
PubMed:
یک موتور جستجو برای مقالات علمی در زمینه زیستپزشکی و علوم مرتبط. این شامل میلیونها مقاله منتشر شده است.
GEO (Gene Expression Omnibus):
یک مخزن دادههای بیان ژن که از آرایههای ژنی و تعیین توالی RNA (RNA-Seq) به دست آمدهاند.
BLAST (Basic Local Alignment Search Tool):
ابزاری برای یافتن توالیهای مشابه در پایگاههای داده توالی. ما بعداً به طور مفصل در مورد BLAST صحبت خواهیم کرد.
Entrez:
یک سیستم جستجو و بازیابی یکپارچه که به شما امکان میدهد در تمام پایگاههای داده NCBI جستجو کنید.
EMBL-EBI (European Molecular Biology Laboratory - European Bioinformatics Institute)
• مرکز اروپایی: EMBL-EBI مرکز اصلی برای دادههای بیولوژیکی معادل NCBI در اروپا است و همکاریهای بینالمللی گستردهای دارد.
• پایگاههای داده کلیدی:
ENA (European Nucleotide Archive):
مشابه GenBank، این پایگاه داده توالیهای نوکلئوتیدی را ذخیره میکند.
UniProt:
یک پایگاه داده جامع و با کیفیت بالا از اطلاعات پروتئینی، شامل توالیها، ساختارها و عملکردهای پروتئینها.
ArrayExpress:
مشابه GEO، این پایگاه داده دادههای بیان ژن را نگهداری میکند.
Ensembl:
یک پایگاه داده ژنومی که ژنومهای یوکاریوتی را حاشیهنویسی و تحلیل میکند. این شامل اطلاعاتی در مورد ساختار ژن، رونوشتها و تغییرات ژنتیکی است.
InterPro:
یک پایگاه داده از خانوادههای پروتئینی، دامنهها و سایتهای عملکردی.
هر دو پایگاه داده NCBI و EMBL-EBI اطلاعات بسیار ارزشمندی را ارائه میدهند و اغلب مکمل یکدیگر هستند. برای مثال، یک توالی ژنی ممکن است در GenBank (NCBI) یافت شود، در حالی که اطلاعات دقیقتر در مورد پروتئین حاصل از آن ممکن است در UniProt (EMBL-EBI) موجود باشد.
BLAST (Basic Local Alignment Search Tool)
بلاست یک الگوریتم و یک مجموعه برنامه است که برای یافتن نواحی مشابه بین توالیهای بیولوژیکی (مانند توالیهای DNA، RNA یا پروتئین) استفاده میشود. اساس کار BLAST مقایسه یک توالی ورودی (query sequence) با توالیهای موجود در یک پایگاه داده بزرگ است تا توالیهایی را پیدا کند که شباهت قابل توجهی با توالی ورودی دارند. حال چرا BLAST اینقدر مهم است؟
•شناسایی توالیهای جدید: وقتی یک توالی جدید به دست میآوریم (مثلاً از طریق تعیین توالی DNA)، میتوانیم از BLAST برای جستجو در پایگاههای داده استفاده کنیم و ببینیم آیا توالیهای مشابهی قبلاً شناسایی شدهاند یا خیر. این میتواند به ما در تعیین عملکرد احتمالی توالی جدید کمک کند.
•یافتن ژنهای همولوگ: همولوگها ژنهایی در گونههای مختلف هستند که از یک ژن اجدادی مشترک مشتق شدهاند و اغلب عملکردهای مشابهی دارند. BLAST به ما کمک میکند تا ژنهای همولوگ را در ارگانیسمهای مختلف پیدا کنیم.
•بررسی پایگاههای داده: BLAST یک راه قدرتمند برای جستجو در حجم وسیع دادههای موجود در پایگاههای دادههای زیستی است. تصور کنید شما یک قطعه DNA با توالی ناشناخته دارید. با وارد کردن این توالی به عنوان query در وبسایت NCBI BLAST، این ابزار توالی شما را با میلیونها توالی موجود در پایگاه داده GenBank مقایسه میکند و لیستی از توالیهای مشابه را به همراه میزان شباهت آنها به شما نشان میدهد.
نحوه کار با BLAST
1.ورود توالی (Query): شما ابتدا توالی بیولوژیکی مورد نظر خود (DNA، RNA یا پروتئین) را در فرم جستجوی BLAST در وبسایت NCBI یا EMBL-EBI وارد میکنید. میتوانید توالی را مستقیماً تایپ کنید یا آن را از یک فایل آپلود کنید.
2.انتخاب پایگاه داده: شما باید پایگاه دادهای را انتخاب کنید که میخواهید توالی شما در آن جستجو شود. بسته به نوع توالی ورودی شما (مثلاً DNA) و هدف جستجو (مثلاً یافتن ژنهای مشابه در انسان یا در تمام موجودات)، پایگاه دادههای مختلفی وجود دارد (مانند GenBank برای توالیهای نوکلئوتیدی، UniProtKB/Swiss-Prot برای توالیهای پروتئینی).
3.انتخاب الگوریتم: BLAST چندین الگوریتم مختلف دارد که برای انواع مختلف جستجو بهینه شدهاند (مانند blastn برای جستجوی نوکلئوتید در نوکلئوتید، blastp برای جستجوی پروتئین در پروتئین، blastx برای ترجمه توالی نوکلئوتیدی ورودی به پروتئین و جستجو در پایگاه داده پروتئین). معمولاً BLAST به طور خودکار بهترین الگوریتم را بر اساس نوع توالی ورودی شما پیشنهاد میدهد.
4.تنظیم پارامترها (اختیاری): شما میتوانید پارامترهای مختلفی را برای تنظیم حساسیت و سرعت جستجو تغییر دهید (مانند مقدار E-value که در ادامه توضیح خواهیم داد).
5.اجرای جستجو: پس از وارد کردن توالی و انتخاب پایگاه داده و الگوریتم، روی دکمه "BLAST" کلیک میکنید تا جستجو آغاز شود.
تفسیر خروجی BLAST
خروجی BLAST معمولاً شامل بخشهای زیر است:
1.توضیح (Description): این بخش لیستی از توالیهای موجود در پایگاه داده را نشان میدهد که با توالی ورودی شما همتایی دارند. برای هر همتایی، اطلاعاتی مانند نام توالی، نام ارگانیسم و میزان همتایی (Score و E-value) ارائه میشود. معمولاً نتایج بر اساس E-value مرتب میشوند (از کمترین به بیشترین).
2.همتاییها (Alignments): این بخش همتاییهای دقیق بین توالی ورودی شما و توالیهای همتا در پایگاه داده را نشان میدهد. در اینجا، نواحی مشابه با خطوط و حروف یکسان مشخص میشوند. میزان همتایی معمولاً به صورت درصد هویت (Percent Identity) نشان داده میشود (درصد نوکلئوتیدها یا آمینو اسیدهای یکسان در طول همتایی).
3.امتیاز (Score) :یک مقدار عددی است که نشاندهنده میزان شباهت بین توالی ورودی و توالی همتا است. امتیازهای بالاتر نشاندهنده شباهت بیشتر هستند.
4. مقدارEیا E-value : مهمترین معیار برای ارزیابی معنیدار بودن یک همتایی است. E-value نشان میدهد که انتظار میرود چند همتایی با امتیازی برابر یا بهتر از همتایی مشاهده شده، به طور تصادفی در جستجو در پایگاه داده با آن اندازه رخ دهد. E-valueهای نزدیک به صفر نشاندهنده همتاییهای بسیار معنیدار هستند که احتمال تصادفی بودن آنها بسیار کم است. به طور معمول، E-value کمتر از 0.001 به عنوان یک همتایی معنیدار در نظر گرفته میشود.
4.درصد هویت (Percent Identity): درصد نوکلئوتیدها یا آمینو اسیدهایی که در طول همتایی دقیقاً یکسان هستند. درصد هویت بالا نیز نشاندهنده شباهت زیاد است.
در عمل، وقتی شما یک توالی جدید را BLAST میکنید، به دنبال همتاییهایی با E-value بسیار پایین و درصد هویت بالا میگردید. این نشان میدهد که توالی شما احتمالاً با یک توالی شناخته شده در پایگاه داده ارتباط تکاملی دارد یا عملکرد مشابهی دارد.
بسیار خب، فرض کنید شما یک توالی DNA ناشناخته را به عنوان query در NCBI BLAST وارد کردهاید و نتایج زیر به دست آمده است (این یک مثال ساده و فرضی است):
🟩 همتاییها (Alignments) در جدول:
برای اولین همتایی (human protein)
در این مثال بخش Descriptions لیستی از توالیهای موجود در پایگاه داده را نشان میدهد که با توالی ورودی شما همتایی دارند. هر سطر اطلاعات مربوط به یک همتایی را ارائه میدهد.
🔺شرح توالی (Description) یک توضیح مختصر از توالی همتا را نشان میدهد (در اینجا، یک پروتئین فرضی در انسان و پروتئین p53 در شامپانزه و میمون).
🔺 ارگانیسم (Organism) نام موجودی را نشان میدهد که توالی همتا از آن به دست آمده است.
🔺 درصد هویت (Ident) نشان میدهد که چند درصد از نوکلئوتیدها در طول همتایی بین توالی ورودی و توالی همتا یکسان هستند. درصد هویت بالا نشاندهنده شباهت زیاد است.
🔺 طول همتایی (Length) طول ناحیهای از توالی ورودی است که با توالی همتا همتایی دارد.
🔺 E-value
بسیار کوچک است (نزدیک به صفر)، که نشان میدهد این همتاییها بسیار معنیدار هستند و احتمال تصادفی بودن آنها بسیار کم است. E-valueهای کوچکتر به معنای معنیدارتر بودن همتایی هستند.
🔺 امتیاز (Score) نیز بالا است، که نشاندهنده شباهت زیاد است.
🟩 تصویر همتایی
🔺 بخش Alignments همتایی دقیق بین توالی ورودی (Query) و توالی همتا (Sbjct - Subject) را نشان میدهد. خطوط عمودی (|) نشاندهنده نوکلئوتیدهای یکسان در موقعیت مربوطه هستند.
در این مثال فرضی، توالی ورودی شما شباهت بسیار زیادی به یک پروتئین فرضی در انسان و همچنین پروتئین p53 (یک پروتئین مهم در جلوگیری از سرطان) در شامپانزه و میمون دارد، که با E-valueهای بسیار پایین و درصد هویت بالا نشان داده شده است. این میتواند نشان دهد که توالی ورودی شما ممکن است یک ژن همولوگ با p53 باشد.
برای اولین همتایی (human protein)
در این مثال بخش Descriptions لیستی از توالیهای موجود در پایگاه داده را نشان میدهد که با توالی ورودی شما همتایی دارند. هر سطر اطلاعات مربوط به یک همتایی را ارائه میدهد.
🔺شرح توالی (Description) یک توضیح مختصر از توالی همتا را نشان میدهد (در اینجا، یک پروتئین فرضی در انسان و پروتئین p53 در شامپانزه و میمون).
🔺 ارگانیسم (Organism) نام موجودی را نشان میدهد که توالی همتا از آن به دست آمده است.
🔺 درصد هویت (Ident) نشان میدهد که چند درصد از نوکلئوتیدها در طول همتایی بین توالی ورودی و توالی همتا یکسان هستند. درصد هویت بالا نشاندهنده شباهت زیاد است.
🔺 طول همتایی (Length) طول ناحیهای از توالی ورودی است که با توالی همتا همتایی دارد.
🔺 E-value
بسیار کوچک است (نزدیک به صفر)، که نشان میدهد این همتاییها بسیار معنیدار هستند و احتمال تصادفی بودن آنها بسیار کم است. E-valueهای کوچکتر به معنای معنیدارتر بودن همتایی هستند.
🔺 امتیاز (Score) نیز بالا است، که نشاندهنده شباهت زیاد است.
🟩 تصویر همتایی
🔺 بخش Alignments همتایی دقیق بین توالی ورودی (Query) و توالی همتا (Sbjct - Subject) را نشان میدهد. خطوط عمودی (|) نشاندهنده نوکلئوتیدهای یکسان در موقعیت مربوطه هستند.
در این مثال فرضی، توالی ورودی شما شباهت بسیار زیادی به یک پروتئین فرضی در انسان و همچنین پروتئین p53 (یک پروتئین مهم در جلوگیری از سرطان) در شامپانزه و میمون دارد، که با E-valueهای بسیار پایین و درصد هویت بالا نشان داده شده است. این میتواند نشان دهد که توالی ورودی شما ممکن است یک ژن همولوگ با p53 باشد.
کاربردهای بیوانفورماتیک در زمینههای مختلف:
بیوانفورماتیک یک حوزه بسیار گسترده است و در زمینههای متنوعی از علوم زیستی و پزشکی کاربرد دارد. در اینجا به برخی از مهمترین آنها اشاره میکنیم:
🟠 ژنومیکس (Genomics): ژنومیکس به مطالعهی کامل مواد ژنتیکی یک موجود زنده، یعنی ژنوم آن، میپردازد. ژنوم شامل تمام DNA (یا RNA در برخی ویروسها) است که حاوی تمام ژنها و همچنین نواحی غیرکدکننده است. بیوانفورماتیک در این حوزه نقشهای متعددی ایفا میکند:
🔶 تعیین توالی ژنوم (Genome Sequencing): تکنیکهای پیشرفته تعیین توالی نسل بعد (Next-Generation Sequencing - NGS) حجم عظیمی از دادههای توالی DNA را تولید میکنند. الگوریتمهای بیوانفورماتیکی برای مونتاژ این قطعات کوتاه توالی به یک توالی ژنوم کامل استفاده میشوند.
🔶 حاشیهنویسی ژنوم (Genome Annotation): پس از تعیین توالی ژنوم، باید محل ژنها، عناصر تنظیمی و سایر ویژگیهای عملکردی در آن شناسایی شوند. ابزارهای بیوانفورماتیکی با استفاده از الگوریتمهای پیشبینی ژن و مقایسه با پایگاههای دادههای توالی شناختهشده، این اطلاعات را استخراج میکنند.
🔶 تحلیل تغییرات ژنتیکی (Variant Analysis): مقایسه ژنومهای افراد مختلف به شناسایی تغییرات ژنتیکی مانند تکنوکلئوتیدی چندشکلیها (SNPs)، حذفها و درجها (indels) و تغییرات ساختاری منجر میشود. بیوانفورماتیک ابزارهایی برای شناسایی، فیلتر و تفسیر این تغییرات، به ویژه در ارتباط با بیماریها، فراهم میکند.
🔶 ژنومیکس مقایسهای (Comparative Genomics): مقایسه ژنومهای گونههای مختلف به درک روابط تکاملی، شناسایی ژنهای محافظتشده و درک تنوع ژنتیکی کمک میکند.
🔶 متاژنومیکس (Metagenomics): تحلیل مواد ژنتیکی به دست آمده مستقیماً از نمونههای محیطی (بدون کشت موجودات) به شناسایی و مطالعه جوامع میکروبی پیچیده کمک میکند.
🟠 پروتئومیکس (Proteomics): پروتئومیکس به مطالعهی مجموعهی کامل پروتئینهای بیان شده توسط یک سلول، بافت یا ارگانیسم در یک زمان خاص میپردازد. بیوانفورماتیک در این حوزه به موارد زیر کمک میکند:
•شناسایی پروتئین (Protein Identification): تکنیکهایی مانند طیفسنجی جرمی (Mass Spectrometry) پپتیدهای حاصل از تجزیه پروتئینها را شناسایی میکنند. الگوریتمهای بیوانفورماتیکی این دادهها را با پایگاههای دادههای توالی پروتئین مقایسه کرده و پروتئینهای موجود در نمونه را شناسایی میکنند.
•تعیین ساختار پروتئین (Protein Structure Prediction): پیشبینی ساختار سهبعدی پروتئینها از توالی آمینو اسید آنها یک چالش بزرگ است. روشهای بیوانفورماتیکی از جمله مدلسازی همولوژی، پیشبینی ساختار ab initio و روشهای یادگیری ماشین برای تخمین ساختار پروتئینها استفاده میشوند.
•تحلیل عملکرد پروتئین (Protein Function Analysis): بیوانفورماتیک ابزارهایی برای پیشبینی عملکرد پروتئینها بر اساس توالی و ساختار آنها، شناسایی دامنههای عملکردی و پیشبینی سایتهای اتصال به لیگاند فراهم میکند.
•مطالعه تعاملات پروتئین-پروتئین (Protein-Protein Interaction Studies): روشهای محاسباتی برای پیشبینی و مدلسازی چگونگی تعامل پروتئینها با یکدیگر و تشکیل شبکههای پیچیده در سلول استفاده میشوند.
•تحلیل بیان پروتئین (Protein Expression Analysis): تحلیل دادههای کمی به دست آمده از تکنیکهایی مانند طیفسنجی جرمی کمی به تعیین میزان بیان پروتئینها در شرایط مختلف کمک میکند.
🟠 ترانسکریپتومیکس (Transcriptomics): ترانسکریپتومیکس به مطالعهی مجموعهی کامل مولکولهای RNA، یعنی ترانسکریپتوم، در یک سلول یا بافت میپردازد. نقش بیوانفورماتیک در این حوزه عبارت است از:
🔶 تحلیل RNA-Seq: دادههای حاصل از تعیین توالی RNA برای تعیین سطح بیان ژنها، شناسایی ایزوفرمهای مختلف RNA و کشف رونوشتهای جدید استفاده میشوند. پایپلاینهای بیوانفورماتیکی مراحل مختلفی از جمله تراز کردن توالیها با ژنوم، تعیین کمیت بیان ژن و انجام تحلیلهای آماری برای شناسایی ژنهای با بیان متفاوت را شامل میشوند.
🔶 تحلیل میکروآرایه (Microarray Analysis): اگرچه RNA-Seq روش غالب است، اما تحلیل دادههای میکروآرایه (برای اندازهگیری سطح بیان ژن) همچنان در برخی موارد کاربرد دارد و نیازمند روشهای بیوانفورماتیکی برای نرمالسازی، تحلیل آماری و شناسایی ژنهای با بیان متفاوت است.
🔶 مطالعه RNAهای غیرکدکننده (Non-coding RNA Analysis): بیوانفورماتیک در شناسایی، حاشیهنویسی و تعیین عملکرد RNAهای غیرکدکننده مانند میکروRNAها و RNAهای طویل غیرکدکننده نقش دارد.
🔶 تحلیل Single-cell RNA-seq (scRNA-seq) : یک تکنیک پیشرفته است که به محققان اجازه میدهد تا سطح بیان ژن را در تک تک سلولها اندازهگیری کنند. این تکنیک در مقایسه با RNA-seq سنتی که سطح بیان را به صورت میانگین برای یک جمعیت از سلولها اندازهگیری میکند، دیدگاه بسیار دقیقتری از تنوع سلولی ارائه میدهد. با استفاده از روشهای بیوانفورماتیکی، دادههای scRNA-seq برای موارد زیر تحلیل میشوند :
🔸شناسایی انواع سلول: با گروهبندی سلولها بر اساس الگوهای بیان ژن مشابه، میتوان انواع سلولی مختلف موجود در یک نمونه پیچیده (مانند یک تومور یا یک بافت) را شناسایی کرد.
🔸 مطالعه تمایز سلولی: با بررسی تغییرات بیان ژن در طول زمان، میتوان مسیرهای تمایز سلولی را درک کرد.
🔸 شناسایی جمعیتهای سلولی نادر: scRNA-seq میتواند به شناسایی انواع سلولی کمیاب که ممکن است در تحلیلهای bulk RNA-seq پنهان بمانند، کمک کند.
🔸بررسی ناهمگونی تومور: در سرطانشناسی، scRNA-seq برای بررسی تنوع سلولی درون تومورها و شناسایی زیرجمعیتهای سلولی مختلف که ممکن است به درمانهای مختلف پاسخ متفاوتی دهند، استفاده میشود.
🟠 متابولومیکس (Metabolomics): متابولومیکس به مطالعهی مجموعهی کامل متابولیتهای کوچک در یک سیستم بیولوژیکی میپردازد. بیوانفورماتیک در این حوزه به موارد زیر کمک میکند:
🔶 شناسایی متابولیت (Metabolite Identification): دادههای حاصل از تکنیکهایی مانند طیفسنجی جرمی و NMR با پایگاههای دادههای متابولیت مقایسه میشوند تا متابولیتهای موجود در نمونه شناسایی شوند.
🔶 تعیین کمیت متابولیت (Metabolite Quantification): روشهای بیوانفورماتیکی برای تعیین غلظت متابولیتهای شناسایی شده استفاده میشوند.
🔶 تحلیل مسیر متابولیکی (Metabolic Pathway Analysis): دادههای متابولومیکس با پایگاههای دادههای مسیرهای متابولیکی ادغام میشوند تا تغییرات در شبکههای متابولیکی در شرایط مختلف بررسی شوند.
🟠بیولوژی سیستمها (Systems Biology): بیولوژی سیستمها به درک سیستمهای بیولوژیکی به عنوان شبکههای پیچیده از تعاملات میپردازد. بیوانفورماتیک در این حوزه نقش اساسی در موارد زیر دارد:
🔶 مدلسازی شبکه (Network Modeling): ساخت مدلهای ریاضی از شبکههای بیولوژیکی (مانند شبکههای تنظیم ژن، شبکههای سیگنالینگ و شبکههای متابولیکی) بر اساس دادههای تجربی.
🔶 شبیهسازی سیستم (System Simulation): استفاده از مدلهای ساخته شده برای شبیهسازی رفتار سیستم در شرایط مختلف و پیشبینی پاسخها به تغییرات.
🔶 تحلیل شبکه (Network Analysis): استفاده از نظریه گراف برای تحلیل خواص شبکهها و شناسایی اجزای کلیدی.
🟠 داروشناسی محاسباتی (Computational Pharmacology): بیوانفورماتیک در فرآیند کشف و توسعه دارو نقش مهمی ایفا میکند:
🔶 شناسایی هدف دارویی (Drug Target Identification): تحلیل دادههای ژنومیکس، پروتئومیکس و ترانسکریپتومیکس برای شناسایی مولکولهایی (معمولاً پروتئینها) که در بیماریها نقش دارند و میتوانند هدف دارو باشند.
🔶 غربالگری مجازی (Virtual Screening): استفاده از مدلهای ساختار سهبعدی پروتئینها برای پیشبینی اینکه کدام مولکولهای کوچک (داروها) احتمالاً به هدف متصل میشوند.
🔶 طراحی دارو (Drug Design): استفاده از روشهای محاسباتی برای طراحی مولکولهای جدید با خواص دارویی مطلوب.
🔶 فارماکوژنومیکس (Pharmacogenomics): مطالعهی چگونگی تأثیر تغییرات ژنتیکی افراد بر پاسخ آنها به داروها، با هدف توسعه داروهای شخصیسازیشده.
🔶 تحلیل RNA-Seq: دادههای حاصل از تعیین توالی RNA برای تعیین سطح بیان ژنها، شناسایی ایزوفرمهای مختلف RNA و کشف رونوشتهای جدید استفاده میشوند. پایپلاینهای بیوانفورماتیکی مراحل مختلفی از جمله تراز کردن توالیها با ژنوم، تعیین کمیت بیان ژن و انجام تحلیلهای آماری برای شناسایی ژنهای با بیان متفاوت را شامل میشوند.
🔶 تحلیل میکروآرایه (Microarray Analysis): اگرچه RNA-Seq روش غالب است، اما تحلیل دادههای میکروآرایه (برای اندازهگیری سطح بیان ژن) همچنان در برخی موارد کاربرد دارد و نیازمند روشهای بیوانفورماتیکی برای نرمالسازی، تحلیل آماری و شناسایی ژنهای با بیان متفاوت است.
🔶 مطالعه RNAهای غیرکدکننده (Non-coding RNA Analysis): بیوانفورماتیک در شناسایی، حاشیهنویسی و تعیین عملکرد RNAهای غیرکدکننده مانند میکروRNAها و RNAهای طویل غیرکدکننده نقش دارد.
🔶 تحلیل Single-cell RNA-seq (scRNA-seq) : یک تکنیک پیشرفته است که به محققان اجازه میدهد تا سطح بیان ژن را در تک تک سلولها اندازهگیری کنند. این تکنیک در مقایسه با RNA-seq سنتی که سطح بیان را به صورت میانگین برای یک جمعیت از سلولها اندازهگیری میکند، دیدگاه بسیار دقیقتری از تنوع سلولی ارائه میدهد. با استفاده از روشهای بیوانفورماتیکی، دادههای scRNA-seq برای موارد زیر تحلیل میشوند :
🔸شناسایی انواع سلول: با گروهبندی سلولها بر اساس الگوهای بیان ژن مشابه، میتوان انواع سلولی مختلف موجود در یک نمونه پیچیده (مانند یک تومور یا یک بافت) را شناسایی کرد.
🔸 مطالعه تمایز سلولی: با بررسی تغییرات بیان ژن در طول زمان، میتوان مسیرهای تمایز سلولی را درک کرد.
🔸 شناسایی جمعیتهای سلولی نادر: scRNA-seq میتواند به شناسایی انواع سلولی کمیاب که ممکن است در تحلیلهای bulk RNA-seq پنهان بمانند، کمک کند.
🔸بررسی ناهمگونی تومور: در سرطانشناسی، scRNA-seq برای بررسی تنوع سلولی درون تومورها و شناسایی زیرجمعیتهای سلولی مختلف که ممکن است به درمانهای مختلف پاسخ متفاوتی دهند، استفاده میشود.
🟠 متابولومیکس (Metabolomics): متابولومیکس به مطالعهی مجموعهی کامل متابولیتهای کوچک در یک سیستم بیولوژیکی میپردازد. بیوانفورماتیک در این حوزه به موارد زیر کمک میکند:
🔶 شناسایی متابولیت (Metabolite Identification): دادههای حاصل از تکنیکهایی مانند طیفسنجی جرمی و NMR با پایگاههای دادههای متابولیت مقایسه میشوند تا متابولیتهای موجود در نمونه شناسایی شوند.
🔶 تعیین کمیت متابولیت (Metabolite Quantification): روشهای بیوانفورماتیکی برای تعیین غلظت متابولیتهای شناسایی شده استفاده میشوند.
🔶 تحلیل مسیر متابولیکی (Metabolic Pathway Analysis): دادههای متابولومیکس با پایگاههای دادههای مسیرهای متابولیکی ادغام میشوند تا تغییرات در شبکههای متابولیکی در شرایط مختلف بررسی شوند.
🟠بیولوژی سیستمها (Systems Biology): بیولوژی سیستمها به درک سیستمهای بیولوژیکی به عنوان شبکههای پیچیده از تعاملات میپردازد. بیوانفورماتیک در این حوزه نقش اساسی در موارد زیر دارد:
🔶 مدلسازی شبکه (Network Modeling): ساخت مدلهای ریاضی از شبکههای بیولوژیکی (مانند شبکههای تنظیم ژن، شبکههای سیگنالینگ و شبکههای متابولیکی) بر اساس دادههای تجربی.
🔶 شبیهسازی سیستم (System Simulation): استفاده از مدلهای ساخته شده برای شبیهسازی رفتار سیستم در شرایط مختلف و پیشبینی پاسخها به تغییرات.
🔶 تحلیل شبکه (Network Analysis): استفاده از نظریه گراف برای تحلیل خواص شبکهها و شناسایی اجزای کلیدی.
🟠 داروشناسی محاسباتی (Computational Pharmacology): بیوانفورماتیک در فرآیند کشف و توسعه دارو نقش مهمی ایفا میکند:
🔶 شناسایی هدف دارویی (Drug Target Identification): تحلیل دادههای ژنومیکس، پروتئومیکس و ترانسکریپتومیکس برای شناسایی مولکولهایی (معمولاً پروتئینها) که در بیماریها نقش دارند و میتوانند هدف دارو باشند.
🔶 غربالگری مجازی (Virtual Screening): استفاده از مدلهای ساختار سهبعدی پروتئینها برای پیشبینی اینکه کدام مولکولهای کوچک (داروها) احتمالاً به هدف متصل میشوند.
🔶 طراحی دارو (Drug Design): استفاده از روشهای محاسباتی برای طراحی مولکولهای جدید با خواص دارویی مطلوب.
🔶 فارماکوژنومیکس (Pharmacogenomics): مطالعهی چگونگی تأثیر تغییرات ژنتیکی افراد بر پاسخ آنها به داروها، با هدف توسعه داروهای شخصیسازیشده.
📣 سلام و احترام
اگر تازه عضو کانال شده اید:
⬅️ از اینجا توضیحات مربوطه را مطالعه بفرمایید
⬅️ فهرست مطالب تا کنون هم اینجاست.
✔️ تا اینجا مقدماتی بر بیوانفورماتیک گفته شد.
امیدوارم تعداد بالای پست ها موجب ناراحتی نشده باشد.
در ادامه و براساس اولویت ان شا الله، وارد مبحث ژنومیکس شده ایم و پس از آن ترانسکریپتومیکس را شروع خواهیم کرد.
جهت بهره وری بیشتر، امکان یادداشت برداری از مطالب و باز ارسال آنها برای شما فراهم شد.
آدرس کانال هم مجدد:
https://t.me/BFE_pod
اگر تازه عضو کانال شده اید:
⬅️ از اینجا توضیحات مربوطه را مطالعه بفرمایید
⬅️ فهرست مطالب تا کنون هم اینجاست.
✔️ تا اینجا مقدماتی بر بیوانفورماتیک گفته شد.
امیدوارم تعداد بالای پست ها موجب ناراحتی نشده باشد.
در ادامه و براساس اولویت ان شا الله، وارد مبحث ژنومیکس شده ایم و پس از آن ترانسکریپتومیکس را شروع خواهیم کرد.
جهت بهره وری بیشتر، امکان یادداشت برداری از مطالب و باز ارسال آنها برای شما فراهم شد.
آدرس کانال هم مجدد:
https://t.me/BFE_pod
👍2❤1