скажем, у меня есть несколько списков списков, в этом примере я добавлю сокращенную версию из трех из них.
list1=[['name', '1A5ZA'], ['length', 83], ['A', 28], ['V', 31], ['I', 24]]
list2=[['name', '1AJ8A'], ['length', 49], ['A', 18], ['V', 11], ['I', 20]]
list3=[['name', '1AORA'], ['length', 96], ['A', 32], ['V', 49], ['I', 15]]
все списки имеют одинаковый формат: они имеютодинаковое количество вложенных списков с одинаковыми метками.
Я создаю каждый из этих списков с помощью следующей функции
def GetResCount(sequence):
residues=[['A',0],['V',0],['I',0],['L',0],['M',0],['F',0],['Y',0],['W',0],
['S',0],['T',0],['N',0],['Q',0],['C',0],['U',0],['G',0],['P',0],['R',0],
['H',0],['K',0],['D',0],['E',0]]
name=sequence[0:5]
AAseq=sequence[27:]
for AA in AAseq:
for n in range(len(residues)):
if residues[n][0] == AA:
residues[n][1]=residues[n][1]+1
length=len(AAseq)
nameLsit=(['name', name])
lengthList=(['length', length])
residues.insert(0,lengthList)
residues.insert(0,nameLsit)
return residues
сценарий принимает последовательность, подобную этой
1A5ZA:A|PDBID|CHAIN|SQUENCEMKIGIVGLGRVGSSTAFAL
, и создает список, аналогичныйупомянутые выше.Поскольку каждый отдельный список генерируется, я хотел бы добавить его в окончательную форму, чтобы все они, объединенные вместе, выглядели так:
final=[['name', '1A5ZA', '1AJ8A', '1AORA'], ['length', 83, 49, 96], ['A', 28, 18, 32], ['V', 31, 11, 49], ['I', 24, 20, 15]]
возможно, окончательная форма данных не находится вправильный формат.Я открыт для предложений о том, как лучше отформатировать окончательную форму ...
Подводя итог, нужно сказать, что сценарий должен получить последовательность букв с именем последовательности, находящейся в начале, подсчитать возникновениекаждой буквы, содержащей последовательность, а также общую длину последовательности и выводят длину имени и частоту буквы в список.Затем он должен объединить информацию из каждой последовательности в большой список (может быть, словарь? ..)
, в самом конце вся эта информация попадет в электронную таблицу, которая будет выглядеть следующим образом:
name length A V I
1A5ZA 83 28 31 24
1AJ8A 49 18 11 20
1AORA 96 32 49 15
Я включаю этот последний бит, потому что, возможно, я не начинаю правильно начинать с того, что хочу.
В любом случае, я надеюсь, что вы сделали это здесь, и спасибо за помощь!