آموزش تجزیه و تحلیل خوشه ای در برنامه نویسی بایوپایتون

3 سال پیش

 تجزیه و تحلیل خوشه ای در برنامه نویسی بایوپایتون

در این درس از آموزش های برنامه نویسی سایت سورس باران، ما در مورد آموزش تجزیه و تحلیل خوشه ای در برنامه نویسی بایوپایتون بحث خواهیم کرد.

پیشنهاد ویژه : پکیج آموزش پایتون

به طور کلی تجزیه و تحلیل خوشه ای، گروه بندی مجموعه ای از اشیا در همان گروه است. این مفهوم عمدتا در داده کاوی، تجزیه و تحلیل داده های آماری، یادگیری ماشین، تشخیص الگو، تجزیه و تحلیل تصویر ، بیوانفورماتیک و غیره استفاده می شود. می توان با الگوریتم های مختلف به این نتیجه رسید که چگونه خوشه به طور گسترده در تجزیه و تحلیل های مختلف استفاده می شود.

طبق بیوانفورماتیک، تجزیه خوشه ای عمدتا در تجزیه و تحلیل داده های بیان ژن برای یافتن گروه هایی از ژن ها با بیان ژن مشابه استفاده می شود.

 

بایوپایتون از ماژول Bio.Cluster برای پیاده سازی همه الگوریتم ها استفاده می کند. این الگوریتم های زیر را پشتیبانی می کند –

  • Hierarchical Clustering
  • K – Clustering
  • Self-Organizing Maps
  • Principal Component Analysis

بگذارید یک معرفی مختصر در مورد الگوریتم های فوق داشته باشیم.

 

خوشه بندی سلسله مراتبی (Hierarchical Clustering)

خوشه بندی سلسله مراتبی برای اتصال هر گره با اندازه گیری فاصله به نزدیکترین همسایه و ایجاد خوشه استفاده می شود. گره Bio.Cluster دارای سه ویژگی است: چپ، راست و فاصله.

اجازه دهید یک خوشه ساده ایجاد کنیم:

>>> from Bio.Cluster import Node 
>>> n = Node(1,10) 
>>> n.left = 11 
>>> n.right = 0 
>>> n.distance = 1 
>>> print(n) 
(۱۱, ۰): ۱

 

اگر می خواهید خوشه بندی مبتنی بر درخت را ایجاد کنید، از دستور زیر استفاده کنید:

>>> n1 = [Node(1, 2, 0.2), Node(0, -1, 0.5)] >>> n1_tree = Tree(n1) 
>>> print(n1_tree) 
(۱, ۲): ۰٫۲ 
(۰, -۱): ۰٫۵ 
>>> print(n1_tree[0]) 
(۱, ۲): ۰٫۲

 

اجازه دهید خوشه بندی سلسله مراتبی را با استفاده از ماژول Bio.Cluster انجام دهیم.

در نظر بگیرید که فاصله در یک آرایه تعریف شده است.

>>> import numpy as np 
>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])

 

اکنون آرایه فاصله را در خوشه درخت اضافه کنید.

>>> from Bio.Cluster import treecluster 
>>> cluster = treecluster(distance) 
>>> print(cluster) 
(۲, ۱): ۰٫۶۶۶۶۶۷ 
(-۱, ۰): ۹٫۶۶۶۶۷

 

تابع فوق یک شی خوشه Tree را برمی گرداند. این شی شامل گره هایی است که تعداد موارد به صورت ردیف یا ستون جمع شده است.

K – Clustering

این یک نوع الگوریتم پارتیشن بندی است و در خوشه بندی k – means, medians  و medoids ​​طبقه بندی می شود. بگذارید هر یک از خوشه بندی ها را به طور خلاصه درک کنیم.

 خوشه بندی K-means

این روش در داده کاوی محبوب است. هدف این الگوریتم یافتن گروههایی در داده ها با تعداد گروههایی است که توسط متغیر K نمایش داده می شوند.

الگوریتم به صورت تکراری کار می کند تا هر نقطه داده را بر اساس ویژگی های ارائه شده به یکی از گروه های K اختصاص دهد. نقاط داده بر اساس شباهت ویژگی ها خوشه بندی می شوند.

>>> from Bio.Cluster import kcluster 
>>> from numpy import array 
>>> data = array([[1, 2], [3, 4], [5, 6]]) 
>>> clusterid, error,found = kcluster(data) 
>>> print(clusterid) [0 0 1] 
>>> print(found) 
۱

 

خوشه بندی K-medians

این نوع دیگری از الگوریتم خوشه بندی است که میانگین هر خوشه را برای تعیین مرکز گرایش آن محاسبه می کند.

 

خوشه بندی K-medoids

این روش با استفاده از ماتریس فاصله و تعداد خوشه های منتقل شده توسط کاربر، بر اساس مجموعه ای از موارد مشخص است.

ماتریس فاصله را به شرح زیر در نظر بگیرید:

>>> distance = array([[1,2,3],[4,5,6],[3,5,7]])

 

با استفاده از دستور زیر می توان خوشه بندی k-medoids را محاسبه کرد:

>>> from Bio.Cluster import kmedoids 
>>> clusterid, error, found = kmedoids(distance)

 

اجازه بدین مثالی را مطرح کنیم.

تابع kcluster یک ماتریس داده و نه نمونه های Seq را به عنوان ورودی می گیرد. شما باید توالی های خود را به یک ماتریس تبدیل کرده و آن را به تابع kcluster ارائه دهید.

یکی از متد های تبدیل داده ها به ماتریس حاوی عناصر عددی فقط استفاده از تابع numpy.fromstring است. در اصل هر حرف را به ترتیب به همتای ASCII خود ترجمه می کند.

این یک آرایه ۲D از توالی های رمزگذاری شده ایجاد می کند که تابع kcluster آنها را شناسایی کرده و از آنها برای خوشه سازی توالی های شما استفاده می کند.

>>> from Bio.Cluster import kcluster 
>>> import numpy as np 
>>> sequence = [ 'AGCT','CGTA','AAGT','TCCG'] 
>>> matrix = np.asarray([np.fromstring(s, dtype=np.uint8) for s in sequence]) 
>>> clusterid,error,found = kcluster(matrix) 
>>> print(clusterid) [1 0 0 1]

 

نقشه های خود سازمان دهنده

این رویکرد نوعی شبکه عصبی مصنوعی است. توسط کوهنن ساخته شده و اغلب به عنوان نقشه کوهنن نامیده می شود. این آیتم ها را بر اساس توپولوژی مستطیلی به صورت خوشه ای سازمان می دهد.

اجازه دهید یک خوشه ساده با استفاده از همان فاصله آرایه ای که در زیر نشان داده شده ایجاد کنیم:

>>> from Bio.Cluster import somcluster 
>>> from numpy import array 
>>> data = array([[1, 2], [3, 4], [5, 6]]) 
>>> clusterid,map = somcluster(data) 

>>> print(map) 
[[[-۱٫۳۶۰۳۲۴۶۹ ۰٫۳۸۶۶۷۳۹۵]] 
   [[-۰٫۴۱۱۷۰۵۷۸ ۱٫۳۵۲۹۵۹۱۱]]] 

>>> print(clusterid) 
[[۱ ۰]
   [۱ ۰]
   [۱ ۰]]

 

در اینجا، Clusterid آرایه ای با دو ستون است، که در آن تعداد ردیف ها با تعداد مواردی که خوشه بندی شده اند برابر است و داده ها یک آرایه با ابعاد ردیف یا ستون هستند.

تحلیل مولفه اصلی

تجزیه و تحلیل مولفه اصلی برای تجسم داده های با ابعاد بالا مفید است. این روشی است که از عملیات ساده ماتریس جبر خطی و آمار برای محاسبه پیش بینی داده های اصلی به همان تعداد یا ابعاد کمتر استفاده می کند.

تجزیه و تحلیل مولفه اصلی یک ستون تجربی، مختصات مولفه ها و مقادیر ویژه را برمی گرداند. بگذارید اصول این مفهوم را بررسی کنیم

>>> from numpy import array 
>>> from numpy import mean 
>>> from numpy import cov 
>>> from numpy.linalg import eig 

# define a matrix 
>>> A = array([[1, 2], [3, 4], [5, 6]]) 

>>> print(A) 
[[۱ ۲]
   [۳ ۴]
   [۵ ۶]] 
 
# calculate the mean of each column 
>>> M = mean(A.T, axis = 1) 
>>> print(M) 
[ ۳٫ ۴٫] 

# center columns by subtracting column means 
>>> C = A - M

>>> print(C) 
[[-۲٫ -۲٫]
   [ ۰٫ ۰٫]
   [ ۲٫ ۲٫]] 

# calculate covariance matrix of centered matrix 
>>> V = cov(C.T) 

>>> print(V) 
[[ ۴٫ ۴٫]
   [ ۴٫ ۴٫]] 
 
# eigendecomposition of covariance matrix 
>>> values, vectors = eig(V) 

>>> print(vectors) 
[[ ۰٫۷۰۷۱۰۶۷۸ -۰٫۷۰۷۱۰۶۷۸]
   [ ۰٫۷۰۷۱۰۶۷۸ ۰٫۷۰۷۱۰۶۷۸]] 
 
>>> print(values) 
[ ۸٫ ۰٫]

 

اجازه دهید همان داده های ماتریس مستطیل را برای Bio اعمال کنیم. ماژول Cluster که در زیر تعریف شده است:

>>> from Bio.Cluster import pca 
>>> from numpy import array 
>>> data = array([[1, 2], [3, 4], [5, 6]]) 
>>> columnmean, coordinates, components, eigenvalues = pca(data) 
>>> print(columnmean) 
[ ۳٫ ۴٫] 
>>> print(coordinates) 
[[-۲٫۸۲۸۴۲۷۱۲ ۰٫ ]
   [ ۰٫         ۰٫ ]
   [ ۲٫۸۲۸۴۲۷۱۲ ۰٫ ]] 
>>> print(components) 
[[ ۰٫۷۰۷۱۰۶۷۸ ۰٫۷۰۷۱۰۶۷۸]
   [ ۰٫۷۰۷۱۰۶۷۸ -۰٫۷۰۷۱۰۶۷۸]] 
>>> print(eigenvalues) 
[ ۴٫ ۰٫]

 

منبع.

 

لیست جلسات قبل آموزش برنامه نویسی بایوپایتون

  1. آموزش برنامه نویسی بایوپایتون (Biopython)
  2. معرفی برنامه نویسی بایوپایتون
  3. آموزش نصب بایوپایتون
  4. ایجاد یک برنامه ساده در برنامه نویسی بایوپایتون
  5. آموزش دنباله در برنامه نویسی بایوپایتون
  6. عملیات توالی پیشرفته در برنامه نویسی بایوپایتون
  7. آموزش توالی ورودی/خروجی در برنامه نویسی بایوپایتون
  8.  آموزش هم‌ترازسازی توالی در برنامه نویسی بایوپایتون
  9. بررسی اجمالی BLAST در برنامه نویسی بایوپایتون
  10. بررسی پایگاه داده Entrez در برنامه نویسی بایوپایتون
  11. آموزش ماژول PDB در برنامه نویسی بایوپایتون
  12. آموزش اشیا موتیف در برنامه نویسی بایوپایتون
  13. آموزش ماژول BioSQL در برنامه نویسی بایوپایتون
  14. آموزش ژنتیک جمعیت در برنامه نویسی بایوپایتون
  15. آموزش آنالیز ژنوم در برنامه نویسی بایوپایتون
  16. آموزش ریزآرایه فنوتیپ در برنامه نویسی بایوپایتون
  17. آموزش رسم نمودار در برنامه نویسی بایوپایتون
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه