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.