Сигналы и мотивы. MEME


В этом практикуме нам предлагалось найти мотив указанного сигнала с помощью сервиса MEME. Я решил найти последовательность Шайна-Дальгарно в геноме бактерии Lactobacillus amylovorus, с которой работал в первом семестре. Последовательность Шайна-Дальгарно представляет собой сайт связывания рибосом на молекуле мРНК прокариот и обычно находится на расстоянии около 10 нуклеотидов до стартового кодона AUG. Нетривиальной задачей было вытащить из генома бактерии участки, из которых происходил бы поиск мотива. Для начала скачаем сам геном, а также белок кодирующие последовательности из него. Последние нам нужны для того, чтобы из их заголовков вытащить координаты расположения в геноме, а по координатам получить позиции upstream элементов, где, как мы предполагаем, находится наша последовательность. Затем переменуем их.
wget https://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/Lactobacillus_amylovorus/latest_assembly_versions/GCF_000182855.2_ASM18285v1/GCF_000182855.2_ASM18285v1_cds_from_genomic.fna.gz
gzip -d GCF_000182855.2_ASM18285v1_cds_from_genomic.fna.gz
mv GCF_000182855.2_ASM18285v1_cds_from_genomic.fna sequence.txt
wget https://ftp.ncbi.nlm.nih.gov/genomes/refseq/bacteria/Lactobacillus_amylovorus/latest_assembly_versions/GCF_000182855.2_ASM18285v1/GCF_000182855.2_ASM18285v1_genomic.fna.gz
gzip -d GCF_000182855.2_ASM18285v1_genomic.fna.gz
mv GCF_000182855.2_ASM18285v1_genomic.fna lac_amyl.fasta
Теперь вытащим из белок-кодирующих последовательностей координаты их расположения и запишем в файл в формате csv.
grep '>' sequence.txt | awk -F" " '{for(i=1;i<=NF;i++){if ($i ~ /location/){print $i}}}' | grep -v '<' | sort | tr -d '[location=complement(' | tr -d '[location=' | tr -d ']' | tr -d ')]' | tr -s '..' ',' > seq_pos_tr.csv
Затем полученную табличку мы открыли в программе Excel (для скорости) и создали новую таблицу с координатами upstream элементамов от -20 до 0 каждого гена (с учётом кодирующей цепи). Полученную таблицу назвали 20.csv. Затем для того, чтобы команда awk корректно работала с файлом csv, добавили в конец каждой строки ещё символ ;. После генерируем файл с командами для Emboss seqret, который вырежет нам последовательности по координатам. Также, нужно было добавить в файл с анти-последовательностью Шайна-Дальгарно из 16s-rRNA (руками отберём кусок длиной 20). Её мы нашли вручную и внесли в получившийся скрипт. Добавим право на исполнение и запустим. В полученном файле мы имеем очень много последовательностей длиной 20 b.p. с одинаковым заголовком. Многие из них не являются подходящими, поэтому установим произвольный фильтр на то, чтобы в последовательности присутствовала хотя бы одна последовательность AGG.
sed 's/$/;/' 20.csv > 20_20.csv
awk -F";" '{print "seqret -sequence lac_amyl.fasta -sbegin " $1 " -send " $2 " -out stdout >> shine_dalgarno.fasta"}' 20_20.csv | sed ':a;N;$!ba;s/\n/ /g' | head > commands_merged.sh
seqret -sequence lac_amyl.fasta -srev -sbegin 66295 -send 67869 -out stdout ---- #16s-rRNA
chmod +x commands_merged.sh
./commands_merged.sh
grep 'AGG' shine_dalgarno.fasta > shine_agg.txt
Разбираться с переименовыванием последовательностей через descseq сразу в скрипте было долго, поэтому я написал скрипт на python, который переименовывал последовательности.
infile = open("shine_agg.txt", "r")
outfile = open("shine_agg.fasta", "w")
i = 1
for line in infile:
    print('>' + str(i) + '\n' + line, file=outfile)
    i += 1
infile.close()
outfile.close()
Файл с последовательностями здесь. Отлично! Теперь запустим поиск мотивов. Укажем количество мотивов - 1, длину мотива в 8 нуклеотидов (чуть больше чем известный миру консенсус) и скажем MEME учитывать только одну цепь.
meme shine_agg.fasta -dna -nmotifs 1 -w 8 -o meme_out
Результаты выдачи можно найти здесь. В выдаче можем найти информацию о мотиве:

MOTIF 1 width = 8 sites = 439 llr = 1553 E-value = 9.9e-127
Из этого следует, что наш мотив нашёлся в 100% (439/439) последовательностей с хорошим очень низким e-value. В 100% последовательностей в основном из-за того, что мы отобрали только те, в которых уже был хоть один AGG. Что особенно хорошо, мотив нашёлся в анти-последовательности 16s-rRNA.
Рис. 1. MEME-мотив последовательности Шайна-Дальгарно.
В качестве заключения скажу, что этот практикум занял у меня очень много времени, поскольку я очень долго не мог найти мотив. И нашёлся он только когда мы установили фильтр в последовательностях на наличие хотя бы одного AGG. В этой статье говорится о том, что последовательности довольно разнообразны и даже внутри одного организма не всегда регулируют трансляцию, поэтому поиск последовательности SD - сама по себе нетривиальная задача, но с чем-то мы справились.