add option to specify input format in fastaGrep

This commit is contained in:
2009-10-12 15:25:26 +00:00
parent 4c78587274
commit 067c5cdf74

View File

@ -1,24 +1,56 @@
#!/usr/local/bin/python
import re
import sys
from obitools.fasta import fastaIterator,formatFasta
from obitools.format.sequence.embl import emblIterator
from obitools.format.sequence.genbank import genbankIterator
from obitools.format.sequence.fnaqual import fnaFastaIterator
from obitools.options import getOptionManager
from obitools.options.bioseqfilter import addSequenceFilteringOptions
from obitools.options.bioseqfilter import sequenceFilterIteratorGenerator
def addInputFormatOption(optionManager):
optionManager.add_option('--genbank',
action="store_const", dest="seqinformat",
type="string",
default='fasta',
const='genbank',
help="input file is in genbank format")
optionManager.add_option('--embl',
action="store_const", dest="seqinformat",
type="string",
default='fasta',
const='embl',
help="input file is in embl format")
optionManager.add_option('--fna',
action="store_const", dest="seqinformat",
type="string",
default='fasta',
const='fna',
help="input file is in fasta nucleic format produced by 454 sequencer pipeline")
if __name__=='__main__':
optionParser = getOptionManager([addSequenceFilteringOptions],
entryIterator=fastaIterator)
optionParser = getOptionManager([addSequenceFilteringOptions])
(options, entries) = optionParser()
goodFasta = sequenceFilterIteratorGenerator(options)
for seq in goodFasta(entries):
if options.seqinformat=='fasta':
reader=fastaIterator
elif options.seqinformat=='genbank':
reader=genbankIterator
elif options.seqinformat=='embl':
reader=emblIterator
elif options.seqinformat=='fna':
reader=fnaFastaIterator
entries=reader(entries)
goodSeq = sequenceFilterIteratorGenerator(options)
for seq in goodSeq(entries):
print formatFasta(seq)