在整个目录上使用Biopython SeqIO.convert

时间:2015-06-26 14:44:09

标签: python biopython fastq

我有51个具有宏基因组序列数据的文件,我想在Windows中使用Biopython脚本将其从fastq转换为fasta。模块SeqIO.convert可以轻松转换单独指定的文件,但我无法弄清楚如何转换整个目录。单独做的文件并不是太多,但我还是想学习。

我是Biopython的新手,所以请原谅我的无知。 This convo很有帮助,但我还是无法将目录从fastq转换为fasta。

这是我尝试运行的代码:

#modules- 
import sys
import re
import os
import fileinput

from Bio import SeqIO

#define directory
Directory = "FastQ”

#convert files  
def process(filename):
  return SeqIO.convert(filename, "fastq", "files.fa", filename + ".fasta",   "fasta", alphabet= IUPAC.ambiguous_dna)

1 个答案:

答案 0 :(得分:0)

你需要迭代目录中的文件并进行转换,所以假设你的目录是FastQ并且你正在从正确的文件夹(即你的目录所在的文件夹)调用你的脚本,因为你正在使用相对路径),您需要执行以下操作:

def process(directory):
    filelist = os.listdir(directory)
    for f in filelist:
        SeqIO.convert(f, "fastq", f.replace(".fastq",".fasta"), "fasta", alphabet= IUPAC.ambiguous_dna)

然后你会在你的主要部分调用你的脚本:

 my_directory = "FastQ"
 process(my_directory)

我认为这应该有用。