Biopython - Creazione di un'applicazione semplice

Creiamo una semplice applicazione Biopython per analizzare un file bioinformatico e stampare il contenuto. Questo ci aiuterà a capire il concetto generale del Biopython e come aiuta nel campo della bioinformatica.

Step 1 - Per prima cosa, crea un file di sequenza di esempio, "example.fasta" e inserisci il contenuto sottostante.

>sp|P25730|FMS1_ECOLI CS1 fimbrial subunit A precursor (CS1 pilin) 
MKLKKTIGAMALATLFATMGASAVEKTISVTASVDPTVDLLQSDGSALPNSVALTYSPAV
NNFEAHTINTVVHTNDSDKGVVVKLSADPVLSNVLNPTLQIPVSVNFAGKPLSTTGITID 
SNDLNFASSGVNKVSSTQKLSIHADATRVTGGALTAGQYQGLVSIILTKSTTTTTTTKGT 

>sp|P15488|FMS3_ECOLI CS3 fimbrial subunit A precursor (CS3 pilin) 
MLKIKYLLIGLSLSAMSSYSLAAAGPTLTKELALNVLSPAALDATWAPQDNLTLSNTGVS 
NTLVGVLTLSNTSIDTVSIASTNVSDTSKNGTVTFAHETNNSASFATTISTDNANITLDK 
NAGNTIVKTTNGSQLPTNLPLKFITTEGNEHLVSGNYRANITITSTIKGGGTKKGTTDKK

L'estensione, fasta si riferisce al formato del file della sequenza. FASTA nasce dal software di bioinformatica FASTA e da qui prende il nome. Il formato FASTA ha più sequenze organizzate una per una e ogni sequenza avrà il proprio ID, nome, descrizione e i dati della sequenza effettiva.

Step 2 - Crea un nuovo script python, * simple_example.py ", inserisci il codice sottostante e salvalo.

from Bio.SeqIO import parse 
from Bio.SeqRecord import SeqRecord 
from Bio.Seq import Seq 

file = open("example.fasta") 

records = parse(file, "fasta") for record in records:    
   print("Id: %s" % record.id) 
   print("Name: %s" % record.name) 
   print("Description: %s" % record.description) 
   print("Annotations: %s" % record.annotations) 
   print("Sequence Data: %s" % record.seq) 
   print("Sequence Alphabet: %s" % record.seq.alphabet)

Diamo uno sguardo più approfondito al codice:

Line 1importa la classe di analisi disponibile nel modulo Bio.SeqIO. Il modulo Bio.SeqIO viene utilizzato per leggere e scrivere il file di sequenza in un formato diverso e la classe `parse 'viene utilizzata per analizzare il contenuto del file di sequenza.

Line 2importa la classe SeqRecord disponibile nel modulo Bio.SeqRecord. Questo modulo viene utilizzato per manipolare i record di sequenza e la classe SeqRecord viene utilizzata per rappresentare una sequenza particolare disponibile nel file di sequenza.

*Line 3"importa la classe Seq disponibile nel modulo Bio.Seq. Questo modulo viene utilizzato per manipolare i dati di sequenza e la classe Seq viene utilizzata per rappresentare i dati di sequenza di un particolare record di sequenza disponibile nel file di sequenza.

Line 5 apre il file "esempio.fasta" utilizzando la normale funzione python, apri.

Line 7 analizza il contenuto del file di sequenza e restituisce il contenuto come elenco di oggetti SeqRecord.

Line 9-15 esegue un ciclo sui record utilizzando python for loop e stampa gli attributi del record della sequenza (SqlRecord) come id, nome, descrizione, dati della sequenza, ecc.

Line 15 stampa il tipo della sequenza usando la classe Alphabet.

Step 3 - Apri un prompt dei comandi e vai alla cartella contenente il file di sequenza, "example.fasta" ed esegui il comando seguente -

> python simple_example.py

Step 4- Python esegue lo script e stampa tutti i dati della sequenza disponibili nel file di esempio, "example.fasta". L'output sarà simile al seguente contenuto.

Id: sp|P25730|FMS1_ECOLI 
Name: sp|P25730|FMS1_ECOLI 
Decription: sp|P25730|FMS1_ECOLI CS1 fimbrial subunit A precursor (CS1 pilin) 
Annotations: {} 
Sequence Data: MKLKKTIGAMALATLFATMGASAVEKTISVTASVDPTVDLLQSDGSALPNSVALTYSPAVNNFEAHTINTVVHTNDSD
KGVVVKLSADPVLSNVLNPTLQIPVSVNFAGKPLSTTGITIDSNDLNFASSGVNKVSSTQKLSIHADATRVTGGALTA
GQYQGLVSIILTKSTTTTTTTKGT 
Sequence Alphabet: SingleLetterAlphabet() 
Id: sp|P15488|FMS3_ECOLI 
Name: sp|P15488|FMS3_ECOLI 
Decription: sp|P15488|FMS3_ECOLI CS3 fimbrial subunit A precursor (CS3 pilin) 
Annotations: {} 
Sequence Data: MLKIKYLLIGLSLSAMSSYSLAAAGPTLTKELALNVLSPAALDATWAPQDNLTLSNTGVSNTLVGVLTLSNTSIDTVS
IASTNVSDTSKNGTVTFAHETNNSASFATTISTDNANITLDKNAGNTIVKTTNGSQLPTNLPLKFITTEGNEHLVSGN
YRANITITSTIKGGGTKKGTTDKK 
Sequence Alphabet: SingleLetterAlphabet()

Abbiamo visto tre classi, parse, SeqRecord e Seq in questo esempio. Queste tre classi forniscono la maggior parte delle funzionalità e le impareremo nella prossima sezione.