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.