首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行多个fastq文件的代码?

如何运行多个fastq文件的代码?
EN

Stack Overflow用户
提问于 2015-10-14 15:41:44
回答 1查看 809关注 0票数 1

我将为文件夹中的多个fastq文件运行以下代码。在一个文件夹中,我有不同的fastq文件;首先,我必须读取一个文件并执行所需的操作,然后将结果存储在一个单独的文件中。fastq,然后读取第二个文件,执行相同的操作,并将结果保存到新的第二个file.fastq中。对文件夹中的所有文件重复相同的过程。

我该怎么做?有人能给我个办法吗?

代码语言:javascript
复制
from Bio.SeqIO.QualityIO import FastqGeneralIterator
fout=open("prova_FiltraN_CE_filt.fastq","w")
fin=open("prova_FiltraN_CE.fastq","rU")
maxN=0
countall=0
countincl=0
with open("prova_FiltraN_CE.fastq", "rU") as handle:
    for (title, sequence, quality) in FastqGeneralIterator(handle):
        countN = sequence.count("N", 0, len(sequence))
        countall+=1
        if countN==maxN:
            fout.write("@%s\n%s\n+\n%s\n" % (title, sequence, quality))
            countincl+=1
fin.close
fout.close
print countall, countincl
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-14 17:11:21

我想下面的人会做你想做的事。我所做的是将您的代码变成一个函数(并将其修改为我认为更正确的代码),然后对指定文件夹中的每个.fastq文件调用该函数。输出文件名是从找到的输入文件生成的。

代码语言:javascript
复制
from Bio.SeqIO.QualityIO import FastqGeneralIterator
import glob
import os

def process(in_filepath, out_filepath):
    maxN = 0
    countall = 0
    countincl = 0
    with open(in_filepath, "rU") as fin:
        with open(out_filepath, "w") as fout:
            for (title, sequence, quality) in FastqGeneralIterator(fin):
                countN = sequence.count("N", 0, len(sequence))
                countall += 1
                if countN == maxN:
                    fout.write("@%s\n%s\n+\n%s\n" % (title, sequence, quality))
                    countincl += 1
    print os.path.split(in_filepath)[1], countall, countincl

folder = "/path/to/folder"  # folder to process
for in_filepath in glob.glob(os.path.join(folder, "*.fastq")):
    root, ext = os.path.splitext(in_filepath)
    if not root.endswith("_filt"):  # avoid processing existing output files
        out_filepath = root + "_filt" + ext
        process(in_filepath, out_filepath)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33129811

复制
相关文章

相似问题

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