Biopython

Biopython նախագիծը հաշվարկային կենսաբանության և կենսաինֆորմատիկայի ոչ առևտրային նպատակով Python գործիքների բաց կոդով շարք է, որը ստեղծվել է մշակողների միջազգային ասոցիացիայի կողմից։ Այն պարունակում է կլասեր, որոնք ներկայացնում են կենսաբանական հաջորդականությունները և հաջորդականությունների ծանոթագրությունները, և ունակ է կարդալ և գրել տարբեր ֆայլի ձևաչափեր։ Այն նաև հնարավորություն է տալիս ծրագրային միջոցներով մուտք գործել կենսաբանական տեղեկատվության առցանց տվյալների շտեմարաններ, ինչպես օրինակ ՝ NCBI: Առանձին մոդուլները տարածում են Biopython- ի հնարավորությունները հաջորդականության դասավորության, սպիտակուցների կառուցվածքի, պոպուլյացիոն գենետիկայի, ֆիլոգենետիկայի, հաջորդականության մոտիվների և մեքենայական ուսուցման վրա։ Biopython- ը մի շարք Bio* նախագծերից մեկն է, որը նախատեսված է հաշվարկային կենսաբանության մեջ ծածկագրերի կրկնօրինակումը նվազեցնելու համար։


== Պատմություն ==
Biopython- ի զարգացումը սկսվել է 1999 թ. և այն առաջին անգամ թողարկվել է 2000 թ. հուլիսին։ Այն մշակվել է նույն ժամանակահատվածում և այլ նախագծերի միևնույն նպատակներով, որոնք կենսաինֆորմատիկային հնարավորություն են տվել ունենալ համապատասխան ծրագրավորման լեզուներ, ներառյալ BioPerl- ը, BioRuby- ն և BioJava- ն։ Նախագծի մշակողները ներառում էին Ջեֆ Չանգը, Էնդրյու Դալկեն և Բրեդ Չեփմանը, չնայած մինչ օրս ավելի քան 100 մարդ ներդրում է կատարել այս նախագծում։ 2007 թվականին ստեղծվեց նման Python նախագիծ, այն է ՝ PyCogent:
Biopython- ի սկզբնական տարբերակը ներառում էր կենսաբանական հաջորդականության ֆայլերի մուտք, ինդեքսավորում և մշակում։ Թեև սա դեռևս հիմնական ուշադրության կենտրոնում է, հաջորդ տարիների ընթացքում մոդուլների ավելացումն ընդլայնել է իր ֆունկցիոնալությունը `ընդգրկելով կենսաբանության լրացուցիչ ոլորտներ։
1.77 տարբերակի դրությամբ Biopython- ն այլևս չի աջակցում Python 2 -ին։


== Դիզայն ==
Հնարավորության դեպքում Biopython- ը հետևում է Python ծրագրավորման լեզվի կողմից օգտագործվող պայմանականություններին `Python- ին ծանոթ օգտվողների համար ավելի դյուրին դարձնելու համար։ Օրինակ ՝  Seq  և SeqRecord  օբյեկտները կարող են շահարկվել  slicing-ի միջոցով, ինչպես Python- ի  strings և lists: Այն նաև նախագծված է գործառականորեն նման Bio* այլ նախագծերին, օրինակ ՝ BioPerl- ին։
Biopython- ն ունակ է կարդալ և գրել ամենատարածված ֆայլի ձևաչափերն իր ֆունկցիոնալ ոլորտներից յուրաքանչյուրի համար, և դրա լիցենզիան թույլատրելի է և համատեղելի է ծրագրային ապահովման այլ լիցենզիաների հետ, ինչը թույլ է տալիս Biopython-ն օգտագործել տարբեր ծրագրային նախագծերում։


== Հիմնական առանձնահատկություններ և օրինակներ ==


=== Հաջորդականություն ===
Biopython- ի հիմնական հասկացությունը կենսաբանական հաջորդականությունն է, և դա ներկայացված է Seq կլասով։ Biopython Seq օբյեկտը շատ առումներով նման է Python- ի string-ին՝ այն աջակցում է Python slice նշումը, կարող է զուգակցվել այլ հաջորդականությունների հետ և անփոփոխ է։ Բացի այդ, այն ներառում է հաջորդականության համար հատուկ մեթոդներ և հստակեցնում  է օգտագործվող հատուկ կենսաբանական այբուբենը։


=== Հաջորդականության ծանոթագրություն ===
SeqRecord  կլասը նկարագրում է հաջորդականությունները ՝ տեղեկատվության հետ միասին, ինչպիսիք են անունը, նկարագրությունը և հատկանիշները ՝ SeqFeature  օբյեկտների տեսքով։ Յուրաքանչյուր SeqFeature օբյեկտ սահմանում է հատկության տեսակը և դրա գտնվելու վայրը։ Առանձնահատկությունների տեսակները կարող են լինել «գեն», «CDS» (կոդավորման հաջորդականություն), «կրկնվող_հատված», «բջջային_էլեմենտ» կամ այլ, իսկ հաջորդականության մեջ հատկանիշների դիրքը կարող է լինել ճշգրիտ կամ մոտավոր։


=== Մուտք և ելք ===
Biopython- ը կարող է կարդալ և գրել մի շարք սովորական հաջորդական ձևաչափերով, այդ թվում `FASTA, FASTQ, GenBank, Clustal, PHYLIP և NEXUS: Ֆայլեր կարդալիս ֆայլում նկարագրական տեղեկատվությունը օգտագործվում է Biopython կլասերի անդամներին համալրելու համար, օրինակ ՝ SeqRecord: Սա թույլ է տալիս մեկ ֆայլի ձևաչափի գրառումները փոխակերպել մյուսների։
Շատ մեծ հաջորդականությամբ ֆայլերը կարող են գերազանցել համակարգչի հիշողության ռեսուրսները, ուստի Biopython- ը մեծ գրառումներով ֆայլեր մուտք գործելու տարբեր տարբերակներ է տրամադրում։ Նրանք կարող են ամբողջությամբ բեռնվել հիշողության մեջ Python տվյալների կառուցվածքներում, օրինակ ՝ ցուցակներում կամ բառարաններում, ապահովելով արագ մուտք հիշողության օգտագործումով։ Այլապես, ֆայլերը կարող են կարդացվել սկավառակից, ըստ անհրաժեշտության, ավելի դանդաղ կատարմամբ, բայց հիշողության ցածր պահանջներով։


=== Առցանց տվյալների շտեմարանների մուտք ===
Bio.Entrez մոդուլի միջոցով Biopython- ի օգտվողները կարող են ներբեռնել կենսաբանական տվյալները NCBI տվյալների բազաներից։ Entrez որոնման համակարգի տրամադրած գործառույթներից յուրաքանչյուրը հասանելի է այս մոդուլի գործառույթների միջոցով, ներառյալ գրառումների որոնումը և ներբեռնումը։


=== Ֆիլոգենիա ===

Bio.Phylo մոդուլը տրամադրում է գործիքներ ֆիլոգենետիկ ծառերի հետ աշխատելու և դրանք տեսանելի դարձնելու համար։ Կարդալու և գրելու համար ապահովվում են տարբեր ֆայլի ձևաչափեր, այդ թվում ՝ Newick, NEXUS և phyloXML: Tree  և Clade  օբյեկտների միջոցով կատարվում են ծառերի սովորական մանիպուլյացիաները և անցումները։ Օրինակները ներառում են ծառերի ֆայլերի փոխակերպում և համադրում, ծառից ենթախմբերի դուրսբերում, ծառի արմատը փոխելը և ճյուղի առանձնահատկությունների վերլուծություն, ինչպիսիք են երկարությունը կամ միավորը։
Արմատացած ծառերը կարող են գծվել ASCII- ով կամ matplotlib- ի միջոցով (տես նկար 1), իսկ Graphviz գրադարանը կարող է օգտագործվել առանց արմատավորված դասավորություններ ստեղծելու համար (տես նկար 2)։


=== Գենոմային դիագրամներ ===

GenomeDiagram մոդուլն ապահովում է Biopython- ի շրջանակներում հաջորդականությունների տեսանելի մեթոդներ։ Հերթականությունները կարող են գծվել գծային կամ շրջանաձև տեսքով (տես նկար 3), ինչպես նաև բազմաթիվ ելքային ձևաչափեր են ապահովված, ներառյալ PDF և PNG: Դիագրամները ստեղծվում են ՝ հետքեր պատրաստելով, այնուհետև հաջորդական հատկանիշներ ավելացնելով այդ հետքերին։ Մեկը, շրջանակելով հաջորդականության առանձնահատկությունները և օգտագործելով դրանց հատկանիշները որոշելու համար, թե արդյոք դրանք ինչպես են ավելացվում գծապատկերի հետքերում, կարող է մեծ վերահսկողություն հաստատել վերջնական դիագրամի արտաքին տեսքի վրա։ Խաչաձև կապերը կարող են կազմվել տարբեր հետքերի միջև ՝ թույլ տալով մեկին համեմատել մի քանի հաջորդականություններ մեկ դիագրամում։


=== Մակրոմոլեկուլյար կառուցվածք ===
Bio.PDB մոդուլը կարող է բեռնել մոլեկուլային կառուցվածքներ PDB և mmCIF ֆայլերից և ավելացվել է Biopython- ին 2003 թվականին։ Կառուցվածքի օբյեկտը կենտրոնականն է այս մոդուլի համար և հիերարխիկ կերպով կազմակերպում է մակրոմոլեկուլային կառուցվածքը. Structure, որոնք պարունակում են Modelօբյեկտներ, որոնք էլ պարունակում են Chain  օբյեկտներ, սրանք էլ պաուրնակում են  Residue  օբյեկրներ և վերջինն էլ իր հերթին պաուրնակում է Atom օբյեկտներ։ Ոչ ճիշտ հաջորդականությամբ մնացորդներն ու ատոմները ստանում են իրենց կլասերը ՝ DisorderedResidue  և DisorderedAtom, որոնք նկարագրում են իրենց անորոշ դիրքերը։
Օգտագործելով Bio.PDB- ն ՝ մեկը կարող  է ղեկավարել մակրոմոլեկուլային կառուցվածքի ֆայլի առանձին բաղադրիչներ, օրինակ ՝ սպիտակուցի յուրաքանչյուր ատոմի հետազոտումը։ Հնարավոր են ընդհանուր վերլուծություններ, օրինակ ՝ հեռավորությունների կամ անկյունների չափում, մնացորդների համեմատություն և մնացորդների խորության հաշվարկ։


=== Պոպուլյացիոն գենետիկա ===
Bio.PopGen մոդուլն ավելացնում է Biopython- ի հնարավորւոթյունը Genepop- ի համար, որը ծրագրային փաթեթ է `պոպուլյացիոն գենետիկայի վիճակագրական վերլուծության համար։ Սա թույլ է տալիս վերլուծել Հարդի -Վայնբերգի հավասարակշռությունը, կապի անհավասարակշռությունը և պոպուլյացիոն ալելների ալելի շատ հաճախականությունների այլ առանձնահատկությունները։
Այս մոդուլը կարող է նաև իրականացնել պոպուլյացիայի գենետիկական սիմուլյացիա ՝ օգտագործելով fastsimcoal2 ծրագրի հետ համատեղվող տեսությունը։


== Տես նաև ==
BioPerl
BioRuby
BioJS
BioJava


== Ծանոթագրություններ ==


== Արտաքին հղումներ ==
http://biopython.org Biopython. պաշտոնական կայք
Biopython Tutorial and Cookbook (PDF)
Biopython source code on GitHub