Biopython - Tworzenie prostej aplikacji

Stwórzmy prostą aplikację Biopython, aby przeanalizować plik bioinformatyki i wydrukować zawartość. Pomoże nam to zrozumieć ogólną koncepcję Biopythonu i tego, jak pomaga w dziedzinie bioinformatyki.

Step 1 - Najpierw utwórz przykładowy plik sekwencji „przyklad.fasta” i umieść w nim poniższą zawartość.

>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

Rozszerzenie, fasta odnosi się do formatu pliku sekwencji. FASTA wywodzi się z oprogramowania bioinformatycznego FASTA i stąd wzięła swoją nazwę. Format FASTA ma wiele sekwencji ułożonych jedna po drugiej, a każda sekwencja będzie miała swój własny identyfikator, nazwę, opis i rzeczywiste dane o sekwencji.

Step 2 - Utwórz nowy skrypt w języku Python, * simple_example.py ”, wprowadź poniższy kod i zapisz go.

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)

Przyjrzyjmy się nieco dokładniej kodowi -

Line 1importuje klasę parsowania dostępną w module Bio.SeqIO. Moduł Bio.SeqIO służy do odczytu i zapisu pliku sekwencji w innym formacie, a klasa `parse 'służy do parsowania zawartości pliku sekwencji.

Line 2importuje klasę SeqRecord dostępną w module Bio.SeqRecord. Moduł ten służy do manipulowania rekordami sekwencji, a klasa SeqRecord jest używana do reprezentowania określonej sekwencji dostępnej w pliku sekwencji.

*Line 3"importuje klasę Seq dostępną w module Bio.Seq. Moduł ten służy do manipulowania danymi sekwencji, a klasa Seq służy do reprezentowania danych sekwencji określonego rekordu sekwencji dostępnego w pliku sekwencji.

Line 5 otwiera plik „example.fasta” używając zwykłej funkcji Pythona, otwórz.

Line 7 analizuje zawartość pliku sekwencji i zwraca zawartość jako listę obiektu SeqRecord.

Line 9-15 wykonuje pętlę nad rekordami za pomocą pętli Python for i drukuje atrybuty rekordu sekwencji (SqlRecord), takie jak identyfikator, nazwa, opis, dane sekwencji itp.

Line 15 wypisuje typ sekwencji przy użyciu klasy Alphabet.

Step 3 - Otwórz wiersz polecenia i przejdź do folderu zawierającego plik sekwencji „example.fasta” i uruchom poniższe polecenie -

> python simple_example.py

Step 4- Python uruchamia skrypt i wyświetla wszystkie dane sekwencji dostępne w przykładowym pliku „przyklad.fasta”. Dane wyjściowe będą podobne do następującej treści.

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()

W tym przykładzie widzieliśmy trzy klasy, parse, SeqRecord i Seq. Te trzy klasy zapewniają większość funkcji, o których dowiemy się w następnej sekcji.