Python

Выбранная задача:
По данному аннотированному файлу в формате gb (из GenBank или RefSeq) или embl (из ENA) создать файл с кодирующими последовательностями в формате fasta, добавив в описание каждой последовательности функцию белка (из поля product).
Форматом выбран gb.
Задача не представлялась сложной, так как исходный код получился в 4 строчки на python или в одну на bash :). Питоновская программа запускает extractfeat с помощью os.system. Чтобы как-то скомпенсировать простоту задачи, я решила сделать программу user-friendly. Программа принимает на вход входной файл в формате gb и имя выходного файла. В случае, если имя выходного файла не дано, генерируется файл 'out.fasta'. Если пользователь забыл ввести имя входного файла, программа спрашивает его. Бывает, что пользователь вводит имя не того файла, тогда программа скажет, в случае отсутствия файла в директории, что его не существует, в случае неправильного формата - либо пожурит пользователя за отсутствие расширения '.gb', либо, если оно есть, - за неправильный формат (определяется по наличию в первой строке слова 'LOCUS'). Ещё в процессе работы я столкнулась с gb файлами (например, "тренировочный" chromosome.gb), в которых нет после "ORIGIN" кодирующей последовательности, необходимой для правильной работы 'extractfeat'. В таком случае услужливая программа сообщит об этом.
Пример запуска:
python3 extract_cds.py seq.gb seq_out.fasta

Входной файл
Результат работы extract_cds.py
Скрипт (extract_cds.py)