Сигналы и мотивы 3

PSI-BLAST

Белок Probable septum site-determining protein MinC(B2V8C0) является ингибитором полярных Z-кольцевых перегородок, белков, которые первыми оказываются на месте деления бактериальной клетки, притягивая за собой все остальные необходимые белки. Сама бактерия относится к семейству Hydrogenothermaceae. Такие бактерии способны выживать в условиях термальных источников и высоких температур, могут жить в условиях нехватки кислорода и окислять серу.
Было произведено 10 итераций PSI-BLAST. Для того, чтобы определить стабильность итераций были придуманы несколько импровизированных параметров, которые отражали разность между "крайними" находками в E-value. А также изменчивость этого параметра по сравнению с предыдущей итерацией. В итоге 4 итерация оказалась самой удачной, на ней можно было остановиться(дальше только хуже). Четкой обособленности не наблюдалось, что странно для такого ключевого белка.

Отбор недопредставленных сайтов

Перед тем как начать работу с файлом мотивов я перевел его в csv формат, поскольку tsv плохо воспринимается комбинацией параметров sort uk5,5. new2.csv содержит все исходные мотивы, также из него был удален заголовок.

Таблица 1.

Использованные команды

Команда Описание
sort -t, -uk5,5 new2.csv >new.csv Сортировка по столбцу с последовательностями и оставление только уникальных
cat new.csv | sed 's/,/\t/g' > new.tsv перевод обратно в tsv. На этом же этапе был удален мотив состоящий из одной буквы C и пустой мотив.
cut -f 5 new.tsv > final.txt Оставляем только столбец с последовательностями
cbcalc -s final.txt -o sites.tsv --burge gen_full.fasta Оцениваем представленность сайтов в геноме бактерии
sort -k5,5g sites.tsv >sites_sort.tsv Сортируем и выбираем те, что имеют O/E < 0.8. Итоговый файл
import pandas as pd
pd.set_option('display.max_rows', None)
df1 = pd.read_csv('C:/Users/User/Downloads/sites_final.tsv', sep='\t')
sites = df['2'].tolist()
df2 = pd.read_csv('C:/Users/User/Downloads/TypeII_REs.tsv', sep='\t')
df2['is_there'] = df2['Recognition site'].isin(sites)
df2[(df2.Putative == 'no') & (df2.is_there == True)][["#:REBASE name"]]
Отбираем из исходного файла те мотивы, которые имеют no в колонке Predicted и совпадают хотя бы с одной последовательностью. Скрипт написан на python. Также в sites_final.tsv были добавлены заголовки колонок ввиде их номеров.Итоговый файл