Учебная страница курса биоинформатики,
год поступления 2023
1. Скачивание протеомов
Предлагаю использовать REST API UniProt и скачать нужные данные на kodomo из командной строки.
Чтобы скачать белковые записи, принадлежащие одному протеому, вам нужно:
- придумать поисковый запрос к UniProtKB, который выдаст все необходимые белки;
- преобразовать запрос в URL, который позволит получить записи в нужном формате;
- написать правильную команду в bash, которая позволит скачать данные по заданному URL и сохранить их в файл с требуемым именем.
Пункт 1 не должен вызвать затруднений, поищите нужное поле в конструкторе расширенных поисковых запросов.
Пункт 2 сложнее. Как составить нужный URL и описанно в документации к API. В вашем случае URL будет иметь следующий вид:
https://rest.uniprot.org/uniprotkb/stream?compressed=true&format=txt&query=QUERY
Вместо QUERY надо подставить поисковый запрос, подробнее здесь. Обратите внимание на указание формата и наличие сжатия. Именно это позволит вам загрузить полные белковые записи в формате swiss, сжатые с помощью gzip. Формат gzip – это, кажется, все еще самый распространенный способ сжатия файлов в Unix-like системах и интернете. И уж точно самый известный. Он позволяет в среднем в несколько раз уменьшить размер произвольных текстовых файлов. При этом полученный файл можно распаковывать при чтении "на лету", почти без снижения скорости чтения.
В пункте 3 вы можете использовать либо уже знаковый по прошлому семестру wget, либо curl. Большой разницы нет (обратите внимание на экранирование URL одинарными кавычками):
В отчете надо будет указать полные команды, которые вы использовали для скачивания протеомов.
Если все описанное выше совсем сложно, или никак не удается справиться с каким-то из этапов, то можно скачать небходимые записи к себе на компьютер стандартными средствами на сайте UniProt, потом перекинуть полученный файл на kodomo, там его сжать с помощью команды gzip и переименовать нужным образом. Для зачета задания этого будет достаточно.
2. Работа со сжатыми файлами .gz
Можно было бы распаковать файл с помощью gunzip, как вы это делали в прошлом семестре. Но протеомы все-таки занимают довольно много места на диске, поэтому я рекомендую так не поступать. Тем более, что работать с файлами .gz совсем не сложно, и при чтении на распаковку данных практически не тратится дополнительного времени.
Для работы с .gz в командной строке рекомендую использовать команду zcat. Программа работает аналогично cat, но предварительно распаковывает файлы. Поэтому zcat, в отличие от cat, имеет смысл использовать в качестве первой команды конвейера и в случае работы с одним файлом. Примеры:
Еще есть zgrep, который является аналогом grep для файлов .gz, можете использовать его.
Для просмотра сжатых текстовых файлов есть программа zless – аналог less.
Если вы хотите читать файлы .gz из питона, то это тоже делается без проблем. В стандартной библиотеке есть модуть gzip, который позволяет читать и писать файла, сжатые с помощью gzip, ровно так же, как обычные файлы.
3. Сравнение протеомов
Например, можно подсчитать, сколько раз в каждом из протеомов встречаются разные ключевые слова, и например, сравнить списки 10 самых частых ключевых слов между протеомами. Аккуратно выполнить это задание не так просто, как кажется на первый взгляд. Насколько сложно может быть устроено это поле можете увидеть в записи D6YSU1. Вряд ли получится обойтись средствами командной строки, проще написать скрипт на python.
Еще можно проверить, правда ли, что первая аминокислота в каждом белке – метионин. Если в одном из протеомов найдутся белки, последовательность которых не начинается с М, интересно выяснить, с чем это связано. Для получения первой аминокислоты из каждого белка проще всего использовать seqret и правильный USA. В USA в именах файлов и идентификаторах записей можно использовать * и ?, которые значат то же самое, что в bash. Только не забудьте экранировать эти символы, чтобы их не перехватил bash. За такой вариант сравнения можно получить максимум 3 из 5 баллов. Выбирайте его, если просто хотите зачет за практикум.
Аналогично сравнению частот ключевых слов можно сравнить частоты ключей в таблице локальных особенностей. Хотя в данном случае один ключ может встречаться много раз в одной записи, поэтому общие частоты будут не очень показательными. Можете попробовать придумать, как можно подсчитать количество белков в протеоме, в аннотации которых встречается какой-нибудь интересующий вас ключ. Это вполне можно сделать с помощью знакомых вам команд bash, правда не совсем тривиально. Советую обратить внимание на опции -A и -B у grep, может быть они будут полезны.
Как насчет подсчета количества статей из PubMed, на которые ссылаются все белки в протеоме? Может ли это число что-то сказать о качестве аннотации протеома?
Еще в EMBOSS есть полезная программа wordcount, с помощью которой легко можно оценить частоты разных аминокислот в протеоме. Еще полезными могут оказаться infoseq, inforesidue, pepstats.
Будет лучше, если вы сами придумаете, что сравнивать.