gpt4 book ai didi

python - 用 biopython 重命名交错的 fastq 头文件

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:41 25 4
gpt4 key购买 nike

为了便于使用和与另一个下游管道兼容,我尝试使用 biopython 更改 fastq 序列 ID 的名称。例如......从看起来像这样的标题开始:

@D00602:32:H3LN7BCXX:1:1101:1205:2112 OP:i:1
@D00602:32:H3LN7BCXX:1:1101:1205:2112 OP:i:2
@D00602:32:H3LN7BCXX:1:1101:1182:2184 OP:i:1
@D00602:32:H3LN7BCXX:1:1101:1182:2184 OP:i:2

像这样的标题:

@000000000000001  OP:i:1
@000000000000001 OP:i:2
@000000000000002 OP:i:1
@000000000000002 OP:i:2

我有一些代码,但我似乎无法对交替标题进行倒计时(即 1、1、2、2、3、3 等)

如有任何帮助,我们将不胜感激。谢谢。

from Bio import SeqIO
import sys

FILE = sys.argv[1]

#Initialize numbering system at one
COUNT = 1

#Create a new dictionary for new sequence IDs
new_records=[]

for seq_record in SeqIO.parse(FILE, "fastq"):
header = '{:0>15}'.format(COUNT)
COUNT += 1
print(header)
seq_record.description =
seq_record.description.replace(seq_record.id, "")
seq_record.id = header
new_records.append(seq_record)
SeqIO.write(new_records, FILE, "fastq")

*seq_record不包含"OP:i:1"信息

最佳答案

假设您希望所有标签都被复制,您所要做的就是将计数除以重复的数量并返回向下舍入的值,如下所示。

from Bio import SeqIO
import sys

FILE = sys.argv[1]

#Initialize numbering system at one
COUNT = 0

#Create a new dictionary for new sequence IDs
new_records=[]

for seq_record in SeqIO.parse(FILE, "fastq"):
header = '{:0>15}'.format(COUNT//2+1)
COUNT += 1
print(header)
seq_record.description =
seq_record.description.replace(seq_record.id, "")
seq_record.id = header
new_records.append(seq_record)
SeqIO.write(new_records, FILE, "fastq")

关于python - 用 biopython 重命名交错的 fastq 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735732/

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