gpt4 book ai didi

python - 根据比对修剪序列

转载 作者:太空宇宙 更新时间:2023-11-03 21:22:59 32 4
gpt4 key购买 nike

我正在尝试使用 BioPython 编辑由 ClustalW 生成的 MSA(多序列比对)文件,以在共识序列之前修剪序列。xxx 指的是与此处不相关的其他碱基

这是示例 I/O:

输入

ITS_primer_fw               --------------------------------CGCGTCCACTMTCCAGTT
RBL67ITS_full_sequence CCACCCCAACAAGGGCGGCCACGCGGTCCGCTCGCGTCCACTCTCCAGTTxxxxxxxxxxxxxxxxxxxxxxx
PRL2010 ACACCCCCGAAAGGGCGTCC------CCTGCTCGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BBF32_3 ACACACCCACAAGGGCGAGCAGGCG----GCTCGCGTCCACTATCCAGTTxxxxxxxxxxxxxx
BBFCG32 CAACACCACACCGGGCGAGCGGG-------CTCGCGTCCACTGTCGAGTTxxxxxxxxxxxxxxxxxxxxxx

预期输出

ITS_primer_fw               CGCGTCCACTMTCCAGTT
RBL67ITS_full_sequence CGCGTCCACTCTCCAGTTxxxxxxxxxxxxxxxxxxxx
PRL2010 CGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxxxx
BBF32_3 CGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxx
BBFCG32 CGCGTCCACTGTCGAGTTxxxxxxxxxxxxxxxxxxxx

AlignIO 的文档代码仅描述了一种通过将比对视为数组来提取序列的方法。在此示例中

align = AlignIO.read(input_file, "clustal")
sub_alignment = align[:,20:]

我能够提取从第 20 个核苷酸开始的所有序列 (:) 组成的子对齐。我正在寻找一种方法,将示例中的 20 替换为共有序列的第一个核苷酸的位置。

最佳答案

感谢 Biostars 用户的帮助,找到了答案。

抽搐正在查看列以找到起点,这将如预期的在最后一个“-”之后。默认情况下,我的对齐第一行是最短的,并且在对齐良好之前以“-”开头。

所以这是代码:

aln = AlignIO.read(input_file, "clustal")
for col in range(aln.get_alignment_length()): # search into column
res = list(aln[:,col])
if not '-' in res:
position = col # find start point
print('First full column is {}'.format(col))
break
print(aln[:,position::]) # print the whole alignment starting from the position variable found

关于python - 根据比对修剪序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095661/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com