बायोपाइथन: Difference between revisions

From Vigyanwiki
No edit summary
Line 196: Line 196:
[[Category: Machine Translated Page]]
[[Category: Machine Translated Page]]
[[Category:Created On 10/07/2023]]
[[Category:Created On 10/07/2023]]
[[Category:Vigyan Ready]]

Revision as of 12:22, 14 August 2023

Biopython
Original author(s)Chapman B, Chang J[1]
Initial releaseDecember 17, 2002; 22 years ago (2002-12-17)
Stable release
Script error: The module returned a nil value. It is supposed to return an export table.
RepositoryScript error: The module returned a nil value. It is supposed to return an export table.
Written inPython and C
PlatformCross-platform
TypeBioinformatics
LicenseBiopython License
Websitebiopython.org

बायोपाइथॉन परियोजना ओपन स्रोत सॉफ्टवेयर है | निम्न्प्यूटेशनल बायोलॉजी विज्ञान और जैव सूचना विज्ञान के लिए गैर-व्यावसायिक पायथन (प्रोग्रामिंग भाषा) उपकरण का ओपन-सोर्स संग्रह, डेवलपर्स के अंतरराष्ट्रीय संघ द्वारा बनाया गया है।[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"))

फाइलोजेनी

चित्र 1: बायो.फ़ाइलो द्वारा बनाया गया आधारयुक्त फ़ाइलोजेनेटिक ट्री जो विभिन्न जीवों के एपाफ़-1 होमोलॉग के मध्य संबंध दर्शाता है[10]
चित्र 2: ऊपर जैसा ही ट्री, बायो.फ़ाइलो के माध्यम से ग्राफ़विज़ का उपयोग करके बिना आधार के खींचा गया

बायो.फाइलो मॉड्यूल फ़ाइलोजेनेटिक ट्री के साथ कार्य करने और उनकी कल्पना करने के लिए उपकरण प्रदान करता है। पढ़ने और लिखने के लिए विभिन्न प्रकार के फ़ाइल प्रारूप समर्थित हैं, जिनमें न्यूविक प्रारूप, नेक्सस फ़ाइल और फ़ाइलो्सएमएल सम्मिलित हैं। सामान्य ट्री और ट्रैवर्सल का समर्थन किया जाता है, Tree और Clade वस्तुएं उदाहरणों में ट्री फ़ाइलों को परिवर्तित करना और त्रित करना, ट्री से सबसेट निकालना, ट्री के आधार के अनुसार परिवर्तित करना और लंबाई या स्कोर जैसी शाखा सुविधाओं का विश्लेषण करना सम्मिलित है।[11]

आधार वाले ट्री को एएससीआईआई कला में या मातपलोटलिब का उपयोग करके निर्मित किया जा सकता है (चित्र 1 देखें), और ग्राफ़विज़ लाइब्रेरी का उपयोग बिना आधार वाले लेआउट बनाने के लिए किया जा सकता है (चित्र 2 देखें)।

जीनोम आरेख

चित्र 3: pKPS77 प्लास्मिड पर जीन का आरेख,[12] बायोपाइथॉन में जेनोमडायग्राम मॉड्यूल का उपयोग करके कल्पना की गई

जीनोम आरेख मॉड्यूल बायोपिथॉन के अंदर अनुक्रमों को देखने के उपाय प्रदान करता है।[13] अनुक्रमों को रैखिक या गोलाकार रूप में खींचा जा सकता है (चित्र 3 देखें), और कई आउटपुट प्रारूप समर्थित हैं, जिनमें पोर्टेबल प्रपत्र प्रारूप और पोर्टेबल नेटवर्क ग्राफ़िक्स सम्मिलित हैं। ट्रैक निर्मित करके और पुनः उन ट्रैक में अनुक्रम सुविधाएँ जोड़कर आरेख बनाए जाते हैं। अनुक्रम की विशेषताओं पर लूपिंग करके और उनकी विशेषताओं का उपयोग करके यह तय करना कि क्या और कैसे उन्हें आरेख के ट्रैक में जोड़ा जाता है, कोई अंतिम आरेख की उपस्थिति पर अधिक निप्रणालीण रख सकता है। विभिन्न ट्रैकों के मध्य क्रॉस-लिंक खींचे जा सकते हैं, जिससे ही आरेख में कई अनुक्रमों की तुलना की जा सकती है।

मैक्रोमोलेक्यूलर संरचना

Bio.PDB मॉड्यूल प्रोटीन डेटा बैंक (फ़ाइल प्रारूप) और क्रिस्टलोग्राफ़िक सूचना फ़ाइल फ़ाइलों से आणविक संरचनाओं को लोड कर सकता है, और 2003 में बायोपाइथॉन में जोड़ा गया था।[14] Structure ऑब्जेक्ट इस मॉड्यूल के केंद्र में है, और यह पदानुक्रमित फैशन में मैक्रोमोलेक्यूलर संरचना का आयोजन करता है: Structure ऑब्जेक्ट्स में Model ऑब्जेक्ट्स होते हैं जिनमें Chain ऑब्जेक्ट्स होते हैं जिनमें Residueऑब्जेक्ट्स होते हैं जिनमें Atom ऑब्जेक्ट्स होते हैं। अव्यवस्थित अवशेषों और परमाणुओं को अपने स्वयं के वर्ग, जाती हैं, DisorderedResidue और DisorderedAtom, युग्मित होते हैं, जो उनकी अनिश्चित स्थिति का वर्णन करते हैं।

Bio.PDB का उपयोग करके, कोई व्यक्ति मैक्रोमोलेक्यूलर संरचना फ़ाइल के व्यक्तिगत घटकों के माध्यम से नेविगेट कर सकता है, जैसे कि प्रोटीन में प्रत्येक परमाणु का परीक्षण करना आदि। सामान्य विश्लेषण किए जा सकते हैं, जैसे दूरियां या कोण मापना, अवशेषों की तुलना करना और अवशेषों की गहराई की गणना करना आदि।

जनसंख्या जीन्स

Bio.PopGen मॉड्यूल जनसंख्या जीन्स के सांख्यिकीय विश्लेषण के लिए सॉफ्टवेयर पैकेज, जीनपॉप के लिए बायोपिथॉन को समर्थन युग्मित करता है।[15] यह हार्डी-वेनबर्ग संतुलन, लिंकेज असंतुलन और जनसंख्या की एलील आवृत्ति की अन्य विशेषताओं के विश्लेषण की अनुमति प्रदान करता है।

यह मॉड्यूल फास्टसिमकोल2 प्रोग्राम के साथ सहसंयोजक सिद्धांत का उपयोग करके जनसंख्या आनुवंशिक सिमुलेशन भी कर सकता है।[16]

निम्नांड लाइन उपकरण के लिए रैपर

बायोपाइथन के कई मॉड्यूल में सामान्यतः उपयोग किए जाने वाले उपकरणों के लिए कमांड लाइन रैपर होते हैं, जिससे इन उपकरणों को बायोपाइथॉन के अंदर से उपयोग करने की अनुमति प्राप्त होती है। इन रैपरों में ब्लास्ट, क्लस्टल, फैमल, ईएमबॉस और सैमटूल्स सम्मिलित हैं। उपयोगकर्ता किसी अन्य कमांड लाइन उपकरण के लिए समर्थन जोड़ने के लिए जेनेरिक रैपर क्लास को उपवर्गित कर सकते हैं।

यह भी देखें

जैव सूचना विज्ञान फाउंडेशन विवृत

संदर्भ

  1. 1.0 1.1 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.
  2. 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. 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.
  4. 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. 5.0 5.1 Chapman, Brad (11 March 2004), The Biopython Project: Philosophy, functionality and facts (PDF), retrieved 11 September 2014
  6. List of Biopython contributors, archived from the original on 11 September 2014, retrieved 11 September 2014
  7. 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.
  8. Daley, Chris, Biopython 1.77 released, retrieved 6 October 2021
  9. 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
  10. 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.
  11. 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.
  12. "क्लेबसिएला निमोनिया स्ट्रेन KPS77 प्लास्मिड pKPS77, पूर्ण अनुक्रम". NCBI. Retrieved 10 September 2014.
  13. 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.
  14. Hamelryck, Thomas; Manderick, Bernard (10 May 2003). "पीडीबी फ़ाइल पार्सर और संरचना वर्ग को पायथन में लागू किया गया". Bioinformatics. 19 (17): 2308–2310. doi:10.1093/bioinformatics/btg299. PMID 14630660.
  15. 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.
  16. 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.


बाहरी संबंध