Loading AI tools
מוויקיפדיה, האנציקלופדיה החופשית
פרויקט ביופייתון (באנגלית: Biopython) הוא אוסף של כלי פייתון לא מסחריים בקוד פתוח לביולוגיה חישובית וביואינפורמטיקה, שנוצר על ידי איגוד בינלאומי של מפתחים.[1][3][4] הוא מכיל מחלקות לייצוג רצפים ביולוגיים ואנוטציות רצף, והוא מסוגל לקרוא ולכתוב למגוון פורמטים של קבצים. דבר זה מאפשר גישה פרוגרמטית למאגרי מידע מקוונים של מידע ביולוגי, כמו המאגר ב-NCBI. בנוסף לכלים בביופייתון קיימים מודולים נפרדים אשר מרחיבים את הכלים ליישור רצפים, מבנה חלבונים, גנטיקה של אוכלוסייה, פילוגנטיקה, מוטיבים של רצף ולמידת מכונה. פרויקט הביופייתון הוא אחד מתוך מספר פרויקטים של *Bio אשר נועדו להפחית שכפול קוד בביולוגיה חישובית.[5]
מפתח | בראד צ'פמן, ג'ף צ'אנג[1] |
---|---|
מחזור חיים | 2000–הווה (כ־24 שנים) |
גרסה אחרונה | 1.74[2] (16 בספטמבר 2019) |
מערכת הפעלה | פלטפורמות רבות |
נכתבה בשפות | Python and C |
סוג רישיון | Biopython License |
קוד מקור | https://github.com/biopython/biopython |
קטגוריה | ביואינפורמטיקה |
biopython | |
פיתוח הביופיתון החל בשנת 1999 והוא שוחרר לראשונה ביולי 2000.[6] זמן הפיתוח של פרויקט זה וכן מטרותיו היו דומות ואף מקבילות לפרויקטים אחרים שמטרותיהם היו להוסיף יכולות של ביואינפורמטיקה לשפות תכנות, כמו BioPerl, BioRuby ו-BioJava. המפתחים הראשונים בפרויקט כללו את ג'ף צ'אנג, אנדרו דאלק ובראד צ'פמן, אם כי למעלה ממאה אנשים תרמו עד כה.[7] בשנת 2007 הוקם פרויקט פייתון דומה בשם PyCogent.[8]
ההיקף הראשוני של ביופיתון כלל גישה, אינדקס ועיבוד קובצי רצף ביולוגיים. אף על פי שיכולות אלה עדיין מוקד מרכזי בפרויקט, במהלך השנים פותחו מודולים נוספים אשר הרחיבו את הכלים ומאפשרים כיסוי גבוה יותר לתחומי ביולוגיה נוספים (ראו מאפייני מפתח ודוגמאות).
החל מגרסה 1.62, ביופייתון תומך בריצה בפייתון 3 ובפייתון 2.[9]
במידת האפשר, ביופייתון עוקב אחר המוסכמות בהן משתמשת שפת התכנות פייתון וזאת בשביל להקל על קהל המשתמשים המכירים את פייתון. לדוגמה, ניתן לטפל באובייקטים של Seq
ו-SeqRecord
באמצעות חיתוך (slicing), באופן הדומה למחרוזות ולרשימות של פייתון. הוא נועד להיות דומה באופן פונקציונלי לפרויקטים אחרים של *Bio, כגון BioPerl.[6]
לכל אחד מהכלים הפונקציוניליים של ביופייתון יש את היכולת לקרוא ולכתוב לקבצים בפורמטים הנפוצים ביותר. הרישיון של ביופייתון תואם לרוב רישיונות התוכנה האחרים, דבר המאפשר שימוש בו במגוון פרויקטים של תוכנה.[4]
מושג מרכזי בביופייתון הוא הרצף הביולוגי, וזה מיוצג על ידי מחלקה בשם Seq
.[10] אובייקט Seq
בביופייתון דומה למחרוזת בפייתון במובנים רבים: הוא תומך בסינטקס ה-slice של פייתון, ניתן לשרשר אותו לרצפים אחרים והוא אינו ניתן לשינוי (immutable). בנוסף, קיימות פונקציות ספציפיות לרצפים וכן ניתן לפרט את האלף-בית הביולוגי בו נעשה שימוש.
>>> # This script creates a DNA sequence and performs some typical manipulations
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> 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
מציין את סוג התכונה ואת מיקומה. סוגי תכונות יכולים להיות 'גן', 'CDS' (אזור מקודד), 'אזור חוזר', 'אלמנט נייד' וכו', ומיקום התכונות ברצף יכול להיות מדויק או משוער.
>>> # 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())
ביופייתון יכול לקרוא ולכתוב למספר פורמטים נפוצים של רצף, כולל פורמט FASTA, פורמט FASTQ, GenBank, Clustal, PHYLIP ו-NEXUS. בעת קריאת קבצים, מידע תיאורי בקובץ משמש להגרת משתנים במחלקות של ביופייתון, כגון 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 משתמשים של ביופייתון יכולים להוריד נתונים ביולוגיים ממאגרי NCBI. כל אחת מהפונקציות המסופקות על ידי מנוע החיפוש של 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'))
המודול Bio.Phylo מספק כלים לעבודה עם ויזואליזציה של עצים פילוגנטיים. קבצים במגוון פורמטים נתמכים לקריאה וכתיבה, כולל Newick, NEXUS ו-phyloXML. מניפולציות נפוצות של עצים וכן מעבר על העץ בשיטות שונות נתמכות דרך האובייקטים Tree
ו-Clade
. דוגמאות כוללות המרה ואיסוף קובצי עץ, חילוץ תתי קבוצות מעץ, שינוי שורש עץ וניתוח תכונות ענפים כגון אורך או ציון.[12]
ניתן לצייר עצים מושרשים ב-ASCII או להשתמש ב-matplotlib (ראו איור 1), וניתן להשתמש בספריית Graphviz ליצירת פריסות לא שורשיות (ראו איור 2).
מודול GenomeDiagram מספק שיטות להמחשת רצפים בתוך ביופייתון.[14] ניתן לצייר רצפים בצורה ליניארית או מעגלית (ראו איור 3), וכן נתמכים פורמטי פלט רבים, כגון PDF ו-PNG. הדיאגרמות נוצרות על ידי יצירת מסלולים ולאחר מכן הוספת מאפייני רצף למסלולים אלה. ניתן לשלוט על התצוגה של הדיארמה הסופית בעזרת לולאה שתרוץ על מאפייני הרצף, ושימוש בתכונות המאפיינים כדי להחליט אם וכיצד הם מתווספים למסלולי הדיאגרמה. ניתן לצייר קישורים צולבים בין מסלולים שונים, אשר מאפשרים השוואת רצפים מרובים בתרשים יחיד.
המודול Bio.PDB יכול לטעון מבנים מולקולריים מקבצי PDB ו-mmCIF, והוא נוסף לביופייתון בשנת 2003.[15] אובייקט מסוג Structure
מרכזי במודול זה, והוא מארגן מבנה מקרומולקולרי בצורה היררכית: אובייקטים מסוג Structure
מכילים אובייקטים מסוג Model
המכילים אובייקטים מסוג Chain
המכילים אובייקטים מסוג Residue
המכילים אובייקטים מסוג Atom
. שאריות ואטומים לא מאורגנים מקבלים מחלקות משלהם, DisorderedResidue
ו-DisorderedAtom
בהתאמה, המתארות את מיקומיהם הלא-ודאיים.
שימוש ב-Bio.PDB מאפשר לנווט בין רכיבים בודדים בקובץ מבנה מקרומולקולרי, כמו בחינת כל אטום בחלבון. ניתן לבצע ניתוחים כגון מדידת מרחקים או זוויות, השוואת שאריות וחישוב עומק השאריות.
מודול ה-Bio.PopGen מוסיף תמיכה ל-Biopython for Genepop, חבילת תוכנה לניתוח סטטיסטי של גנטיקה של אוכלוסייה.[16] דבר זה מאפשר ניתוח של שיווי משקל הארדי-וויינברג, תאחיזה לא שוויונית ותכונות אחרות של תדירות אללים באוכלוסייה.
מודול זה גם יכול לבצע סימולציות גנטיות של אוכלוסיות באמצעות תאוריית ה-"coalescent" בתוכנית fastimcoal2.[17]
רבים מהמודולים של ביופייתון מכילים עטיפות של שורת פקודה לכלים נפוצים, מה שמאפשר להשתמש בכלים אלה מתוך ביופיתון. עטיפות אלה כוללות BLAST, Clustal, PhyML, EMBOSS ו-SAMtools. משתמשים יכולים לסווג מחלקת עטיפה כללית כדי להוסיף תמיכה לכל כלי שורת פקודה.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.