如何根据biopython中的位置列表过滤对齐列?
基于biopython帮助页面,我可以根据第一个或最后一个10过滤对齐列,甚至可以使用如何根据biopython中的位置列表过滤对齐列?,python,python-2.7,biopython,sequence-alignment,Python,Python 2.7,Biopython,Sequence Alignment,基于biopython帮助页面,我可以根据第一个或最后一个10过滤对齐列,甚至可以使用 align[:, :10] + align[:, -10:] align是MSA对象,使用 from Bio import AlignIO align = AlignIO.read("Clustalw/opuntia.aln", "clustal") 但是,是否可以,比如说,根据位置列表提取列。例如 如果我有以下清单: a=[12, 52, 68,45] 是否有方法仅从对齐方式中提取这些列align 一
align[:, :10] + align[:, -10:]
align
是MSA对象,使用
from Bio import AlignIO
align = AlignIO.read("Clustalw/opuntia.aln", "clustal")
但是,是否可以,比如说,根据位置列表提取列。例如
如果我有以下清单:
a=[12, 52, 68,45]
是否有方法仅从对齐方式中提取这些列align
一个名为bio3d
的R
包通过提供列表作为输入(通过执行:filtered\u align=align[,a]
)来方便地过滤对齐,但如果我能从python中使用它,那就太好了
谢谢根据,您可以使用
align[:, x]
因此,以下内容应该为您完成这项工作:
from Bio import AlignIO
align = AlignIO.read("Clustalw/opuntia.aln", "clustal")
indices = [12, 52, 68, 45]
columns_as_strings = []
for column in indices:
columns_as_strings.append(align[:, column])