У меня следующая последовательность:Как сравнить элементы в списке списков и сравнить ключи в списке списков в Python?
seq = [['ATG','ATG','ATG','ATG'],['GAC','GAT','GAA','CCT'],['GCC','GCG','GCA','GCT']]
Вот ключ словаря, который хранит значение аминокислоты для каждого из кодонов (триплет основания, такие как ATG, GCT
и т.д.).
aminoacid = {'TTT' : 'F','TTC' : 'F','TTA' : 'L','TTG' : 'L','CTT' : 'L','CTC' : 'L','CTA' : 'L','CTG' : 'L','ATT' : 'I','ATC' : 'I','ATA' : 'I','ATG' : 'M','GTT' : 'V','GTC' : 'V','GTA' : 'V','GTG' : 'V','TCT' : 'S','TCC' : 'S','TCA' : 'S','TCG' : 'S','CCT' : 'P','CCC' : 'P','CCA' : 'P','CCG' : 'P','ACT' : 'T','ACC' : 'T','ACA' : 'T','ACG' : 'T','GCT' : 'A','GCC' : 'A','GCA' : 'A','GCG' : 'A','TAT' : 'Y','TAC' : 'Y','TAA' : 'STOP','TAG' : 'STOP','CAT' : 'H','CAC' : 'H','CAA' : 'Q','CAG' : 'Q','AAT' : 'N','AAC' : 'N','AAA' : 'K','AAG' : 'K','GAT' : 'D','GAC' : 'D','GAA' : 'E','GAG' : 'E','TGT' : 'C','TGC' : 'C','TGA' : 'STOP','TGG' : 'W','CGT' : 'R','CGC' : 'R','CGA' : 'R','CGG' : 'R','AGT' : 'S','AGC' : 'S','AGA' : 'R','AGC' : 'R','GGT' : 'G','GGC' : 'G','GGA' : 'G','GGG' : 'G'}
Как можно видеть несколько кодонов могут кодировать же аминокислоту (например. GGT,GGC,GGA, GGG etc all code for Glycine (G)
). Они являются синонимами (PSyn) и если кодоны кодируют различные аминокислоты, они не являются Синоним (PNonsyn)
В этом коде, мне нужно сделать следующее:
Для каждого элемента в списке списков, если есть изменение оснований и все они код одной и той же аминокислоты, затем увеличить счетчик PSyn на 1 и, если он кодирует различных аминокислот приращения рассчитывать PNonsyn 1
здесь
ATG all code for M #However, all are ATG's no change in bases. So no increment in count GAC, GAT for D; GAA for E; and CCT for P #Codes for three different amino acids, increment count by 1 GGT,GGC,GGA, GGG for G #Different bases but all code for same amino acids, increment count by 1
Выход:
CountPsyn = 1
CountPNonsyn = 1
Создание списка аминокислот, которая соответствует указанной выше SEQ. такие, что:
Output : ['ATG','nonsyn','G'] #For sites with different aminoacids, the list should say nonsyn and for sites which had identical bases it should list the bases
мне нужна помощь изменив следующий код, чтобы получить программу для работы. Я не уверен, как вызывать значения из словаря и проверять их на все элементы. Код Покушение:
countPsyn = 0
countPnonsyn = 0
listofaa =[]
for i in seq:
for base, value in enumerate(i):
if value[i] == value[i+1]: #eg. ['ATG','ATG','ATG','ATG']
listofaa.append(value)
if value[i] != value[i+1]:
if aminoacid[value][i] == aminoacid[value][i+1]: #eg.['GCC','GCG','GCA','GCT']
countPsyn =+ 1
listofaa.append(aminoacid)
else: #eg. ['GAC','GAT','GAA','CCT']
countPnonsyn =+ 1
listofaa.append('nonsyn')
File Output can be found [here][1] https://eval.in/669107
исправьте углубление. –
@ Jean-FrançoisFabre Спасибо, что указали это. Я исправил его – Biotechgeek
Это тяжелый я не биоинженерик, но я попробую LOL. – thesonyman101