我有一个小的数据集,我用它来获得BioPython的pairwise2模块的全局比对结果。到目前为止,我已经得到了对齐和评分结果,现在我对结果的结构以及如何分析结果有疑问
下面是我的代码:
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'
在我看来,它们是元组列表。你知道吗
[]表示列表
()表示元组(只读列表)
要实现您的要求,最简单的方法是将列表中的项目编入索引,如下所示:
我怀疑有一个更好的命名策略,你可以使用,但我不知道足够的生物学知识,以帮助你在该部门。你知道吗
在你的例子中,你有一个元组列表。你知道吗
要访问每个列表的第一个元素,只需执行以下操作:
因为列表包含元组,所以它将返回完整的元组。你知道吗
得到元组后,可以将前两个值取为:
如果不想存储中间值,可以直接执行以下操作:
我希望有帮助。祝您有个美好的一天。你知道吗
要添加到示例中:
看起来像
list
[]的tuples
()。你知道吗如果确定要保留第一个,请保留第一个:
这样您将得到:
这就是你所需要的,然后要对它们做些什么,只需遍历列表:
如果你关心这三个值(并且知道它们的含义),你应该正确地命名它们,而不是像我一样:
相关问题 更多 >
编程相关推荐