Давайте создадим простое приложение Biopython для анализа файла биоинформатики и распечатки содержимого. Это поможет нам понять общую концепцию биопиона и то, как он помогает в области биоинформатики.
Шаг 1 — Сначала создайте пример файла последовательности «example.fasta» и поместите в него содержимое ниже.
>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
Расширение fasta относится к формату файла последовательности. FASTA происходит от программного обеспечения для биоинформатики, FASTA и, следовательно, получает свое имя. Формат FASTA состоит из нескольких последовательностей, расположенных одна за другой, и каждая последовательность будет иметь свой собственный идентификатор, имя, описание и фактические данные последовательности.
Шаг 2 — Создайте новый скрипт на Python * simple_example.py «, введите приведенный ниже код и сохраните его.
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)
Давайте немного углубимся в код —
Строка 1 импортирует класс разбора, доступный в модуле Bio.SeqIO. Модуль Bio.SeqIO используется для чтения и записи файла последовательности в другом формате, а класс parse используется для анализа содержимого файла последовательности.
Строка 2 импортирует класс SeqRecord, доступный в модуле Bio.SeqRecord. Этот модуль используется для управления записями последовательности, а класс SeqRecord используется для представления определенной последовательности, доступной в файле последовательности.
* Строка 3 « импортирует класс Seq, доступный в модуле Bio.Seq. Этот модуль используется для манипулирования данными последовательности, а класс Seq используется для представления данных последовательности конкретной записи последовательности, доступной в файле последовательности.
Строка 5 открывает файл «example.fasta» с помощью обычной функции python, open.
Строка 7 анализирует содержимое файла последовательности и возвращает содержимое в виде списка объекта SeqRecord.
Строка 9-15 циклически перебирает записи, используя python for loop, и печатает атрибуты записи последовательности (SqlRecord), такие как id, имя, описание, данные последовательности и т. Д.
Строка 15 печатает тип последовательности, используя класс Alphabet.
Шаг 3 — Откройте командную строку и перейдите в папку, содержащую файл последовательности, «example.fasta» и выполните следующую команду —
> python simple_example.py
Шаг 4 — Python запускает скрипт и печатает все данные последовательности, доступные в файле примера, «example.fasta». Вывод будет похож на следующий контент.
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()
В этом примере мы видели три класса: parse, SeqRecord и Seq. Эти три класса предоставляют большую часть функциональности, и мы изучим эти классы в следующем разделе.