बायोपाइथन

बायोपाइथन प्रोजेक्ट कम्प्यूटेशनल बायोलॉजी और बायोइन्फरमेटिक्स के लिए अव्यावसायिक पायथन (प्रोग्रामिंग लैंग्वेज) टूल का ओपन सोर्स सॉफ्टवेयर कलेक्शन है, जिसे डेवलपर्स के अंतरराष्ट्रीय संघ द्वारा बनाया गया है।  इसमें बायोलॉजिकल सीक्वेंसेस और सीक्वेंस एनोटेशन का प्रतिनिधित्व करने वाली क्लासेज सम्मिलित होती हैं, और यह विभिन्न फ़ाइल फॉर्मैट्स को राइट और रीड करने में सक्षम होती है। यह एनसीबीआई जैसे ऑनलाइन बायोलॉजिकल डेटाबेस एक्सेस्सिंग के प्रोग्रामेटिक माध्यमों की भी अनुमति देता है। भिन्न-भिन्न मॉड्यूल बायोपाइथन की क्षमताओं को सीक्वेंस एलाइनमेंट, प्रोटीन स्ट्रक्चर, पापुलेशन जेनेटिक्स, फाइलोजेनेटिक्स, सीक्वेंस मोटिफ्स और मशीन लर्निंग तक विस्तारित करते हैं। बायोपाइथन कम्प्यूटेशनल जीवविज्ञान में डुप्लिकेट कोड को रिड्यूस करने के लिए निर्मित किये गए कई बायो प्रोजेक्ट्स में से एक है।

इतिहास
बायोपाइथन का विकास 1999 में प्रारम्भ हुआ और इसे प्रथम बार जुलाई 2000 में प्रस्तावित किया गया था। इसे समान समय सीमा के अंतर्गत और अन्य परियोजनाओं के समान लक्ष्यों के साथ विकसित किया गया था, जिसमें बायोपर्ल, बायोरूबी और बायोजावा सहित उनकी संबंधित प्रोग्रामिंग भाषाओं में जैव सूचना विज्ञान क्षमताओं को युग्मित किया गया था। परियोजना के प्रारंभिक डेवलपर्स में जेफ चांग, ​​एंड्रयू डेल्के और ब्रैड चैपमैन सम्मिलित थे, चूँकि अब तक 100 से अधिक लोगों ने योगदान दिया है। 2007 में, समान पायथन (प्रोग्रामिंग लैंग्वेज) परियोजना, जिसका नाम पायकोजेंट था, स्थापित की गई थी। बायोपाइथन के प्रारंभिक समय में जैविक सीक्वेंस फ़ाइलों तक पहुंच, अनुक्रमण और प्रसंस्करण सम्मिलित था। चूँकि यह अभी भी प्रमुख फोकस है, पश्चात् के वर्षों में जोड़े गए मॉड्यूल ने जीवविज्ञान के अतिरिक्त क्षेत्रों को कवर करने के लिए इसकी कार्यक्षमता बढ़ा दी है (मुख्य विशेषताएं और उदाहरण देखें)।

संस्करण 1.77 के अनुसार, बायोपाइथन अब पायथन 2 का समर्थन नहीं करता है।

डिज़ाइन
जहां भी संभव हो, बायोपीथॉन पायथन से परिचित उपयोगकर्ताओं के लिए इसे सरल बनाने के लिए पायथन प्रोग्रामिंग लैंग्वेज द्वारा उपयोग की जाने वाली परंपराओं का पालन करता है। उदाहरण के लिए,  और   वस्तुओं को ऐरे स्लाइसिंग 1991: पायथन के माध्यम से परिवर्तित किया जा सकता है, पायथन की स्ट्रिंग्स और सूचियों के समान ही। इसे कार्यात्मक रूप से अन्य बायो परियोजनाओं, जैसे कि बायोपर्ल, के समान डिज़ाइन किया गया है।

बायोपाइथन अपने प्रत्येक कार्यात्मक क्षेत्र के लिए सामान्य फ़ाइल स्वरूपों को पढ़ने और लिखने में सक्षम है, और इसका लाइसेंस अधिकांश अन्य सॉफ़्टवेयर लाइसेंसों के साथ अनुमेय और संगत है, जो बायोपाइथन को विभिन्न सॉफ़्टवेयर परियोजनाओं में उपयोग करने की अनुमति प्रदान करता है।

सीक्वेंस
बायोपाइथन में मुख्य अवधारणा जैविक सीक्वेंस होते है, और इसे इसके   सेल द्वारा प्रदर्शित किया गया है । बायोपिथॉन   ऑब्जेक्ट कई विषयों में पायथन स्ट्रिंग के समान है: यह पायथन स्लाइस नोटेशन का समर्थन करता है, इसे अन्य अनुक्रमों के साथ युग्मित किया जा सकता है, और यह अपरिवर्तनीय होता है। इसके अतिरिक्त, इसमें सीक्वेंस-विशिष्ट विधियाँ सम्मिलित हैं और प्रयुक्त विशेष जैविक वर्णमाला को निर्दिष्ट किया गया है।

सीक्वेंस एनोटेशन
वर्ग  ऑब्जेक्ट के रूप में नाम, विवरण और सुविधाओं जैसी जानकारी के साथ-साथ अनुक्रमों का वर्णन करता है। प्रत्येक   ऑब्जेक्ट सुविधा के प्रकार और उसके स्थान को निर्दिष्ट करता है। फ़ीचर प्रकार 'जीन', 'सीडीएस' (कोडिंग सीक्वेंस), 'रिपीट_रीजन', 'मोबाइल_एलिमेंट' या अन्य हो सकते हैं, और सीक्वेंस में सुविधाओं की स्थिति त्रुटिहीन या अनुमानित हो सकती है।

इनपुट और आउटपुट

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

अत्यधिक सीक्वेंस फ़ाइलें कंप्यूटर के मेमोरी संसाधनों से अधिक हो सकती हैं, इसलिए बायोपीथॉन बड़ी फ़ाइलों में रिकॉर्ड तक पहुंचने के लिए विभिन्न विकल्प प्रदान करता है। उन्हें पूर्ण रूप से पायथन डेटा संरचनाओं में मेमोरी में लोड किया जा सकता है, जैसे कि सूचियां या सहयोगी सरणी, जो मेमोरी उपयोग पर तीव्र से पहुंच प्रदान करते हैं। वैकल्पिक रूप से, फ़ाइलों को धीमे प्रदर्शन किन्तु निम्न मेमोरी आवश्यकताओं के साथ आवश्यकतानुसार डिस्क से पढ़ा जा सकता है।

ऑनलाइन डेटाबेस एक्सेस्सिंग

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

फाइलोजेनी

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

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

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

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

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

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

कमांड लाइन टूल्स के लिए रेप्पर्स

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

यह भी देखें

 * बायोपर्ल
 * बायोरूबी
 * बायोजेएस
 * बायोजावा

बाहरी संबंध

 * Biopython Tutorial and Cookbook (PDF)
 * Biopython source code on GitHub
 * Biopython source code on GitHub