बायोपाइथन: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
{{short description|Collection of open-source Python software tools for computational biology}} | {{short description|Collection of open-source Python software tools for computational biology}} | ||
'''बायोपाइथन''' प्रोजेक्ट [[कम्प्यूटेशनल बायोलॉजी]] और बायोइन्फरमेटिक्स के लिए अव्यावसायिक [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज)]] टूल का [[ खुला स्रोत सॉफ्टवेयर |ओपन सोर्स सॉफ्टवेयर]] कलेक्शन है, जिसे डेवलपर्स के अंतरराष्ट्रीय संघ द्वारा बनाया गया है।<ref name="Chapman2000">{{Cite journal |last1=Chapman |first1=Brad |last2=Chang |first2=Jeff |title=Biopython: Python tools for computational biology |journal=ACM SIGBIO Newsletter |date=August 2000 |volume=20 |issue=2 |pages=15–19 |doi=10.1145/360262.360268 |s2cid=9417766 |doi-access=free }}</ref><ref name="Cock2009">{{cite journal |last1=Cock |first1=Peter JA |last2=Antao |first2=Tiago |last3=Chang |first3=Jeffery T |last4=Chapman |first4=Brad A |last5=Cox |first5=Cymon J |last6=Dalke |first6=Andrew |last7=Friedberg |first7=Iddo |last8=Hamelryck |first8=Thomas |last9=Kauff |first9=Frank |last10=Wilczynski |first10=Bartek |last11=de Hoon |first11=Michiel JL |title = Biopython: freely available Python tools for computational molecular biology and bioinformatics |url= | journal = Bioinformatics| volume = 25| issue = 11| pages = 1422–3|date=20 March 2009| pmid = 19304878| pmc = 2682512| doi = 10.1093/bioinformatics/btp163}}</ref><ref name="lists">Refer to the Biopython website for other [http://biopython.org/wiki/Documentation#Papers papers describing Biopython], and a list of over one hundred [http://biopython.org/wiki/Publications publications using/citing Biopython].</ref> इसमें [[जैविक अनुक्रम|बायोलॉजिकल सीक्वेंसेस]] और सीक्वेंस एनोटेशन का प्रतिनिधित्व करने वाली क्लासेज सम्मिलित होती हैं, और यह विभिन्न फ़ाइल फॉर्मैट्स को राइट और रीड करने में सक्षम होती है। यह एनसीबीआई जैसे ऑनलाइन [[जैविक डेटाबेस|बायोलॉजिकल डेटाबेस]] एक्सेस्सिंग के प्रोग्रामेटिक माध्यमों की भी अनुमति देता है। भिन्न-भिन्न मॉड्यूल बायोपाइथन की क्षमताओं को [[अनुक्रम संरेखण|सीक्वेंस एलाइनमेंट]], [[प्रोटीन संरचना|प्रोटीन स्ट्रक्चर]], [[जनसंख्या आनुवंशिकी|पापुलेशन जेनेटिक्स]], [[फाइलोजेनेटिक्स]], सीक्वेंस मोटिफ्स और [[ यंत्र अधिगम |मशीन लर्निंग]] तक विस्तारित करते हैं। बायोपाइथन कम्प्यूटेशनल जीवविज्ञान में [[डुप्लिकेट कोड]] को रिड्यूस करने के लिए निर्मित किये गए कई बायो प्रोजेक्ट्स में से एक है।<ref name="Mangalam2002">{{cite journal| last=Mangalam | first=Harry |title=The Bio* toolkits—a brief overview | journal=Briefings in Bioinformatics |date=September 2002 | volume= 3 | issue= 3 | pages= 296–302 | pmid=12230038 | doi=10.1093/bib/3.3.296| doi-access=free }}</ref> | |||
== इतिहास == | == इतिहास == | ||
बायोपाइथन का विकास 1999 में प्रारम्भ हुआ और इसे प्रथम बार जुलाई 2000 में प्रस्तावित किया गया था।<ref name="Chapman2004">{{Citation | first = Brad | last = Chapman |title=The Biopython Project: Philosophy, functionality and facts |url=http://www.biopython.org/DIST/docs/presentations/biopython_exelixis.pdf |date=11 March 2004 |accessdate=11 September 2014}}</ref> इसे समान समय सीमा के अंतर्गत और अन्य परियोजनाओं के समान लक्ष्यों के साथ विकसित किया गया था, जिसमें [[बायोपर्ल]], [[बायोरूबी]] और [[बायोजावा]] सहित उनकी संबंधित प्रोग्रामिंग भाषाओं में जैव सूचना विज्ञान क्षमताओं को युग्मित किया गया था। परियोजना के प्रारंभिक डेवलपर्स में जेफ चांग, एंड्रयू डेल्के और ब्रैड चैपमैन सम्मिलित थे, चूँकि अब तक 100 से अधिक लोगों ने योगदान दिया है।<ref name="Contributors">{{Citation |title=List of Biopython contributors |url=http://biopython.org/SRC/biopython/CONTRIB |accessdate=11 September 2014 |url-status=dead |archiveurl=https://archive.today/20140911121354/http://biopython.org/SRC/biopython/CONTRIB |archivedate=11 September 2014 }}</ref> 2007 में, समान पायथन (प्रोग्रामिंग लैंग्वेज) परियोजना, जिसका नाम पायकोजेंट था, स्थापित की गई थी।<ref>{{Cite journal | |||
| pmid = 17708774 | | pmid = 17708774 | ||
| pmc = 2375001 | | pmc = 2375001 | ||
Line 70: | Line 56: | ||
| doi = 10.1186/gb-2007-8-8-r171 | | doi = 10.1186/gb-2007-8-8-r171 | ||
}}</ref> | }}</ref> | ||
बायोपाइथन के प्रारंभिक समय में जैविक सीक्वेंस फ़ाइलों तक पहुंच, अनुक्रमण और प्रसंस्करण सम्मिलित था। चूँकि यह अभी भी प्रमुख फोकस है, पश्चात् के वर्षों में जोड़े गए मॉड्यूल ने जीवविज्ञान के अतिरिक्त क्षेत्रों को कवर करने के लिए इसकी कार्यक्षमता बढ़ा दी है (मुख्य विशेषताएं और उदाहरण देखें)। | |||
संस्करण 1.77 के अनुसार, | संस्करण 1.77 के अनुसार, बायोपाइथन अब पायथन 2 का समर्थन नहीं करता है।<ref name="Python27EoL">{{Citation | first = Chris | last = Daley |title=Biopython 1.77 released |url=https://www.open-bio.org/2020/05/25/biopython-1-77-released/ |accessdate=6 October 2021}}</ref> | ||
== डिज़ाइन == | == डिज़ाइन == | ||
जहां भी संभव हो, बायोपीथॉन पायथन से परिचित उपयोगकर्ताओं के लिए इसे सरल बनाने के लिए पायथन प्रोग्रामिंग | जहां भी संभव हो, बायोपीथॉन पायथन से परिचित उपयोगकर्ताओं के लिए इसे सरल बनाने के लिए पायथन प्रोग्रामिंग लैंग्वेज द्वारा उपयोग की जाने वाली परंपराओं का पालन करता है। उदाहरण के लिए, <code>Seq</code> और <code>SeqRecord</code> वस्तुओं को ऐरे स्लाइसिंग 1991: पायथन के माध्यम से परिवर्तित किया जा सकता है, पायथन की स्ट्रिंग्स और सूचियों के समान ही। इसे कार्यात्मक रूप से अन्य बायो परियोजनाओं, जैसे कि बायोपर्ल, के समान डिज़ाइन किया गया है।<ref name="Chapman2004"/> | ||
बायोपाइथन अपने प्रत्येक कार्यात्मक क्षेत्र के लिए सामान्य फ़ाइल स्वरूपों को पढ़ने और लिखने में सक्षम है, और इसका लाइसेंस अधिकांश अन्य सॉफ़्टवेयर लाइसेंसों के साथ अनुमेय और संगत है, जो बायोपाइथन को विभिन्न सॉफ़्टवेयर परियोजनाओं में उपयोग करने की अनुमति प्रदान करता है।<ref name="lists"/> | बायोपाइथन अपने प्रत्येक कार्यात्मक क्षेत्र के लिए सामान्य फ़ाइल स्वरूपों को पढ़ने और लिखने में सक्षम है, और इसका लाइसेंस अधिकांश अन्य सॉफ़्टवेयर लाइसेंसों के साथ अनुमेय और संगत है, जो बायोपाइथन को विभिन्न सॉफ़्टवेयर परियोजनाओं में उपयोग करने की अनुमति प्रदान करता है।<ref name="lists"/> | ||
Line 81: | Line 67: | ||
== मुख्य विशेषताएं और उदाहरण == | == मुख्य विशेषताएं और उदाहरण == | ||
=== | === सीक्वेंस === | ||
बायोपाइथन में मुख्य अवधारणा जैविक सीक्वेंस होते है, और इसे इसके <code>Seq</code> सेल द्वारा प्रदर्शित किया गया है ।<ref name="Tutorial">{{Citation |last1=Chang |first1=Jeff |last2=Chapman |first2=Brad |last3=Friedberg |first3=Iddo |last4=Hamelryck |first4=Thomas |last5=de Hoon |first5=Michiel |last6=Cock |first6=Peter |last7=Antao |first7=Tiago |last8=Talevich |first8=Eric |last9=Wilczynski |first9=Bartek |title=Biopython Tutorial and Cookbook |url=http://biopython.org/DIST/docs/tutorial/Tutorial.html |date=29 May 2014 |accessdate=28 August 2014}}</ref> बायोपिथॉन <code>Seq</code> ऑब्जेक्ट कई विषयों में पायथन स्ट्रिंग के समान है: यह पायथन स्लाइस नोटेशन का समर्थन करता है, इसे अन्य अनुक्रमों के साथ युग्मित किया जा सकता है, और यह अपरिवर्तनीय होता है। इसके अतिरिक्त, इसमें सीक्वेंस-विशिष्ट विधियाँ सम्मिलित हैं और प्रयुक्त विशेष जैविक वर्णमाला को निर्दिष्ट किया गया है। | |||
<syntaxhighlight lang="pycon"> | <syntaxhighlight lang="pycon"> | ||
Line 101: | Line 87: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == सीक्वेंस एनोटेशन == | ||
<code>SeqRecord</code> वर्ग <code>SeqFeature</code> ऑब्जेक्ट के रूप में नाम, विवरण और सुविधाओं जैसी जानकारी के साथ-साथ अनुक्रमों का वर्णन करता है। प्रत्येक <code>SeqFeature</code> ऑब्जेक्ट सुविधा के प्रकार और उसके स्थान को निर्दिष्ट करता है। फ़ीचर प्रकार 'जीन', 'सीडीएस' (कोडिंग | <code>SeqRecord</code> वर्ग <code>SeqFeature</code> ऑब्जेक्ट के रूप में नाम, विवरण और सुविधाओं जैसी जानकारी के साथ-साथ अनुक्रमों का वर्णन करता है। प्रत्येक <code>SeqFeature</code> ऑब्जेक्ट सुविधा के प्रकार और उसके स्थान को निर्दिष्ट करता है। फ़ीचर प्रकार 'जीन', 'सीडीएस' (कोडिंग सीक्वेंस), 'रिपीट_रीजन', 'मोबाइल_एलिमेंट' या अन्य हो सकते हैं, और सीक्वेंस में सुविधाओं की स्थिति त्रुटिहीन या अनुमानित हो सकती है। | ||
<syntaxhighlight lang="pycon"> | <syntaxhighlight lang="pycon"> | ||
Line 120: | Line 106: | ||
'''इनपुट और आउटपुट''' | '''इनपुट और आउटपुट''' | ||
बायोपाइथन फास्ता प्रारूप, फास्टक्यू प्रारूप, जेनबैंक, क्लस्टल, फ़िलिप और नेक्सस फ़ाइल सहित कई सामान्य | बायोपाइथन फास्ता प्रारूप, फास्टक्यू प्रारूप, जेनबैंक, क्लस्टल, फ़िलिप और नेक्सस फ़ाइल सहित कई सामान्य सीक्वेंस प्रारूपों को पढ़ और लिख सकता है। फ़ाइलें पढ़ते समय, फ़ाइल में वर्णनात्मक जानकारी का उपयोग बायोपाइथन कक्षाओं के सदस्यों को भरने के लिए किया जाता है, जैसे <code>SeqRecord</code>. यह फ़ाइल प्रारूप के रिकॉर्ड को दूसरे फ़ाइल प्रारूप में परिवर्तित करने की अनुमति देता है। | ||
अत्यधिक | अत्यधिक सीक्वेंस फ़ाइलें कंप्यूटर के मेमोरी संसाधनों से अधिक हो सकती हैं, इसलिए बायोपीथॉन बड़ी फ़ाइलों में रिकॉर्ड तक पहुंचने के लिए विभिन्न विकल्प प्रदान करता है। उन्हें पूर्ण रूप से पायथन डेटा संरचनाओं में मेमोरी में लोड किया जा सकता है, जैसे कि सूचियां या [[सहयोगी सरणी]], जो मेमोरी उपयोग पर तीव्र से पहुंच प्रदान करते हैं। वैकल्पिक रूप से, फ़ाइलों को धीमे प्रदर्शन किन्तु निम्न मेमोरी आवश्यकताओं के साथ आवश्यकतानुसार डिस्क से पढ़ा जा सकता है। | ||
<syntaxhighlight lang="pycon"> | <syntaxhighlight lang="pycon"> | ||
Line 132: | Line 118: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'''ऑनलाइन डेटाबेस | '''ऑनलाइन डेटाबेस एक्सेस्सिंग''' | ||
Bio.Entrez मॉड्यूल के माध्यम से, बायोपिथॉन के उपयोगकर्ता एनसीबीआई डेटाबेस से जैविक डेटा डाउनलोड कर सकते हैं। [[ अंदर आएं |एंट्रेज़]] सर्च इंजन द्वारा प्रदान किया गया प्रत्येक फ़ंक्शन इस मॉड्यूल में फ़ंक्शन के माध्यम से उपलब्ध है, जिसमें रिकॉर्ड परीक्षण और डाउनलोड करना सम्मिलित है। | Bio.Entrez मॉड्यूल के माध्यम से, बायोपिथॉन के उपयोगकर्ता एनसीबीआई डेटाबेस से जैविक डेटा डाउनलोड कर सकते हैं। [[ अंदर आएं |एंट्रेज़]] सर्च इंजन द्वारा प्रदान किया गया प्रत्येक फ़ंक्शन इस मॉड्यूल में फ़ंक्शन के माध्यम से उपलब्ध है, जिसमें रिकॉर्ड परीक्षण और डाउनलोड करना सम्मिलित है। | ||
Line 157: | Line 143: | ||
=== जीनोम आरेख === | === जीनोम आरेख === | ||
[[File:PKPS77.png|thumb|300px|चित्र 3: pKPS77 प्लास्मिड पर जीन का आरेख,<ref name="NC_023330.1">{{cite web |url=https://www.ncbi.nlm.nih.gov/nuccore/NC_023330.1 |title=क्लेबसिएला निमोनिया स्ट्रेन KPS77 प्लास्मिड pKPS77, पूर्ण अनुक्रम|date= |website= |publisher=NCBI |accessdate=10 September 2014}}</ref> | [[File:PKPS77.png|thumb|300px|चित्र 3: pKPS77 प्लास्मिड पर जीन का आरेख,<ref name="NC_023330.1">{{cite web |url=https://www.ncbi.nlm.nih.gov/nuccore/NC_023330.1 |title=क्लेबसिएला निमोनिया स्ट्रेन KPS77 प्लास्मिड pKPS77, पूर्ण अनुक्रम|date= |website= |publisher=NCBI |accessdate=10 September 2014}}</ref> बायोपाइथन में जेनोमडायग्राम मॉड्यूल का उपयोग करके कल्पना की गई]]जीनोम आरेख मॉड्यूल बायोपिथॉन के अंदर अनुक्रमों को देखने के उपाय प्रदान करता है।<ref name="Pritchard2006">{{Cite journal |last1=Pritchard |first1=Leighton |last2=White |first2=Jennifer A |last3=Birch |first3=Paul RJ |last4=Toth |first4=Ian K |title=GenomeDiagram: a python package for the visualization of large-scale genomic data |journal=Bioinformatics |date=March 2006 |volume=22 |issue=5 |pages=616–617 |doi=10.1093/bioinformatics/btk021 |pmid=16377612|doi-access=free }}</ref> अनुक्रमों को रैखिक या गोलाकार रूप में खींचा जा सकता है (चित्र 3 देखें), और कई आउटपुट प्रारूप समर्थित हैं, जिनमें पोर्टेबल प्रपत्र प्रारूप और [[ पोर्टेबल नेटवर्क ग्राफ़िक्स |पोर्टेबल नेटवर्क ग्राफ़िक्स]] सम्मिलित हैं। ट्रैक निर्मित करके और पुनः उन ट्रैक में सीक्वेंस सुविधाएँ जोड़कर आरेख बनाए जाते हैं। सीक्वेंस की विशेषताओं पर लूपिंग करके और उनकी विशेषताओं का उपयोग करके यह तय करना कि क्या और कैसे उन्हें आरेख के ट्रैक में जोड़ा जाता है, कोई अंतिम आरेख की उपस्थिति पर अधिक निप्रणालीण रख सकता है। विभिन्न ट्रैकों के मध्य क्रॉस-लिंक खींचे जा सकते हैं, जिससे ही आरेख में कई अनुक्रमों की तुलना की जा सकती है। | ||
=== मैक्रोमोलेक्यूलर | === मैक्रोमोलेक्यूलर स्ट्रक्चर === | ||
Bio.PDB मॉड्यूल प्रोटीन डेटा बैंक (फ़ाइल प्रारूप) और क्रिस्टलोग्राफ़िक सूचना फ़ाइल फ़ाइलों से आणविक संरचनाओं को लोड कर सकता है, और 2003 में | Bio.PDB मॉड्यूल प्रोटीन डेटा बैंक (फ़ाइल प्रारूप) और क्रिस्टलोग्राफ़िक सूचना फ़ाइल फ़ाइलों से आणविक संरचनाओं को लोड कर सकता है, और 2003 में बायोपाइथन में जोड़ा गया था।<ref name="Hamelryck2003">{{cite journal |last1=Hamelryck |first1=Thomas |last2=Manderick |first2=Bernard |date=10 May 2003 |title=पीडीबी फ़ाइल पार्सर और संरचना वर्ग को पायथन में लागू किया गया|journal=Bioinformatics |volume=19 |issue=17 |doi=10.1093/bioinformatics/btg299 |pages=2308–2310|pmid=14630660 |doi-access=free }}</ref> <code>Structure</code> ऑब्जेक्ट इस मॉड्यूल के केंद्र में है, और यह पदानुक्रमित फैशन में मैक्रोमोलेक्यूलर संरचना का आयोजन करता है: <code>Structure</code> ऑब्जेक्ट्स में <code>Model</code> ऑब्जेक्ट्स होते हैं जिनमें <code>Chain</code> ऑब्जेक्ट्स होते हैं जिनमें <code>Residue</code>ऑब्जेक्ट्स होते हैं जिनमें <code>Atom</code> ऑब्जेक्ट्स होते हैं। अव्यवस्थित अवशेषों और परमाणुओं को अपने स्वयं के वर्ग, जाती हैं, <code>DisorderedResidue</code> और <code>DisorderedAtom</code>, युग्मित होते हैं, जो उनकी अनिश्चित स्थिति का वर्णन करते हैं। | ||
Bio.PDB का उपयोग करके, कोई व्यक्ति मैक्रोमोलेक्यूलर संरचना फ़ाइल के व्यक्तिगत घटकों के माध्यम से नेविगेट कर सकता है, जैसे कि प्रोटीन में प्रत्येक परमाणु का परीक्षण करना आदि। सामान्य विश्लेषण किए जा सकते हैं, जैसे दूरियां या कोण मापना, अवशेषों की तुलना करना और अवशेषों की गहराई की गणना करना आदि। | Bio.PDB का उपयोग करके, कोई व्यक्ति मैक्रोमोलेक्यूलर संरचना फ़ाइल के व्यक्तिगत घटकों के माध्यम से नेविगेट कर सकता है, जैसे कि प्रोटीन में प्रत्येक परमाणु का परीक्षण करना आदि। सामान्य विश्लेषण किए जा सकते हैं, जैसे दूरियां या कोण मापना, अवशेषों की तुलना करना और अवशेषों की गहराई की गणना करना आदि। | ||
=== | === पापुलेशन जेनेटिक्स === | ||
Bio.PopGen मॉड्यूल जनसंख्या जीन्स के सांख्यिकीय विश्लेषण के लिए सॉफ्टवेयर पैकेज, जीनपॉप के लिए बायोपिथॉन को समर्थन युग्मित करता है।<ref name="Rousset2008">{{cite journal |last=Rousset |first=François |date=January 2008 |title=GENEPOP'007: a complete re-implementation of the GENEPOP software for Windows and Linux |journal=Molecular Ecology Resources |volume=8 |issue=1 |doi=10.1111/j.1471-8286.2007.01931.x |pmid=21585727 |pages=103–106|s2cid=25776992 }}</ref> यह हार्डी-वेनबर्ग संतुलन, लिंकेज असंतुलन और जनसंख्या की [[एलील आवृत्ति]] की अन्य विशेषताओं के विश्लेषण की अनुमति प्रदान करता है। | Bio.PopGen मॉड्यूल जनसंख्या जीन्स के सांख्यिकीय विश्लेषण के लिए सॉफ्टवेयर पैकेज, जीनपॉप के लिए बायोपिथॉन को समर्थन युग्मित करता है।<ref name="Rousset2008">{{cite journal |last=Rousset |first=François |date=January 2008 |title=GENEPOP'007: a complete re-implementation of the GENEPOP software for Windows and Linux |journal=Molecular Ecology Resources |volume=8 |issue=1 |doi=10.1111/j.1471-8286.2007.01931.x |pmid=21585727 |pages=103–106|s2cid=25776992 }}</ref> यह हार्डी-वेनबर्ग संतुलन, लिंकेज असंतुलन और जनसंख्या की [[एलील आवृत्ति]] की अन्य विशेषताओं के विश्लेषण की अनुमति प्रदान करता है। | ||
Line 171: | Line 157: | ||
यह मॉड्यूल फास्टसिमकोल2 प्रोग्राम के साथ [[सहसंयोजक सिद्धांत]] का उपयोग करके जनसंख्या आनुवंशिक सिमुलेशन भी कर सकता है।<ref name="Excoffier2011">{{cite journal |last1=Excoffier |first1=Laurent |last2=Foll |first2=Matthieu |date=1 March 2011 |title=fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios |journal=Bioinformatics |volume=27 |issue=9 |doi=10.1093/bioinformatics/btr124 |pages=1332–1334 |pmid=21398675|doi-access=free }}</ref> | यह मॉड्यूल फास्टसिमकोल2 प्रोग्राम के साथ [[सहसंयोजक सिद्धांत]] का उपयोग करके जनसंख्या आनुवंशिक सिमुलेशन भी कर सकता है।<ref name="Excoffier2011">{{cite journal |last1=Excoffier |first1=Laurent |last2=Foll |first2=Matthieu |date=1 March 2011 |title=fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios |journal=Bioinformatics |volume=27 |issue=9 |doi=10.1093/bioinformatics/btr124 |pages=1332–1334 |pmid=21398675|doi-access=free }}</ref> | ||
''' | '''कमांड लाइन टूल्स के लिए रेप्पर्स''' | ||
बायोपाइथन के कई मॉड्यूल में सामान्यतः उपयोग किए जाने वाले | बायोपाइथन के कई मॉड्यूल में सामान्यतः उपयोग किए जाने वाले टूल्स के लिए कमांड लाइन रैपर होते हैं, जिससे इन टूल्स को बायोपाइथन के अंदर से उपयोग करने की अनुमति प्राप्त होती है। इन रैपरों में [[ धमाका |ब्लास्ट,]] [[क्लस्टल]], फैमल, [[EMBOSS|ईएमबॉस]] और [[SAMtools|सैमटूल्स]] सम्मिलित हैं। यूजर किसी अन्य कमांड लाइन टूल के लिए सपोर्ट ऐड करने के लिए जेनेरिक रैपर क्लास को सबक्लास कर सकते हैं। | ||
== यह भी देखें == | == यह भी देखें == | ||
[[जैव सूचना विज्ञान फाउंडेशन खोलें| | [[जैव सूचना विज्ञान फाउंडेशन खोलें|ओपन बायोइन्फरमेटिक्स फाउंडेशन]] | ||
* बायोपर्ल | * बायोपर्ल | ||
* बायोरूबी | * बायोरूबी |
Revision as of 12:15, 1 November 2023
बायोपाइथन प्रोजेक्ट कम्प्यूटेशनल बायोलॉजी और बायोइन्फरमेटिक्स के लिए अव्यावसायिक पायथन (प्रोग्रामिंग लैंग्वेज) टूल का ओपन सोर्स सॉफ्टवेयर कलेक्शन है, जिसे डेवलपर्स के अंतरराष्ट्रीय संघ द्वारा बनाया गया है।[1][2][3] इसमें बायोलॉजिकल सीक्वेंसेस और सीक्वेंस एनोटेशन का प्रतिनिधित्व करने वाली क्लासेज सम्मिलित होती हैं, और यह विभिन्न फ़ाइल फॉर्मैट्स को राइट और रीड करने में सक्षम होती है। यह एनसीबीआई जैसे ऑनलाइन बायोलॉजिकल डेटाबेस एक्सेस्सिंग के प्रोग्रामेटिक माध्यमों की भी अनुमति देता है। भिन्न-भिन्न मॉड्यूल बायोपाइथन की क्षमताओं को सीक्वेंस एलाइनमेंट, प्रोटीन स्ट्रक्चर, पापुलेशन जेनेटिक्स, फाइलोजेनेटिक्स, सीक्वेंस मोटिफ्स और मशीन लर्निंग तक विस्तारित करते हैं। बायोपाइथन कम्प्यूटेशनल जीवविज्ञान में डुप्लिकेट कोड को रिड्यूस करने के लिए निर्मित किये गए कई बायो प्रोजेक्ट्स में से एक है।[4]
इतिहास
बायोपाइथन का विकास 1999 में प्रारम्भ हुआ और इसे प्रथम बार जुलाई 2000 में प्रस्तावित किया गया था।[5] इसे समान समय सीमा के अंतर्गत और अन्य परियोजनाओं के समान लक्ष्यों के साथ विकसित किया गया था, जिसमें बायोपर्ल, बायोरूबी और बायोजावा सहित उनकी संबंधित प्रोग्रामिंग भाषाओं में जैव सूचना विज्ञान क्षमताओं को युग्मित किया गया था। परियोजना के प्रारंभिक डेवलपर्स में जेफ चांग, एंड्रयू डेल्के और ब्रैड चैपमैन सम्मिलित थे, चूँकि अब तक 100 से अधिक लोगों ने योगदान दिया है।[6] 2007 में, समान पायथन (प्रोग्रामिंग लैंग्वेज) परियोजना, जिसका नाम पायकोजेंट था, स्थापित की गई थी।[7] बायोपाइथन के प्रारंभिक समय में जैविक सीक्वेंस फ़ाइलों तक पहुंच, अनुक्रमण और प्रसंस्करण सम्मिलित था। चूँकि यह अभी भी प्रमुख फोकस है, पश्चात् के वर्षों में जोड़े गए मॉड्यूल ने जीवविज्ञान के अतिरिक्त क्षेत्रों को कवर करने के लिए इसकी कार्यक्षमता बढ़ा दी है (मुख्य विशेषताएं और उदाहरण देखें)।
संस्करण 1.77 के अनुसार, बायोपाइथन अब पायथन 2 का समर्थन नहीं करता है।[8]
डिज़ाइन
जहां भी संभव हो, बायोपीथॉन पायथन से परिचित उपयोगकर्ताओं के लिए इसे सरल बनाने के लिए पायथन प्रोग्रामिंग लैंग्वेज द्वारा उपयोग की जाने वाली परंपराओं का पालन करता है। उदाहरण के लिए, Seq
और SeqRecord
वस्तुओं को ऐरे स्लाइसिंग 1991: पायथन के माध्यम से परिवर्तित किया जा सकता है, पायथन की स्ट्रिंग्स और सूचियों के समान ही। इसे कार्यात्मक रूप से अन्य बायो परियोजनाओं, जैसे कि बायोपर्ल, के समान डिज़ाइन किया गया है।[5]
बायोपाइथन अपने प्रत्येक कार्यात्मक क्षेत्र के लिए सामान्य फ़ाइल स्वरूपों को पढ़ने और लिखने में सक्षम है, और इसका लाइसेंस अधिकांश अन्य सॉफ़्टवेयर लाइसेंसों के साथ अनुमेय और संगत है, जो बायोपाइथन को विभिन्न सॉफ़्टवेयर परियोजनाओं में उपयोग करने की अनुमति प्रदान करता है।[3]
मुख्य विशेषताएं और उदाहरण
सीक्वेंस
बायोपाइथन में मुख्य अवधारणा जैविक सीक्वेंस होते है, और इसे इसके Seq
सेल द्वारा प्रदर्शित किया गया है ।[9] बायोपिथॉन Seq
ऑब्जेक्ट कई विषयों में पायथन स्ट्रिंग के समान है: यह पायथन स्लाइस नोटेशन का समर्थन करता है, इसे अन्य अनुक्रमों के साथ युग्मित किया जा सकता है, और यह अपरिवर्तनीय होता है। इसके अतिरिक्त, इसमें सीक्वेंस-विशिष्ट विधियाँ सम्मिलित हैं और प्रयुक्त विशेष जैविक वर्णमाला को निर्दिष्ट किया गया है।
>>> # This script creates a DNA sequence and performs some typical manipulations
>>> from Bio.Seq import Seq
>>> dna_sequence = Seq("AGGCTTCTCGTA", IUPAC.unambiguous_dna)
>>> dna_sequence
Seq('AGGCTTCTCGTA', IUPACUnambiguousDNA())
>>> dna_sequence[2:7]
Seq('GCTTC', IUPACUnambiguousDNA())
>>> dna_sequence.reverse_complement()
Seq('TACGAGAAGCCT', IUPACUnambiguousDNA())
>>> rna_sequence = dna_sequence.transcribe()
>>> rna_sequence
Seq('AGGCUUCUCGUA', IUPACUnambiguousRNA())
>>> rna_sequence.translate()
Seq('RLLV', IUPACProtein())
सीक्वेंस एनोटेशन
SeqRecord
वर्ग SeqFeature
ऑब्जेक्ट के रूप में नाम, विवरण और सुविधाओं जैसी जानकारी के साथ-साथ अनुक्रमों का वर्णन करता है। प्रत्येक SeqFeature
ऑब्जेक्ट सुविधा के प्रकार और उसके स्थान को निर्दिष्ट करता है। फ़ीचर प्रकार 'जीन', 'सीडीएस' (कोडिंग सीक्वेंस), 'रिपीट_रीजन', 'मोबाइल_एलिमेंट' या अन्य हो सकते हैं, और सीक्वेंस में सुविधाओं की स्थिति त्रुटिहीन या अनुमानित हो सकती है।
>>> # This script loads an annotated sequence from file and views some of its contents.
>>> from Bio import SeqIO
>>> seq_record = SeqIO.read("pTC2.gb", "genbank")
>>> seq_record.name
'NC_019375'
>>> seq_record.description
'Providencia stuartii plasmid pTC2, complete sequence.'
>>> seq_record.features[14]
SeqFeature(FeatureLocation(ExactPosition(4516), ExactPosition(5336), strand=1), type='mobile_element')
>>> seq_record.seq
Seq("GGATTGAATATAACCGACGTGACTGTTACATTTAGGTGGCTAAACCCGTCAAGC...GCC", IUPACAmbiguousDNA())
इनपुट और आउटपुट
बायोपाइथन फास्ता प्रारूप, फास्टक्यू प्रारूप, जेनबैंक, क्लस्टल, फ़िलिप और नेक्सस फ़ाइल सहित कई सामान्य सीक्वेंस प्रारूपों को पढ़ और लिख सकता है। फ़ाइलें पढ़ते समय, फ़ाइल में वर्णनात्मक जानकारी का उपयोग बायोपाइथन कक्षाओं के सदस्यों को भरने के लिए किया जाता है, जैसे SeqRecord
. यह फ़ाइल प्रारूप के रिकॉर्ड को दूसरे फ़ाइल प्रारूप में परिवर्तित करने की अनुमति देता है।
अत्यधिक सीक्वेंस फ़ाइलें कंप्यूटर के मेमोरी संसाधनों से अधिक हो सकती हैं, इसलिए बायोपीथॉन बड़ी फ़ाइलों में रिकॉर्ड तक पहुंचने के लिए विभिन्न विकल्प प्रदान करता है। उन्हें पूर्ण रूप से पायथन डेटा संरचनाओं में मेमोरी में लोड किया जा सकता है, जैसे कि सूचियां या सहयोगी सरणी, जो मेमोरी उपयोग पर तीव्र से पहुंच प्रदान करते हैं। वैकल्पिक रूप से, फ़ाइलों को धीमे प्रदर्शन किन्तु निम्न मेमोरी आवश्यकताओं के साथ आवश्यकतानुसार डिस्क से पढ़ा जा सकता है।
>>> # This script loads a file containing multiple sequences and saves each one in a different format.
>>> from Bio import SeqIO
>>> genomes = SeqIO.parse("salmonella.gb", "genbank")
>>> for genome in genomes:
... SeqIO.write(genome, genome.id + ".fasta", "fasta")
ऑनलाइन डेटाबेस एक्सेस्सिंग
Bio.Entrez मॉड्यूल के माध्यम से, बायोपिथॉन के उपयोगकर्ता एनसीबीआई डेटाबेस से जैविक डेटा डाउनलोड कर सकते हैं। एंट्रेज़ सर्च इंजन द्वारा प्रदान किया गया प्रत्येक फ़ंक्शन इस मॉड्यूल में फ़ंक्शन के माध्यम से उपलब्ध है, जिसमें रिकॉर्ड परीक्षण और डाउनलोड करना सम्मिलित है।
>>> # This script downloads genomes from the NCBI Nucleotide database and saves them in a FASTA file.
>>> from Bio import Entrez
>>> from Bio import SeqIO
>>> output_file = open("all_records.fasta", "w")
>>> Entrez.email = "my_email@example.com"
>>> records_to_download = ["FO834906.1", "FO203501.1"]
>>> for record_id in records_to_download:
... handle = Entrez.efetch(db="nucleotide", id=record_id, rettype="gb")
... seqRecord = SeqIO.read(handle, format="gb")
... handle.close()
... output_file.write(seqRecord.format("fasta"))
फाइलोजेनी
बायो.फाइलो मॉड्यूल फ़ाइलोजेनेटिक ट्री के साथ कार्य करने और उनकी कल्पना करने के लिए उपकरण प्रदान करता है। पढ़ने और लिखने के लिए विभिन्न प्रकार के फ़ाइल प्रारूप समर्थित हैं, जिनमें न्यूविक प्रारूप, नेक्सस फ़ाइल और फ़ाइलो्सएमएल सम्मिलित हैं। सामान्य ट्री और ट्रैवर्सल का समर्थन किया जाता है, Tree
और Clade
वस्तुएं उदाहरणों में ट्री फ़ाइलों को परिवर्तित करना और त्रित करना, ट्री से सबसेट निकालना, ट्री के आधार के अनुसार परिवर्तित करना और लंबाई या स्कोर जैसी शाखा सुविधाओं का विश्लेषण करना सम्मिलित है।[11]
आधार वाले ट्री को एएससीआईआई कला में या मातपलोटलिब का उपयोग करके निर्मित किया जा सकता है (चित्र 1 देखें), और ग्राफ़विज़ लाइब्रेरी का उपयोग बिना आधार वाले लेआउट बनाने के लिए किया जा सकता है (चित्र 2 देखें)।
जीनोम आरेख
जीनोम आरेख मॉड्यूल बायोपिथॉन के अंदर अनुक्रमों को देखने के उपाय प्रदान करता है।[13] अनुक्रमों को रैखिक या गोलाकार रूप में खींचा जा सकता है (चित्र 3 देखें), और कई आउटपुट प्रारूप समर्थित हैं, जिनमें पोर्टेबल प्रपत्र प्रारूप और पोर्टेबल नेटवर्क ग्राफ़िक्स सम्मिलित हैं। ट्रैक निर्मित करके और पुनः उन ट्रैक में सीक्वेंस सुविधाएँ जोड़कर आरेख बनाए जाते हैं। सीक्वेंस की विशेषताओं पर लूपिंग करके और उनकी विशेषताओं का उपयोग करके यह तय करना कि क्या और कैसे उन्हें आरेख के ट्रैक में जोड़ा जाता है, कोई अंतिम आरेख की उपस्थिति पर अधिक निप्रणालीण रख सकता है। विभिन्न ट्रैकों के मध्य क्रॉस-लिंक खींचे जा सकते हैं, जिससे ही आरेख में कई अनुक्रमों की तुलना की जा सकती है।
मैक्रोमोलेक्यूलर स्ट्रक्चर
Bio.PDB मॉड्यूल प्रोटीन डेटा बैंक (फ़ाइल प्रारूप) और क्रिस्टलोग्राफ़िक सूचना फ़ाइल फ़ाइलों से आणविक संरचनाओं को लोड कर सकता है, और 2003 में बायोपाइथन में जोड़ा गया था।[14] Structure
ऑब्जेक्ट इस मॉड्यूल के केंद्र में है, और यह पदानुक्रमित फैशन में मैक्रोमोलेक्यूलर संरचना का आयोजन करता है: Structure
ऑब्जेक्ट्स में Model
ऑब्जेक्ट्स होते हैं जिनमें Chain
ऑब्जेक्ट्स होते हैं जिनमें Residue
ऑब्जेक्ट्स होते हैं जिनमें Atom
ऑब्जेक्ट्स होते हैं। अव्यवस्थित अवशेषों और परमाणुओं को अपने स्वयं के वर्ग, जाती हैं, DisorderedResidue
और DisorderedAtom
, युग्मित होते हैं, जो उनकी अनिश्चित स्थिति का वर्णन करते हैं।
Bio.PDB का उपयोग करके, कोई व्यक्ति मैक्रोमोलेक्यूलर संरचना फ़ाइल के व्यक्तिगत घटकों के माध्यम से नेविगेट कर सकता है, जैसे कि प्रोटीन में प्रत्येक परमाणु का परीक्षण करना आदि। सामान्य विश्लेषण किए जा सकते हैं, जैसे दूरियां या कोण मापना, अवशेषों की तुलना करना और अवशेषों की गहराई की गणना करना आदि।
पापुलेशन जेनेटिक्स
Bio.PopGen मॉड्यूल जनसंख्या जीन्स के सांख्यिकीय विश्लेषण के लिए सॉफ्टवेयर पैकेज, जीनपॉप के लिए बायोपिथॉन को समर्थन युग्मित करता है।[15] यह हार्डी-वेनबर्ग संतुलन, लिंकेज असंतुलन और जनसंख्या की एलील आवृत्ति की अन्य विशेषताओं के विश्लेषण की अनुमति प्रदान करता है।
यह मॉड्यूल फास्टसिमकोल2 प्रोग्राम के साथ सहसंयोजक सिद्धांत का उपयोग करके जनसंख्या आनुवंशिक सिमुलेशन भी कर सकता है।[16]
कमांड लाइन टूल्स के लिए रेप्पर्स
बायोपाइथन के कई मॉड्यूल में सामान्यतः उपयोग किए जाने वाले टूल्स के लिए कमांड लाइन रैपर होते हैं, जिससे इन टूल्स को बायोपाइथन के अंदर से उपयोग करने की अनुमति प्राप्त होती है। इन रैपरों में ब्लास्ट, क्लस्टल, फैमल, ईएमबॉस और सैमटूल्स सम्मिलित हैं। यूजर किसी अन्य कमांड लाइन टूल के लिए सपोर्ट ऐड करने के लिए जेनेरिक रैपर क्लास को सबक्लास कर सकते हैं।
यह भी देखें
- बायोपर्ल
- बायोरूबी
- बायोजेएस
- बायोजावा
संदर्भ
- ↑ Chapman, Brad; Chang, Jeff (August 2000). "Biopython: Python tools for computational biology". ACM SIGBIO Newsletter. 20 (2): 15–19. doi:10.1145/360262.360268. S2CID 9417766.
- ↑ Cock, Peter JA; Antao, Tiago; Chang, Jeffery T; Chapman, Brad A; Cox, Cymon J; Dalke, Andrew; Friedberg, Iddo; Hamelryck, Thomas; Kauff, Frank; Wilczynski, Bartek; de Hoon, Michiel JL (20 March 2009). "Biopython: freely available Python tools for computational molecular biology and bioinformatics". Bioinformatics. 25 (11): 1422–3. doi:10.1093/bioinformatics/btp163. PMC 2682512. PMID 19304878.
- ↑ 3.0 3.1 Refer to the Biopython website for other papers describing Biopython, and a list of over one hundred publications using/citing Biopython.
- ↑ Mangalam, Harry (September 2002). "The Bio* toolkits—a brief overview". Briefings in Bioinformatics. 3 (3): 296–302. doi:10.1093/bib/3.3.296. PMID 12230038.
- ↑ 5.0 5.1 Chapman, Brad (11 March 2004), The Biopython Project: Philosophy, functionality and facts (PDF), retrieved 11 September 2014
- ↑ List of Biopython contributors, archived from the original on 11 September 2014, retrieved 11 September 2014
- ↑ Knight, R; Maxwell, P; Birmingham, A; Carnes, J; Caporaso, J. G.; Easton, B. C.; Eaton, M; Hamady, M; Lindsay, H; Liu, Z; Lozupone, C; McDonald, D; Robeson, M; Sammut, R; Smit, S; Wakefield, M. J.; Widmann, J; Wikman, S; Wilson, S; Ying, H; Huttley, G. A. (2007). "Py Cogent: A toolkit for making sense from sequence". Genome Biology. 8 (8): R171. doi:10.1186/gb-2007-8-8-r171. PMC 2375001. PMID 17708774.
- ↑ Daley, Chris, Biopython 1.77 released, retrieved 6 October 2021
- ↑ Chang, Jeff; Chapman, Brad; Friedberg, Iddo; Hamelryck, Thomas; de Hoon, Michiel; Cock, Peter; Antao, Tiago; Talevich, Eric; Wilczynski, Bartek (29 May 2014), Biopython Tutorial and Cookbook, retrieved 28 August 2014
- ↑ Zmasek, Christian M; Zhang, Qing; Ye, Yuzhen; Godzik, Adam (24 October 2007). "पैतृक एपोप्टोसिस नेटवर्क की आश्चर्यजनक जटिलता". Genome Biology. 8 (10): R226. doi:10.1186/gb-2007-8-10-r226. PMC 2246300. PMID 17958905. Archived from the original on 10 October 2014. Retrieved 9 September 2014.
- ↑ Talevich, Eric; Invergo, Brandon M; Cock, Peter JA; Chapman, Brad A (21 August 2012). "Bio.Phylo: A unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython". BMC Bioinformatics. 13 (209): 209. doi:10.1186/1471-2105-13-209. PMC 3468381. PMID 22909249.
- ↑ "क्लेबसिएला निमोनिया स्ट्रेन KPS77 प्लास्मिड pKPS77, पूर्ण अनुक्रम". NCBI. Retrieved 10 September 2014.
- ↑ Pritchard, Leighton; White, Jennifer A; Birch, Paul RJ; Toth, Ian K (March 2006). "GenomeDiagram: a python package for the visualization of large-scale genomic data". Bioinformatics. 22 (5): 616–617. doi:10.1093/bioinformatics/btk021. PMID 16377612.
- ↑ Hamelryck, Thomas; Manderick, Bernard (10 May 2003). "पीडीबी फ़ाइल पार्सर और संरचना वर्ग को पायथन में लागू किया गया". Bioinformatics. 19 (17): 2308–2310. doi:10.1093/bioinformatics/btg299. PMID 14630660.
- ↑ Rousset, François (January 2008). "GENEPOP'007: a complete re-implementation of the GENEPOP software for Windows and Linux". Molecular Ecology Resources. 8 (1): 103–106. doi:10.1111/j.1471-8286.2007.01931.x. PMID 21585727. S2CID 25776992.
- ↑ Excoffier, Laurent; Foll, Matthieu (1 March 2011). "fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios". Bioinformatics. 27 (9): 1332–1334. doi:10.1093/bioinformatics/btr124. PMID 21398675.