|
37 | 37 | sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'gene', genestart, genestop, '.', strand, '.', 'ID='+k+';'))
|
38 | 38 | sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'mRNA', genestart, genestop, '.', strand, '.', 'ID='+k+'-T1;Parent='+k+';'))
|
39 | 39 | last_index = len(v)
|
40 |
| - for i in range(0,last_index): |
41 |
| - start = v[i][0] |
42 |
| - stop = v[i][1] |
43 |
| - if i == 0: #first CDS, set phase to 0, calculate next phase |
44 |
| - phase = '0' |
| 40 | + phase = 0 |
| 41 | + if strand == '+': |
| 42 | + for i in range(0,last_index): |
| 43 | + start = v[i][0] |
| 44 | + stop = v[i][1] |
| 45 | + sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'exon', start, stop, '.', strand, '.', 'ID='+k+':exon'+str(i+1)+';Parent='+k+'-T1;')) |
| 46 | + sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'CDS', start, stop, '.', strand, str(phase), 'ID=cds.'+k+';Parent='+k+'-T1;')) |
45 | 47 | diff = int(stop) - int(start) + 1
|
46 | 48 | next_phase = (int(phase) - diff) % 3
|
47 |
| - else: |
48 |
| - phase = next_phase |
| 49 | + phase = next_phase |
| 50 | + else: |
| 51 | + for i in reversed(range(0,last_index)): |
| 52 | + start = v[i][0] |
| 53 | + stop = v[i][1] |
| 54 | + sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'exon', start, stop, '.', strand, '.', 'ID='+k+':exon'+str(i+1)+';Parent='+k+'-T1;')) |
| 55 | + sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'CDS', start, stop, '.', strand, phase, 'ID=cds.'+k+';Parent='+k+'-T1;')) |
49 | 56 | diff = int(stop) - int(start) + 1
|
50 | 57 | next_phase = (int(phase) - diff) % 3
|
51 |
| - |
52 |
| - sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'exon', start, stop, '.', strand, '.', 'ID='+k+':exon'+str(i+1)+';Parent='+k+'-T1;')) |
53 |
| - sys.stdout.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (scaffold, 'FGENESH', 'CDS', start, stop, '.', strand, phase, 'ID=cds.'+k+';Parent='+k+'-T1;')) |
| 58 | + phase = next_phase |
0 commit comments