diff --git a/src/obitools/format/options.py b/src/obitools/format/options.py index f566b2b..fea0fb7 100644 --- a/src/obitools/format/options.py +++ b/src/obitools/format/options.py @@ -18,10 +18,16 @@ from obitools.format._format import printOutput from array import array from itertools import chain +import sys def addInputFormatOption(optionManager): + optionManager.add_option('--rank', + action="store_true", dest='addrank', + default=False, + help="add a rank attribute to the sequence " + "indicating the sequence position in the input data") optionManager.add_option('--genbank', action="store_const", dest="seqinformat", default=None, @@ -127,6 +133,15 @@ def autoEntriesIterator(options): return iterator + def withRankIterator(formatIterator): + def iterator(lineiterator): + rank=0 + for s in formatIterator(lineiterator): + rank+=1 + s['rank']=rank + yield s + + return iterator def withQualIterator(qualityfile): options.outputFormater=formatFastq options.outputFormat="fastq" @@ -206,7 +221,9 @@ def autoEntriesIterator(options): reader=withQualIterator(qualfile) options.outputFormater=formatFastq options.outputFormat="fastq" - + + if options.addrank: + reader = withRankIterator(reader) return reader