Mercurial > repos > rreumerman > snptools
comparison trams.py @ 7:8de0ffc2166f draft default tip
Uploaded
| author | rreumerman |
|---|---|
| date | Mon, 10 Jun 2013 09:40:54 -0400 |
| parents | bd5692103d5b |
| children |
comparison
equal
deleted
inserted
replaced
| 6:e711f63e99ff | 7:8de0ffc2166f |
|---|---|
| 2 transl_table = 11 | 2 transl_table = 11 |
| 3 intro_message = ''' +------------------------------------------------------------------+ | 3 intro_message = ''' +------------------------------------------------------------------+ |
| 4 | Tool for Rapid Annotation of Microbial SNPs (TRAMS): a simple | | 4 | Tool for Rapid Annotation of Microbial SNPs (TRAMS): a simple | |
| 5 | program for rapid annotation of genomic variation in prokaryotes | | 5 | program for rapid annotation of genomic variation in prokaryotes | |
| 6 | | | 6 | | |
| 7 | Developed by: Richard A. Reumerman, Paul R. Herron, | | 7 | Developed by: Richard A. Reumerman, Nick P. Tucker, Paul R. | |
| 8 | Paul A. Hoskisson and Vartul Sangal | | 8 | Herron, Paul A. Hoskisson and Vartul Sangal | |
| 9 +------------------------------------------------------------------+\n''' | 9 +------------------------------------------------------------------+\n''' |
| 10 ################# | 10 ################# |
| 11 | 11 |
| 12 import sys | 12 import sys |
| 13 import time | 13 import time |
| 193 straininfo[j][codon[i][j+2][0]] += 1# Counting; | 193 straininfo[j][codon[i][j+2][0]] += 1# Counting; |
| 194 elif strain[1] in ['a','g','c','t']: | 194 elif strain[1] in ['a','g','c','t']: |
| 195 codon[i][j+2] = ['MNP',strain[1],'',''] | 195 codon[i][j+2] = ['MNP',strain[1],'',''] |
| 196 straininfo[j]['mnps'] += 1 | 196 straininfo[j]['mnps'] += 1 |
| 197 new_codons[j] = new_codon_calc(new_codons[j],strain[1],pos_in_cod) | 197 new_codons[j] = new_codon_calc(new_codons[j],strain[1],pos_in_cod) |
| 198 elif strain[0] == 'Allele missing': codon[i][j+2] = strain | 198 elif strain[0] == 'Missing allele': |
| 199 codon[i][j+2] = strain | |
| 199 else: codon[i][j+2] = ['']*4 | 200 else: codon[i][j+2] = ['']*4 |
| 200 | 201 |
| 201 for line in codon[1:-1]: | 202 for line in codon[1:-1]: |
| 202 if line != '': write_output(line) | 203 if line != '': write_output(line) |
| 203 | 204 |
| 287 | 288 |
| 288 # Loop through SNPs from array and process them; | 289 # Loop through SNPs from array and process them; |
| 289 props = {}# Properties of a feature; | 290 props = {}# Properties of a feature; |
| 290 prev_snp = ''# Position of previous SNP; | 291 prev_snp = ''# Position of previous SNP; |
| 291 to_write = []# Information of current SNP; | 292 to_write = []# Information of current SNP; |
| 293 allowed_chars = ['g','a','t','c','','-'] | |
| 292 compl_bases = {'a':'t','t':'a','g':'c','c':'g'} | 294 compl_bases = {'a':'t','t':'a','g':'c','c':'g'} |
| 293 firstsnp = True# First snp of region, or of codon in cases of 3 positions in codon mutated; | 295 firstsnp = True# First snp of region, or of codon in cases of 3 positions in codon mutated; |
| 294 prev_start=j=k=0 | 296 prev_start=j=k=0 |
| 295 overlap_snps = [] | 297 overlap_snps = [] |
| 296 codon = ['']*5# Array of codon positions. First item is position of first base of codon in the gene; | 298 codon = ['']*5# Array of codon positions. First item is position of first base of codon in the gene; |
| 327 | 329 |
| 328 | 330 |
| 329 snp_entry[-1] = snp_entry[-1].rstrip()# Remove newline character at end of line; | 331 snp_entry[-1] = snp_entry[-1].rstrip()# Remove newline character at end of line; |
| 330 | 332 |
| 331 # Prevent crash upon encounter nonstandard base character; | 333 # Prevent crash upon encounter nonstandard base character; |
| 332 if snp_entry[1] not in ['a','g','c','t']:# Ref base | 334 if snp_entry[1].lower() not in allowed_chars:# Ref base |
| 333 i += 1 | 335 i += 1 |
| 334 continue | 336 continue |
| 335 for m,base in enumerate(snp_entry[2:],2): | 337 for m,base in enumerate(snp_entry[2:],2): |
| 336 if base.lower() not in ['a','g','c','t']: | 338 if base.lower() not in allowed_chars: |
| 337 snp_entry[m] = '' | 339 snp_entry[m] = '' |
| 338 # Crash prevented | 340 # Crash prevented |
| 339 | 341 |
| 340 mnp=in_feat=False | 342 mnp=in_feat=False |
| 341 snp_feat = region[2] | 343 snp_feat = region[2] |
| 407 | 409 |
| 408 for l, snp in enumerate(snp_entry[2:]):# Loop through SNPs/strains; | 410 for l, snp in enumerate(snp_entry[2:]):# Loop through SNPs/strains; |
| 409 | 411 |
| 410 snp = snp.lower() | 412 snp = snp.lower() |
| 411 if snp == '':# Empty cell; | 413 if snp == '':# Empty cell; |
| 412 to_write.append(['','','','']) | 414 to_write.append(['']*4) |
| 413 continue | 415 continue |
| 414 | 416 |
| 415 if snp == '-': # Feature not present in this strain; | 417 if snp == '-': # Feature not present in this strain; |
| 416 to_write.append(['Allele missing','','','']) | 418 to_write.append(['Missing allele','','','']) |
| 417 continue | 419 continue |
| 418 | 420 |
| 419 if snp_feat == -1:# Intergenic; | 421 if snp_feat == -1:# Intergenic; |
| 420 if snp == ref_base.lower(): | 422 if snp == ref_base.lower(): |
| 421 to_write.append(['']*4) | 423 to_write.append(['']*4) |
