首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于对齐的Trim序列

基于对齐的Trim序列
EN

Stack Overflow用户
提问于 2019-01-08 16:14:18
回答 1查看 415关注 0票数 1

我正在尝试编辑由ClustalW生成的MSA (MultipleSequence准直)文件,以便在协商一致的文件之前修剪序列,使用BioPython。xxx指的是此处不相关的其他基地。

下面是I/O示例:

输入

代码语言:javascript
复制
ITS_primer_fw               --------------------------------CGCGTCCACTMTCCAGTT
RBL67ITS_full_sequence      CCACCCCAACAAGGGCGGCCACGCGGTCCGCTCGCGTCCACTCTCCAGTTxxxxxxxxxxxxxxxxxxxxxxx
PRL2010                     ACACCCCCGAAAGGGCGTCC------CCTGCTCGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
BBF32_3                     ACACACCCACAAGGGCGAGCAGGCG----GCTCGCGTCCACTATCCAGTTxxxxxxxxxxxxxx
BBFCG32                     CAACACCACACCGGGCGAGCGGG-------CTCGCGTCCACTGTCGAGTTxxxxxxxxxxxxxxxxxxxxxx

预期产出

代码语言:javascript
复制
ITS_primer_fw               CGCGTCCACTMTCCAGTT
RBL67ITS_full_sequence      CGCGTCCACTCTCCAGTTxxxxxxxxxxxxxxxxxxxx
PRL2010                     CGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxxxx
BBF32_3                     CGCGTCCACTATCCAGTTxxxxxxxxxxxxxxxxxxx
BBFCG32                     CGCGTCCACTGTCGAGTTxxxxxxxxxxxxxxxxxxxx

AlignIO的文档代码描述了一种通过将对齐处理为数组来提取序列的方法。在这个例子中

代码语言:javascript
复制
align = AlignIO.read(input_file, "clustal")
sub_alignment = align[:,20:]

从第20个核苷酸开始,我能够提取所有序列(:)所做的子比对。我正在寻找一种方法来取代20在这个例子中的第一个核苷酸的位置一致的序列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-09 16:50:40

多亏了一位生物星用户找到了答案。

抽搐正在查看列,以找到起点,这将是预期后的最后'-‘。默认情况下,我的对齐第一行是最短的,并以'-‘开头,然后再对齐。

下面是代码:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54095661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档