comparison get_codon_frequency.py @ 16:fcfdb2607cb8 draft

Uploaded
author rlegendre
date Wed, 13 May 2015 04:34:59 -0400
parents 702e60e819c2
children c87c40e642af
comparison
equal deleted inserted replaced
15:702e60e819c2 16:fcfdb2607cb8
323 # # standard deviation = absolute value of diffence between replicats of cond1 323 # # standard deviation = absolute value of diffence between replicats of cond1
324 std_cond1.append(std(array([(cond1_1[i] * 100 / sum11), (cond1_2[i] * 100 / sum12)]))) 324 std_cond1.append(std(array([(cond1_1[i] * 100 / sum11), (cond1_2[i] * 100 / sum12)])))
325 # # cond2 = moyenne of replicats cond1divided by max 325 # # cond2 = moyenne of replicats cond1divided by max
326 cond2_val[i] = ((cond2_1[i] / sum21 + cond2_2[i] / sum22) / 2) 326 cond2_val[i] = ((cond2_1[i] / sum21 + cond2_2[i] / sum22) / 2)
327 cond2[i] = ((cond2_1[i] + cond2_2[i]) / 2) 327 cond2[i] = ((cond2_1[i] + cond2_2[i]) / 2)
328 # # standard deviation = absolute value of diffence between replicats of cond2 328 # # standard deviation = absolute value of difference between replicats of cond2
329 std_cond2.append(std(array([((cond2_1[i]) * 100 / sum21), ((cond2_2[i]) * 100 / sum22)]))) 329 std_cond2.append(std(array([((cond2_1[i]) * 100 / sum21), ((cond2_2[i]) * 100 / sum22)])))
330 # # max value for each codon 330 # # max value for each codon
331 max_val.append(max((cond1_1[i] / sum11 + cond1_2[i] / sum12) / 2, (cond2_1[i] / sum21 + cond2_2[i] / sum22) / 2)) 331 max_val.append(max((cond1_1[i] / sum11 + cond1_2[i] / sum12) / 2, (cond2_1[i] / sum21 + cond2_2[i] / sum22) / 2))
332 332
333 # for graph design 333 # for graph design
377 expected = array(cond2_count) 377 expected = array(cond2_count)
378 observed = array(list(cond2.itervalues())) 378 observed = array(list(cond2.itervalues()))
379 379
380 # write result 380 # write result
381 with open(outfile, 'w') as out : 381 with open(outfile, 'w') as out :
382 out.write('Codon\tRaw_' + c1 + '\tRaw_' + c2 + '\tNorm_' + c1 + '\tNorm_' + c2 + '\tFC\tFC_' + c1 + '\tFC_' + c2 + '\n') 382 out.write('Codon\tRaw_' + c1 + '\tRaw_' + c2 + '\tNorm_' + c1 + '\tNorm_' + c2 + '\tFC(Mut/WT)\n')
383 for i in codon_sorted: 383 for i in codon_sorted:
384 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t' + str(cond2_norm[i] / cond1_norm[i]) + '\t' + str((cond2_1[i] / sum21) / (cond1_1[i] / sum11)) + '\t' + str((cond2_2[i] / sum22) / (cond1_1[i] / sum11)) + '\n') 384 ## if global foldchange is equal to zero
385 if cond1_norm[i] == 0 and cond2_norm[i] == 0:
386 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t1.0\n')
387 elif cond1_norm[i] == 0 :
388 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t0.0\n')
389 else:
390 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t' + str(cond2_norm[i] / cond1_norm[i]) + '\n')
385 chi = stats.chisquare(observed, expected) 391 chi = stats.chisquare(observed, expected)
386 out.write('Khi2 test\n') 392 out.write('Khi2 test\n')
387 out.write('T : ' + str(chi[0]) + '; p-value : ' + str(chi[1]) + '\n') 393 out.write('T : ' + str(chi[0]) + '; p-value : ' + str(chi[1]) + '\n')
388 394
389 395
482 488
483 # write result 489 # write result
484 with open(outfile, 'w') as out : 490 with open(outfile, 'w') as out :
485 out.write('Codon\tRaw_' + c1 + '\tRaw_' + c2 + '\tNorm_' + c1 + '\tNorm_' + c2 + '\tFC(Mut/WT)\n') 491 out.write('Codon\tRaw_' + c1 + '\tRaw_' + c2 + '\tNorm_' + c1 + '\tNorm_' + c2 + '\tFC(Mut/WT)\n')
486 for i in codon_sorted: 492 for i in codon_sorted:
487 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t' + str(cond2_norm[i] / cond1_norm[i]) + '\n') 493 if cond1_norm[i] == 0 and cond2_norm[i] == 0:
494 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t1.0\n')
495 elif cond1_norm[i] == 0 :
496 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t0.0\n')
497 else:
498 out.write(i + '\t' + str(cond1[i]) + '\t' + str(cond2[i]) + '\t' + str(cond1_norm[i]) + '\t' + str(cond2_norm[i]) + '\t' + str(cond2_norm[i] / cond1_norm[i]) + '\n')
488 out.write('Khi2 test\n') 499 out.write('Khi2 test\n')
489 chi = stats.chisquare(observed, expected) 500 chi = stats.chisquare(observed, expected)
490 out.write('T : ' + str(chi[0]) + '; p-value : ' + str(chi[1]) + '\n') 501 out.write('T : ' + str(chi[0]) + '; p-value : ' + str(chi[1]) + '\n')
491 502
492 # # get max value for each codon for histogram 503 # # get max value for each codon for histogram
604 pl.axhline(y=1,color='r') 615 pl.axhline(y=1,color='r')
605 pl.xticks(index, label, rotation=90) 616 pl.xticks(index, label, rotation=90)
606 pl.ylabel('Foldchange of codon occupancy') 617 pl.ylabel('Foldchange of codon occupancy')
607 ax.yaxis.set_ticks_position('left') 618 ax.yaxis.set_ticks_position('left')
608 ax.xaxis.set_ticks_position('bottom') 619 ax.xaxis.set_ticks_position('bottom')
620 pl.ylim(-1,3)
609 pl.title(site+" site") 621 pl.title(site+" site")
610 pl.savefig(dirout + '/fc_codons.png', format="png", dpi=340) 622 pl.savefig(dirout + '/fc_codons.png', format="png", dpi=340)
611 623
612 624
613 def __main__(): 625 def __main__():