Mercurial > repos > devteam > split_paired_reads
comparison split_paired_reads.py @ 0:e7d1ffdbb9b6 draft default tip
Uploaded
| author | devteam |
|---|---|
| date | Wed, 21 Aug 2013 13:20:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:e7d1ffdbb9b6 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 """ | |
| 4 Split fixed length paired end reads | |
| 5 """ | |
| 6 | |
| 7 import os, sys | |
| 8 | |
| 9 if __name__ == '__main__': | |
| 10 | |
| 11 infile = sys.argv[1] | |
| 12 outfile_end1 = open(sys.argv[2], 'w') | |
| 13 outfile_end2 = open(sys.argv[3], 'w') | |
| 14 | |
| 15 i = 0 | |
| 16 | |
| 17 for line in file( infile ): | |
| 18 line = line.rstrip() | |
| 19 | |
| 20 if not line: | |
| 21 continue | |
| 22 | |
| 23 end1 = '' | |
| 24 end2 = '' | |
| 25 | |
| 26 line_index = i % 4 | |
| 27 | |
| 28 if line_index == 0: | |
| 29 end1 = line + '/1' | |
| 30 end2 = line + '/2' | |
| 31 | |
| 32 elif line_index == 1: | |
| 33 seq_len = len(line)/2 | |
| 34 end1 = line[0:seq_len] | |
| 35 end2 = line[seq_len:] | |
| 36 | |
| 37 elif line_index == 2: | |
| 38 end1 = line + '/1' | |
| 39 end2 = line + '/2' | |
| 40 | |
| 41 else: | |
| 42 qual_len = len(line)/2 | |
| 43 end1 = line[0:qual_len] | |
| 44 end2 = line[qual_len:] | |
| 45 | |
| 46 outfile_end1.write('%s\n' %(end1)) | |
| 47 outfile_end2.write('%s\n' %(end2)) | |
| 48 | |
| 49 i += 1 | |
| 50 | |
| 51 if i % 4 != 0 : | |
| 52 sys.stderr.write("WARNING: Number of lines in the input file was not divisible by 4.\nCheck consistency of the input fastq file.\n") | |
| 53 outfile_end1.close() | |
| 54 outfile_end2.close() |
