首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何根据位置输出FASTA头或染色体索引图?

Python:如何根据位置输出FASTA头或染色体索引图?
EN

Stack Overflow用户
提问于 2016-04-15 07:46:07
回答 1查看 129关注 0票数 1

我有一个代码,它可以帮助我从左向右移动大小为5的窗口。该文件采用fasta格式,标头>染色体,后面跟着染色体的索引。我想根据确切的索引输出标题索引号。有谁可以帮我?

代码语言:javascript
复制
from Bio import SeqIO

with open("test1_out.fasta","w") as f:
        for seq_record in SeqIO.parse("test1.fasta", "fasta"):
            for i in range(len(seq_record.seq) - 4) :
               f.write(">" + str(seq_record.id) + "\n")
               f.write(str(seq_record.seq[i:i+5]) + "\n")

test1.

代码语言:javascript
复制
>chr1:1-8 
ATCGCGTC
>chr2:1-10
ATTTTCGCGA

实际输出

代码语言:javascript
复制
>chr1:1-8
ATCGC
>chr1:1-8
TCGCG
>chr1:1-8
CGCGT
>chr1:1-8
GCGTC
>chr2:1-10
ATTTT
>chr2:1-10
TTTTC
>chr2:1-10
TTTCG
>chr2:1-10
TTCGC
>chr2:1-10
TCGCG
>chr2:1-10
CGCGA

期望输出

代码语言:javascript
复制
>chr1:1-5
ATCGC
>chr1:2-6
TCGCG
>chr1:3-7
CGCGT
>chr1:4-8
GCGTC
>chr2:1-5
ATTTT
>chr2:2-6
TTTTC
>chr2:3-7
TTTCG
>chr2:4-8
TTCGC
>chr2:5-9
TCGCG
>chr2:6-10
CGCGA
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 08:12:21

您只需修改标题写作:

代码语言:javascript
复制
seq_name = seq_record.id.split(":")[0]  # Get the "chr1"
for i in range(len(seq_record.seq) - 4):        
    seq_coords = "{}-{}".format(i + 1, i + 5)  # Make the coordinates

    f.write(">" + seq_name + ":" + seq_coords + "\n")  # Print them both
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36641180

复制
相关文章

相似问题

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