Упражнения по EMBOSS и Python.

Упражнения по EMBOSS

1. Несколько файлов в формате fasta собрать в единый файл.

	seqret 'seq?.fasta' seq1_2.fasta 

Входные файлы seq1.fasta , seq2.fasta; файл с результатом seq1_2.fasta .

Примечания: если не поставить кавычки, команда будет ругаться, что ей передают слишком много файлов на вход. Выходной файл открывается на письмо, поэтому то, что было в этом файле раньше, стирается. Последовательности добавляются в файл в том порядке, в котором они были созданы или скачаны, кажется.


2. Один файл в формате fasta с несколькими последовательностями разделить на отдельные fasta файлы.

	seqretsplit seq1_2.fasta 

Входной файл seq1_2.fasta ; файлы с результатом emboss_001.fasta , emboss_001.002.fasta

Примечания: команда автоматически называет файлы так, как названы последовательности. Сразу передать этим файлам другие названия нельзя, можно только переименовать их уже после выполнения команды. В моем случае последовательности для файлов seq1 и seq2 были сгенерированы, поэтому имели одинаковые идентификаторы EMBOSS_001. Пока они лежали в разных файлах, а потом и в одном файле, это ничему не мешало. Когда же команде нужно было их разделить на два файла, вторая последовательность была автоматически переименована на emboss_001.002, так чтобы не получилось двух файлов с одинаковыми названиями. При этом поменялись и идентификатор последовательности, и название файла.


4. Транслировать (с первого кодона, то есть в первой рамке) кодирующие последовательности, лежащие в одном fasta файле, в аминокислотные, используя указанную таблицу генетического кода, и положить результат в один fasta файл.

	transeq -frame 1 -table 11 nucl.fasta prot.fasta 

Входной файл nucl.fasta ; файл с результатом prot.fasta .

Примечания: в получаемом файле последовательности идут в том же порядке и имеют те же аннотации, что и в исходном файле. Рамку считывания можно было бы и не указывать, т.к. первая рамка стоит по умолчанию. Указание конкретной таблицы ген. кода в моем примере не очень осмысленно, т.к. лежащие в файле последовательности из разных организмов.


5. Вывести открытые рамки длиной не менее заданной, имеющиеся в данной нуклеотидной последовательности.

	getorf -minsize 300 scaffold-223.fasta orf_scaffold-223.fasta 

Входной файл scaffold-223.fasta ; файл с результатом orf_scaffold-223.fasta .


6. Перевести выравнивание из формата fasta в формат msf.

	seqret align.fasta msf::align.msf 

Входной файл align.fasta ; файл с результатом align.msf .


8. Перевести аннотации особенностей из файла формата gb или embl в табличный формат gff.

	featcopy NC_018554.gb gff::NC_018554_FT.gff  

Входной файл NC_018554.gb ; файл с результатом NC_018554_FT.gff .

Примечание: здесь, как и в некоторых других местах, я пишу выходной файл в формате USA, но можно писать и просто NC_018554_FT.gff, формат автоматически будет такой, какой указан после точки.

9. Из данного файла с хромосомой в формате gb или embl получить fasta файл с кодирующими последовательностями.

 extractfeat -type CDS NC_018554.gb CDS_NC_018554.fasta 

Входной файл NC_018554.gb ; файл с результатом CDS_NC_018554.fasta .


10. Перемешать буквы в данной нуклеотидной последовательности.

 shuffleseq seq1.fasta seq1_shuff.fasta 

Входные файлы seq1.fasta ; файл с результатом seq1_shuff.fasta .

Новая последовательность записывается в файл с той же аннотацией, что и исходная.


11. Создать три случайных нуклеотидных последовательности длины 100.

	makenucseq -amount 3 -length 100 seq1_3.fasta 

Файл с результатом: seq1_3.fasta ;

Примечание: сгенерированные последовательности получают идентификаторы EMBOSS_001 и т.д. и записываются в общий файл. Для создания белковой последовательности есть аналогичная команда makeprotseq.


12. Найти частоты кодонов в данных кодирующих последовательностях.

	wordcount -wordsize 3 nucl.fasta count.fasta 

Входной файл nucl.fasta ; файл с результатом count.fasta .

 cusp nucl.fasta nucl.cusp 

Входной файл тот же nucl.fasta ; файл с результатом nucl.cusp .

Примечание: команда wordcount - более универсальная, может подсчитать частотности подстрок любой длины в последовательностях (в том числе в белковых). В ее файле с результатами только кодоны и их число в последовательности. Команда cusp более специализированная, она берет на вход только нуклеотидные последовательности и работает только с кодонами (подсловами длины 3). Выходной файл имеет отдельный формат .cusp и содержит дополнительную информацию: какую аминокислоту кодирует триплет, Frequency (ожидаемое количество этого кодона в последователности того же состава длиной 1000 нуклеотидов - то есть почти содержание данного кодона в промилях), Fraction (доля этого триплета среди всех триплетов, кодирующих эту же аминокислоту). Понятно, что эти параметры не являются новой информацией, т.е. могут быть посчитаны по выдаче wordcount без использования исходного файла. Такой файл, например, принимается на вход программой makenucseq, создающей последовательность с нужным содержанием триплетов.


14. Удалить символы гэпов из выравнивания (превратив его тем самым снова в набор невыровненных последовательностей).

 degapseq align.fasta align_degap.fasta 

Входной файл align.fasta ; файл с результатом align_degap.fasta .


Задача 4.

Формулировка: По данному аннотированному файлу в формате gb создать файл с кодирующими последовательностями в формате fasta, добавив в описание каждой последовательности функцию белка (из поля product).

Можно заметить, что формулировка очень похожа на условия упражнения 9 (см. выше), которое было выполнено с помощью команды extractfeat. Нужно только добавить в аннотацию кодирующих последовательностей название белка, который он кодирует. С помощью tfm extractfeat я нашла опцию -describe, которая позволяет добавить в описание информацию, которая содержится под тэгом. В данном случае в описания в скобках будут добавлены названия белков, указанные в /product. Тогда задача решается командой:

 extractfeat -type CDS -describe product NC_018554.gb product_NC_018554.fasta 

Входной файл NC_018554.gb ; файл с результатом product_NC_018554.fasta .

Т.к. в задаче сказано написать скрипт, я поместила эту строку в отдельный файл CDS.sh , добавив в начало '#! /bin/bash', так чтобы его можно было исполнять. Файлы те же.

Стоит заметить, что в поле product не всегда написано полное название белка (по полному названию обычно можно понять его функцию), иногда написано его короткое название, буквенная аббревиатура, например, product="CcmFC". Поэтому в описание последовательностей добавляется не всегда описание функции белка, иногда только сокращенной название.

Вернуться на страницу семестра

Вернуться на главную


© potapenko 2017-2018