[2] | 1 | #Dan Blankenberg |
---|
| 2 | import sys |
---|
| 3 | |
---|
| 4 | def main(): |
---|
| 5 | input_filename = sys.argv[1] |
---|
| 6 | output_filename = sys.argv[2] |
---|
| 7 | identifier_col = int( sys.argv[3] ) - 1 |
---|
| 8 | sequence_col = int( sys.argv[4] ) - 1 |
---|
| 9 | quality_col = int( sys.argv[5] ) - 1 |
---|
| 10 | |
---|
| 11 | max_col = max( identifier_col, sequence_col, quality_col ) |
---|
| 12 | num_reads = None |
---|
| 13 | fastq_read = None |
---|
| 14 | skipped_lines = 0 |
---|
| 15 | out = open( output_filename, 'wb' ) |
---|
| 16 | for num_reads, line in enumerate( open( input_filename ) ): |
---|
| 17 | fields = line.rstrip( '\n\r' ).split( '\t' ) |
---|
| 18 | if len( fields ) > max_col: |
---|
| 19 | out.write( "@%s\n%s\n+\n%s\n" % ( fields[identifier_col], fields[sequence_col], fields[quality_col] ) ) |
---|
| 20 | else: |
---|
| 21 | skipped_lines += 1 |
---|
| 22 | |
---|
| 23 | out.close() |
---|
| 24 | if num_reads is None: |
---|
| 25 | print "Input was empty." |
---|
| 26 | else: |
---|
| 27 | print "%i tabular lines were written as FASTQ reads. Be sure to use the FASTQ Groomer tool on this output before further analysis." % ( num_reads + 1 - skipped_lines ) |
---|
| 28 | |
---|
| 29 | if __name__ == "__main__": main() |
---|