مقدمهای بر زبان برنامهنویسی پایتون و R در بیوانفورماتیک
بیوانفورماتیک یک حوزه به سرعت در حال رشد است که علوم زیستی و علوم کامپیوتر را جهت توسعه و به کارگیری ابزارهای محاسباتی به منظور آنالیز و تفسیر دادههای بیولوژیکی ادغام میکند. زبانهای برنامهنویسی اساسیترین و تطبیقپذیرترین ابزاری هستند که استفاده از آنها در بیوانفورماتیک ضروری شده است. زبانهای مختلفی در زمینه بیوانفورماتیک استفاده میشود. برنامهنویسی پایتون و R دو زبان برنامهنویسی پرکاربرد در بیوانفورماتیک هستند.
برنامهنویسی پایتون چیست؟
پایتون یک زبان برنامهنویسی محبوب است که به دلیل تطبیقپذیری و سهولت استفاده در بسیاری از زمینهها به طور گسترده مورد استفاده قرار میگیرد. این زبان یک زبان برنامهنویسی سطح بالا است که یادگیری و استفاده از آن آسان است. پایتون به طور گسترده در بیوانفورماتیک برای ساخت ابزارها و برنامههای نرمافزاری، تصویرسازی و کار بر روی دادهها، آنالیز ژنوم، جستجوی ادبی و هنری و بسیاری از برنامههای کاربردی دیگر استفاده میشود.
مزایای برنامهنویسی پایتون در بیوانفورماتیک
برخی از مزایای استفاده از پایتون در بیوانفورماتیک عبارتند از:
- پایتون را میتوان بر روی پلتفرمهای مختلف از جمله ویندوز، مک و لینوکس نصب و استفاده کرد.
- پایتون چندین ویژگی داخلی دارد که آن را برای برنامههای کاربردی حوزه بیوانفورماتیک مناسب میکند.
- ماهیت پویا و ماژولار پایتون به محققان امکان استفاده مجدد و به اشتراک گذاری کد را میدهد و زمان توسعه برنامه را کاهش و بهرهوری را افزایش میدهد.
- پایتون دارای یک سینتکس (Syntax) نسبتاً ساده است که یادگیری و استفاده از آن را آسان میکند.
- پایتون یک زبان سطح بالا است و ساختارهای داده و توابع پیشرفتهای را ارائه میدهد که کار با دادههای پیچیده بیولوژیکی را آسان میکنند.
ابزارهای برنامهنویسی پایتون در بیوانفورماتیک
تعدادی کتابخانه و ابزار در پایتون جهت استفاده در برنامههای کاربردی حوزه بیوانفورماتیک وجود دارند. برخی از این ابزارها و کتابخانهها عبارتند از:
-
بایوپایتون (Biopython)
بایوپایتون یکی از پرکاربردترین پکیجهای بیوانفورماتیک در پایتون است. بایوپایتون مجموعهای منبع باز (Open-source) از ماژولهای پایتون است که دستهای از ابزارهای قدرتمند و آسان برای استفاده جهت انجام محاسبات بیولوژیکی را ارائه میدهد. بایوپایتون ابزارهایی را ارائه میدهد که میتوانند برای طیف گستردهای از حوزههای بیوانفورماتیک مانند آنالیز توالی، آنالیز ساختار و کار بر روی دادهها استفاده شوند.
برخی از کارکردهای بایوپایتون عبارتند از:
- بایوپایتون ابزارهایی را برای کار با DNA، RNA و توالیهای پروتئین، از جمله همترازسازی توالی (Sequence alignment)، تطبیق موتیف (Motif) و الگو، و تفسیر بین توالیهای نوکلئوتیدی (Nucleotide) و پروتئینی فراهم میکند.
- بایوپایتون شامل ابزارهایی برای کار با ساختارهای پروتئینی مانند تجزیه (Parsing) و کار بر روی فایلهای PDB و انجام مقایسه ساختار میباشد.
- بایوپایتون از فرمتهای فایلی که معمولاً در بیوانفورماتیک استفاده میشوند، مانند FASTA، GenBank و BLAST پشتیبانی میکند.
- بایوپایتون شامل ابزارهایی برای تصویرسازی دادههای بیولوژیکی مانند نمودارهای همترازی توالی و درختان فیلوژنتیک (Phylogenetic tree) میباشد.
پکیجهای پایتون به طور پیش فرض در پایتون در دسترس نیستند. ما باید آنها را نصب و ایمپورت (Import) کنیم. ما همچنین میتوانیم توابع خاصی از یک پکیج را ایمپورت کنیم.
مثال:
# install package
pip install biopython
# import package and specific function
import Bio
from Bio.Seq import Seq
# reverse complement a nucleotide sequence
my_seq = Seq(“AGTACACTGGT”)
print(my_seq)
AGTACACTGGT
my_seq.reverse_complement()
Seq(‘ACCAGTGTACT’)
-
PyMOL
PyMOL یک نرمافزار تصویرسازی مولکولی رایگان و منبع باز است که در بیوانفورماتیک استفاده میشود. این نرمافزار تصاویر و انیمیشنهای با کیفیتی از ساختارهای مولکولی ایجاد میکند که میتواند در زمینههای مختلفی از جمله کشف دارو، مهندسی پروتئین و تحقیقات زیستشناسی مولکولی مفید باشد.
PyMOL به زبان پایتون نوشته شده است و میتواند به راحتی با سایر ابزارها و کتابخانههای مبتنی بر پایتون، ادغام شود. PyMOL را میتوان با استفاده از پلاگینهای (Plugin) مبتنی بر پایتون توسعه داد، که میتواند ویژگیها و عملکردهای جدیدی را به نرمافزار اضافه کند. بسیاری از پلاگینهای مبتنی بر پایتون برای PyMOL در دسترس هستند، از جمله پلاگینهایی برای آنالیز توالی، داکینگ لیگاند (Ligand docking)، آنالیز برهمکنش پروتئین-پروتئین و غیره.
-
Biskit
Biskit یک کتابخانه ماژولار و شیءگرای (Object-oriented) پایتون جهت استفاده در بیوانفورماتیک ساختاری است. این کتابخانه طیف وسیعی از ابزارها را برای آنالیز و مدلسازی ساختارهای ماکرومولکولی، از جمله داکینگ پروتئین- لیگاند، شبیهسازی دینامیک مولکولی، و پیشبینی ساختار پروتئین، فراهم میکند.
-
Scikit-Learn
Scikit-learn یک کتابخانه پایتون است که ابزارهایی در زمینه یادگیری ماشینی (Machine learning) ارائه میدهد. این کتابخانه ابزاری قدرتمند و انعطافپذیر جهت به کارگیری یادگیری ماشین در بیوانفورماتیک است و طیف گستردهای از الگوریتمها و ابزارها را ارائه میدهد که میتوانند برای آنالیز مجموعه دادههای بیولوژیکی پیچیده و پیشبینی سیستمهای بیولوژیکی استفاده شوند.
برخی از کاربردهای Scikit-learn در بیوانفورماتیک عبارتند از:
- میتوان از آن برای طبقهبندی نمونههای بیولوژیکی بر اساس دادههای بیان ژن یا دادههای پروتئومیکس (Proteomics) استفاده کرد.
- میتوان از آن برای خوشهبندی نمونههای بیولوژیکی یا کاهش ابعاد مجموعه دادههای بزرگ استفاده کرد.
- میتوان از آن برای توسعه مدلهای یادگیری ماشینی جهت پیشبینی ساختار پروتئینها و برهمکنشهای پروتئین-پروتئین بر اساس توالیهای اسید آمینه آنها، استفاده کرد.
-
NumPy (پایتون عددی)
NumPy یک کتابخانه پایتون است که برای کار با دادههای عددی در پایتون استفاده میشود. این کتابخانه به طور گسترده در Pandas، SciPy، Matplotlib، Scikit-learn و بسیاری دیگر از پکیجهای علمی پایتون استفاده میشود. NumPy یک شیء آرایهای چند بعدی به نام “ndarray” ارائه میدهد که میتواند برای انجام طیف گستردهای از عملیاتهای ریاضی روی آرایهها استفاده شود.
برای نصب و ایمپورت کردن در بایوپایتون از دستور زیر استفاده کنید:
pip install numpy
import numpy as np
-
Matplotlib
Matplotlib یک پکیج تصویرسازی در پایتون است. از این پکیج جهت ایجاد تصاویر با کیفیت بالا مانند نمودارهای خطی، نمودارهای پراکندگی، هیستوگرامها و نقشههای حرارتی استفاده میشود. میتوان از آن در بیوانفورماتیک برای تصویرسازی انواع مختلف دادهها، از جمله توالیها و ساختارهای DNA و پروتئین استفاده کرد.
برای نصب و ایمپورت کردن در بایوپایتون از دستور زیر استفاده کنید:
pip install matplotlib
import matplotlib.pyplot as plt
برخی از کاربردهای Matplotlib در بیوانفورماتیک عبارتند از:
- میتوان از آن برای تصویرسازی دادههای بیان ژن استفاده کرد که میتواند به شناسایی الگوها و روابط در این دادهها کمک کند.
- میتوان از آن برای تصویرسازی توالیهای DNA و پروتئین استفاده کرد که میتواند برای شناسایی تغییرات توالی و ویژگیهایی که برای درک عملکرد توالی مهم هستند، استفاده شود.
- میتوان از آن برای تصویرسازی درختان فیلوژنتیک و شناسایی روابط تکاملی بین گونهها یا گروههای مختلف در ارگانیسمها استفاده کرد.
کاربردهای برنامهنویسی پایتون در بیوانفورماتیک
برنامهنویسی پایتون در انواع کارکردهای بیوانفورماتیک استفاده میشود، از جمله:
- از برنامهنویسی پایتون در آنالیز ژنوم استفاده میشود. از آن برای تراز کردن توالیهای DNA و پروتئین، شناسایی تغییرات ژنتیکی و انجام آنالیز بیان ژن استفاده میشود. بایوپایتون به طور گسترده برای این منظور استفاده میشود.
- پایتون در آنالیز و تصویرسازی ساختارهای پروتئین استفاده میشود. PyMOL به طور گسترده برای این منظور استفاده میشود.
- برنامهنویسی پایتون در یادگیری ماشینی برای طبقهبندی ژنها، پیشبینی ساختارهای پروتئین و موارد دیگر استفاده میشود. Scikit-learn به طور گسترده برای ساخت مدلهای پیشبینی با استفاده از دادههای بیولوژیکی استفاده میشود.
- برنامهنویسی پایتون برای ایجاد نمودار جهت تصویریسازی دادهها در بیوانفورماتیک استفاده میشود. پایتون تعدادی پکیج را برای تصویرسازی دادهها ارائه میدهد، از جمله Matplotlib و Seaborn که به طور گسترده برای تصویرسازی دادههای بیولوژیکی استفاده میشوند.
برنامهنویسی R چیست؟
R یک زبان برنامهنویسی منبع باز است که به طور خاص برای انجام محاسبات آماری و نگارهسازی استفاده میشود. R یکی از زبانهای برنامهنویسی پرکاربرد در بیوانفورماتیک است. این زبان میتواند مجموعه دادههای بزرگ را به سرعت و به راحتی مدیریت و آنالیز کند. برنامهنویسی R، کتابخانه گستردهای از روشهای آماری و گرافیکی را فراهم میکند که تصویریسازی دادهها و ارائه آنها را به روشی واضح و مختصر، آسان میکند. R همچنین طیف گستردهای از ابزارها و تکنیکها را برای آنالیز دادههای بیولوژیکی ارائه میدهد.
مزایای برنامهنویسی R در بیوانفورماتیک
برخی از مزایای استفاده از برنامهنویسی R در بیوانفورماتیک عبارتند از:
- R یک زبان منبع باز است. این یک گزینه در دسترس برای همه، از جمله محققان بیوانفورماتیک است.
- R دارای طیف گستردهای از ابزارها و پکیجهای آماری است که میتوان از آنها برای آنالیز دادههای بیوانفورماتیک استفاده کرد.
- R دارای یک جامعه بزرگ و فعال از کاربران و توسعهدهندگان است که به طور مداوم ابزارها و پکیجهای جدیدی را برای پاسخ به نیازهای تحقیقاتی بیوانفورماتیک ایجاد میکنند.
- R میتواند بر روی سیستم عاملهای مختلف کار کند که این امر آن را به یک زبان بین پلتفرمی تبدیل میکند.
ابزارهای برنامهنویسی R در بیوانفورماتیک
R پکیجهای زیادی را ارائه میدهد که به طور خاص برای کار با دادههای ژنومی طراحی شدهاند. برخی از این ابزارها عبارتند از:
-
Bioconductor
Bioconductor یک پروژه نرمافزاری منبع باز و توسعه باز در زیستشناسی محاسباتی (Computation biology) است. این نرمافزار مجموعهای از پکیجهای R برای بیوانفورماتیک است که شامل ابزارهایی برای تصویریسازی دادهها، تجزیه و تحلیل آماری و آنالیز دادههای ژنومی میباشد.
برای نصب Bioconductor از دستور زیر استفاده کنید:
source(“https://bioconductor.org/biocLite.R”)
برای نصب پکیجهای خاص مانند Biostrings و GenomicRanges از دستور زیر استفاده کنید:
biocLite(c( “Biostrings”, “GenomicRanges”))
برخی از پکیجهای اصلی Bioconductor مورد استفاده در بیوانفورماتیک عبارتند از:
- GenomicRanges یک پکیج Bioconductor است که ابزارهایی برای ذخیره، مدیریت و آنالیز فواصل ژنومی ارائه میدهد.
- DESeq2 پکیجی برای آنالیز بیان ژن افتراقی است که معمولاً در انالیز دادههای RNA-seq استفاده میشود.
- پکیج Biostrings، ساختارهای داده و الگوریتمهای کارآمدی را برای کار با توالیهای بیولوژیکی از جمله DNA، RNA و توالیهای پروتئین ارائه میکند. این پکیج به ویژه برای آنالیز دادههای توالییابی پر بازده، مانند توالییابی کل ژنوم (Whole genome sequencing) یا توالییابی ترانسکریپتوم (Transcriptome) مفید است.
مثال:
در اینجا یک مثال ساده از یک کد برای انجام همترازی توالی زوجی با استفاده از Biostrings آورده شده است:
library(Biostrings)
seq1 <- DNAString("ATGGTGACCTGACGTCGAGGTAGCCAGCTGACTAGGACGTAGGCT")
seq2 <- DNAString("ATGGTGACCTGACGTCGAGCTAGCCAGCTGACTAGGACGTAGGCT")
alignment <- pairwiseAlignment(seq1, seq2)
print(alignment)
-
ggplot2
ggplot2 یک پکیج R محبوب برای تصویریسازی دادهها است که میتوان آن را از شبکه جامع آرشیو R (Comprehensive R Archive Network (CRAN)) دانلود کرد. این پکیج مجموعهای از توابع را فراهم میکند که به کاربران امکان میدهد به راحتی طیف گستردهای از نمودارها را برای کاوش و تصویریسازی دادههای خود ایجاد کنند. ggplot2 میتواند نمودارهایی خوشایند و آموزنده از نظر زیبا شناسی ایجاد کند.
الگوی اصلی زیر برای ایجاد یک ggplot استفاده میشود:
ggplot(data = <DATA>, mapping = aes(<MAPPINGS>)) + <GEOM_FUNCTION>()
به عنوان مثال: برای ایجاد یک نمودار خطی از بیان ژن در طول زمان، به طریق زیر عمل میکنیم که در آن زمان در محور x و سطوح بیان در محور y نمایش داده میشود:
library(ggplot2) ggplot(gene_expression, aes(x=time, y=expression)) + geom_line()
در اینجا، عبارت “gene_expression” داده است، تابع “aes” (زیبایی شناختی) برای نگاشت و از تابع “geom_line” برای ایجاد نمودار خط استفاده میشود.
- Shiny
Shiny یک پکیج R است که به طور گسترده در بیوانفورماتیک برای ایجاد ابزارها و برنامههای مبتنی بر وب استفاده میشود و به کاربران اجازه میدهد با دادههای ژنومی تعامل داشته باشند و آنها را تصویرسازی کنند. این پکیج میتواند دادههای ژنومی را تصویرسازی کند، تجزیه و تحلیل آماری انجام دهد و گزارشهای تعاملی ایجاد کند.
-
dplyr
dplyr یک پکیج R برای کار بر روی دادهها با توابعی برای فیلتر کردن، انتخاب، خلاصه کردن و مرتب کردن دادهها است.
به عنوان مثال: برای انتخاب و فیلتر کردن دادههای مورد نیاز یه صورت زیر عمل میشود:
برای انتخاب ستونهای «ژن»، «نمونه» و «ارگانیسم» از یک چارچوب داده «rna»، از تابع «select» استفاده میشود:
library(dplyr)
select(rna, gene, sample, organism
تابع “filter” را میتوان فقط برای انتخاب ردیفهایی از چارچوب داده استفاده کرد که در آن ستون جنسیت برابر با “Male” است:
filter(rna, sex == “Male”)
کاربردهای برنامهنویسی R در بیوانفورماتیک
برنامهنویسی R در بیوانفورماتیک برای کاربردهای مختلف، از تصویریسازی دادهها و تجزیه و تحلیل آماری گرفته تا ژنومیک و یادگیری ماشین استفاده میشود. برخی از کاربردهای برنامهنویسی R در بیوانفورماتیک عبارتند از:
- از برنامهنویسی R میتوان برای ایجاد نمودارها و چارتهایی استفاده کرد که برای کاوش و تفسیر دادههای پیچیده بیولوژیکی ضروری هستند. برخی از پکیجهای محبوب در R شامل ggplot2 و shiny هستند.
- برنامهنویسی R ابزارها و تکنیکهای آماری مختلفی را برای آنالیز دادههای بیولوژیکی فراهم میکند.
- برنامهنویسی R ابزارهایی را برای بررسی دادهها فراهم میکند که برای کار با مجموعه دادههای بیولوژیکی بزرگ ضروری است. ابزارهای پکیج dplyr میتوانند دادهها را پالایش و پیش پردازش کنند و تجزیه و تحلیل و تفسیر آن را آسانتر کنند.
- برنامهنویسی R پکیجهای زیادی را ارائه میدهد که به طور خاص برای کار با دادههای ژنومی طراحی شدهاند، مانند Bioconductor و پکیج GenomicRanges.
همچنین بخوانید:
- دوره مهارت آموزی بیوانفورماتیک
- تفاوت استفاده از زبان پایتون در مقابل R در یادگیری ماشین
- دوره مهارت آموزی پایتون برای بیولوژیست ها
- دوره مهارت آموزی هوش مصنوعی: ماشین لرنینگ برای بیولوژیست ها
مترجم: صادق حسینیکیا