У меня есть небольшой набор данных, который я использую для получения результатов глобального выравнивания с помощью парного модуля BioPython. Я получил до сих пор, чтобы получить выравнивание и оценки результатов, а теперь у меня есть вопросы о структуре результатов и как я могу разобрать ихнепонятная структура данных python и parse python
ниже мой код:
import pandas as pd
from Bio import pairwise2
from Bio.SubsMat import MatrixInfo as matlist
matrix = matlist.blosum62
match = 5
mismatch = -4
gap_open = -10
gap_extend = -0.5
df = {'ID': ['H576','H577','H578'],
'CD': ['GCACGCATAAGTAGT', 'GCGAGGGGGGCTTC', 'GCGAGAGATCGGG']}
df = pd.DataFrame(df)
dictionary = df.set_index('ID')['CD'].to_dict()
seq = dictionary.get('H576')
for seq0 in df.CD:
alns = pairwise2.align.globalms(seq, seq0, match, mismatch, gap_open, gap_extend)
print(alns)
результатов :
[('GCACGCATAAGTAGT', 'GCACGCATAAGTAGT', 75, 0, 15)]
[('GCACGCATAAGTAGT-----', 'GCG------AGGGGGGCTTC', -15.5, 0, 20), ('GCACGCATAAGTAGT-----', 'GC------GAGGGGGGCTTC', -15.5, 0, 20)], ....]
[('GCA------CGCATAAGTAGT', 'GCGAGAGATCG--------GG', -9.0, 0, 21), ('GC------ACGCATAAGTAGT', 'GCGAGAGATCG--------GG', -9.0, 0, 21)]GGGGGC--------TTCAGAGAGTTATAGGCTGTTTGACTAC', 'GTGAGAGATGCGCCGCGTATTC---GA-----AGCTTCTTTGACTAC', 55.5, 0, 47)],....]
мои вопросы:
Очевидно, что результаты содержат 3 основных набора, но какая структура данных является результатом выше? наборы? кортежи? наборы и кортежи?
Я хотел бы только посмотреть на первый набор элементов из каждого набора:
('GCACGCATAAGTAGT', 'GCACGCATAAGTAGT', 75, 0, 15)
('GCACGCATAAGTAGT-----', 'GCG------AGGGGGGCTTC', -15.5, 0, 20)
('GCA------CGCATAAGTAGT', 'GCGAGAGATCG--------GG', -9.0, 0, 21)
затем в цикле, назначить первую последовательность каждого набора, чтобы быть seq0 и второй последовательности каждый след быть seq1, а затем я собираюсь сделать что-то с ними:
так для первого набора:
seq0 = 'GCACGCATAAGTAGT'
seq1 = 'GCACGCATAAGTAGT'
второй комплект:
seq0 = 'GCACGCATAAGTAGT-----'
seq1 = 'GCG------AGGGGGGCTTC'
третий комплект:
seq0 = 'GCA------CGCATAAGTAGT'
seq1 = 'GCGAGAGATCG--------GG'
Обратите внимание, что блок «результаты» невозможен с заданным сценарием, независимо от того, какой ввод. Я предполагаю, что вы его отредактировали, и было бы проще не редактировать или действительно удалять неинтересные части, а не вставлять эллипсис, так как люди, желающие понять проблему и дающие соответствующие ответы, все должны исправить это, если они хотят доставить рабочий прототип включая тестовые данные, как я сделал в своем ответе ;-) – Dilettant