def trim(run): # (re) create the trim status file run.trim_status_file_h = open(run.trim_status_file_name, "w") # do the trim work mytrim = TrimRun(run) # pass True to write out the straight fasta file of all trimmed non-deleted seqs # Remember: this is before chimera checking trim_codes = mytrim.trimrun(True) trim_results_dict = {} if trim_codes[0] == 'SUCCESS': # setup to write the status new_lane_keys = trim_codes[2] trim_results_dict['status'] = "success" trim_results_dict['new_lane_keys'] = new_lane_keys logger.debug("Trimming finished successfully") # write the data files mytrim.write_data_files(new_lane_keys) run.trim_status_file_h.write(json.dumps(trim_results_dict)) run.trim_status_file_h.close() else: logger.debug("Trimming finished ERROR") trim_results_dict['status'] = "error" trim_results_dict['code1'] = trim_codes[1] trim_results_dict['code2'] = trim_codes[2] run.trim_status_file_h.write(json.dumps(trim_results_dict)) run.trim_status_file_h.close() sys.exit()
def trim(runobj): # def is in utils.py # open_zipped_directory(runobj.run_date, runobj.output_dir) # (re) create the trim status file runobj.trim_status_file_h = open(runobj.trim_status_file_name, "w") idx_keys = get_keys(runobj) # do the trim work mytrim = TrimRun(runobj, idx_keys) # pass True to write out the straight fasta file of all trimmed non-deleted seqs # Remember: this is before chimera checking # trim_codes should alwas be a tuple with 3 elements! if runobj.vamps_user_upload: trim_codes = mytrim.trimrun_vamps(True) else: if runobj.platform == 'illumina': trim_codes = mytrim.filter_illumina() # trim_codes = mytrim.trim_illumina(file_list = trim_codes[2]) elif runobj.platform == '454': trim_codes = mytrim.trimrun_454(True) elif runobj.platform == 'ion-torrent': trim_codes = mytrim.trimrun_ion_torrent(True) else: trim_codes = ('ERROR', 'No Platform Found', '') trim_results_dict = {} if trim_codes[0] == 'SUCCESS': # setup to write the status new_lane_keys = trim_codes[2] trimmed_seq_count = trim_codes[1] if trimmed_seq_count == 0 or trimmed_seq_count == '0': trim_results_dict['status'] = "ERROR" logger.debug("Trimming finished: ERROR: no seqs passed trim") else: trim_results_dict['status'] = "success" logger.debug("Trimming finished successfully") trim_results_dict['new_lane_keys'] = new_lane_keys trim_results_dict['trimmed_seq_count'] = trimmed_seq_count # write the data files mytrim.write_data_files(new_lane_keys) runobj.trim_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.run_status_file_h.close() else: logger.debug("Trimming finished ERROR") trim_results_dict['status'] = "ERROR" trim_results_dict['code1'] = trim_codes[1] trim_results_dict['code2'] = trim_codes[2] runobj.trim_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.run_status_file_h.close() sys.exit("Trim Error")
def trim(runobj): # def is in utils.py #open_zipped_directory(runobj.run_date, runobj.output_dir) # (re) create the trim status file runobj.trim_status_file_h = open(runobj.trim_status_file_name, "w") idx_keys = get_keys(runobj) # do the trim work mytrim = TrimRun(runobj, idx_keys) # pass True to write out the straight fasta file of all trimmed non-deleted seqs # Remember: this is before chimera checking # trim_codes should alwas be a tuple with 3 elements! if runobj.vamps_user_upload: trim_codes = mytrim.trimrun_vamps(True) else: if runobj.platform == 'illumina': trim_codes = mytrim.filter_illumina() # trim_codes = mytrim.trim_illumina(file_list = trim_codes[2]) elif runobj.platform == '454': trim_codes = mytrim.trimrun_454(True) elif runobj.platform == 'ion-torrent': trim_codes = mytrim.trimrun_ion_torrent(True) else: trim_codes = ('ERROR','No Platform Found','') trim_results_dict = {} if trim_codes[0] == 'SUCCESS': # setup to write the status new_lane_keys = trim_codes[2] trimmed_seq_count = trim_codes[1] if trimmed_seq_count == 0 or trimmed_seq_count == '0': trim_results_dict['status'] = "ERROR" logger.debug("Trimming finished: ERROR: no seqs passed trim") else: trim_results_dict['status'] = "success" logger.debug("Trimming finished successfully") trim_results_dict['new_lane_keys'] = new_lane_keys trim_results_dict['trimmed_seq_count'] = trimmed_seq_count # write the data files mytrim.write_data_files(new_lane_keys) runobj.trim_status_file_h.write(json.dumps(trim_results_dict)+"\n") runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict)+"\n") runobj.run_status_file_h.close() else: logger.debug("Trimming finished ERROR") trim_results_dict['status'] = "ERROR" trim_results_dict['code1'] = trim_codes[1] trim_results_dict['code2'] = trim_codes[2] runobj.trim_status_file_h.write(json.dumps(trim_results_dict)+"\n") runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict)+"\n") runobj.run_status_file_h.close() sys.exit("Trim Error")
def setUp(self): """ set up data used in the tests. setUp is called before each test function execution. """ args = unittestargs() run = Run('./unittesting/unittest10.ini') self.unittest_trimrun = TrimRun(run,'./unittesting',args) trim_code = self.unittest_trimrun.trimrun() self.id1 = 'GFADN4I02JYSYM' self.seq1 = 'CGTGATGGGCGTAAAGTGGGTTTAAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAG\ AATTGCCATTGATACTGTAGATCTTGAGTGCAATCGAGGTGGTTGGAATACGTAGTGTAGCTGTGAAATGCATAGATATTACGTAGAACACC\ AATTGCGAAGGCAGATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCG\ TAAACGATGGATACTAGGTGTTCGGGATAATTGAGTCCTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGG\ ATGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAAT\ GTTAGTGACGTACCGTGAAAGCGGTATTTCTTCGGACACGAAACA' self.trim_info1 = self.unittest_trimrun.do_trim(self.id1,self.seq1) # proximal deleted: self.id2 = 'GFADN4I02HD8KF' self.seq2 = 'TGGGCCAACGCGAAAAACCTTACCTCGGAGGTTACCCCCTTCGGTGCCGCAGCTAACGCATTAAGTACTCCG\ CCTGGGGAGTACGCACGCAAGTGTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGTAGCGGAGCATGTGGTTTAATTCGAAGCAACGCGAA\ GAACCTTACCTAGGCTTGACATCCTTCTGACCGAGGATTAATCTCCTCAGGTGGTGCATGGGCTGTCG' self.trim_info2 = self.unittest_trimrun.do_trim(self.id2,self.seq2) # deleted for key: self.id3 = 'GFADN4I02HD8KF' self.seq3 = 'TGGCCAACGCGAAAAACCTTACCTCGGAGGTTACCCCCTTCGGTGCCGCAGCTAACGCATTAAGTACTCCG\ CCTGGGGAGTACGCACGCAAGTGTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGTAGCGGAGCATGTGGTTTAATTCGAAGCAACGCGAA\ GAACCTTACCTAGGCTTGACATCCTTCTGACCGAGGATTAATCTCCTCAGGTGGTGCATGGGCTGTCG' self.trim_info3 = self.unittest_trimrun.do_trim(self.id3,self.seq3) # deleted for N: self.id4 = 'GFADN4I02JYSYM' self.seq4 = 'CGTGATGGGCGTAAAGTGGGTTTAAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAG\ AATTGCCATTGATACTGTAGATCTTGAGTGCAATCGAGGTGGTTGGAATACGTAGTGTAGCTGTGAAATGCATAGATATTACGTAGAACACC\ AATTGCGAAGGCAGATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCG\ TAAACGATGGATACTAGGTGTTCGGGATAATTGAGTCCNTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGG\ ATGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAAT\ GTTAGTGACGTACCGTGAAAGCGGTATTTCTTCGGACACGAAACA' self.trim_info4 = self.unittest_trimrun.do_trim(self.id4,self.seq4) # deleted for distal: self.id5 = 'GFADN4I02I64C9' self.seq5 = 'TGGGCTGGGCGTAAAGCGAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAGAATTG\ CCATTGATACTGTAGATCTTGAGTGCAATCGAGGTTTTGGTTGGAATACGTAGTGTAGCGGTGAAATGCATAGATATTACGTAGAACACCAATTGCGAAGGCA\ GATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGGATACTAGGTGT\ TCGGGATAATTGAGTCCTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGGATGAAACTCAAAGGAATTGACGGGGGCCC\ GCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAATGTTAGT' self.trim_info5 = self.unittest_trimrun.do_trim(self.id5,self.seq5)
def trim(runobj): # def is in utils.py # open_zipped_directory(runobj.run_date, runobj.output_dir) # (re) create the trim status file runobj.trim_status_file_h = open(runobj.trim_status_file_name, "w") # do the trim work mytrim = TrimRun(runobj) # pass True to write out the straight fasta file of all trimmed non-deleted seqs # Remember: this is before chimera checking if runobj.platform == "illumina": trim_codes = mytrim.trimrun_illumina(True) elif runobj.platform == "454": trim_codes = mytrim.trimrun_454(True) elif runobj.platform == "ion-torrent": trim_codes = mytrim.trimrun_ion_torrent(True) else: trim_codes = ["ERROR", "No Platform Found"] trim_results_dict = {} if trim_codes[0] == "SUCCESS": # setup to write the status new_lane_keys = trim_codes[2] trim_results_dict["status"] = "success" trim_results_dict["new_lane_keys"] = new_lane_keys logger.debug("Trimming finished successfully") # write the data files mytrim.write_data_files(new_lane_keys) runobj.trim_status_file_h.write(json.dumps(trim_results_dict)) runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.run_status_file_h.close() else: logger.debug("Trimming finished ERROR") trim_results_dict["status"] = "error" trim_results_dict["code1"] = trim_codes[1] trim_results_dict["code2"] = trim_codes[2] runobj.trim_status_file_h.write(json.dumps(trim_results_dict)) runobj.trim_status_file_h.close() runobj.run_status_file_h.write(json.dumps(trim_results_dict) + "\n") runobj.run_status_file_h.close() sys.exit("Trim Error")
class TestTrimFunctions(unittest.TestCase): def setUp(self): """ set up data used in the tests. setUp is called before each test function execution. """ args = unittestargs() run = Run('./unittesting/unittest10.ini') self.unittest_trimrun = TrimRun(run,'./unittesting',args) trim_code = self.unittest_trimrun.trimrun() self.id1 = 'GFADN4I02JYSYM' self.seq1 = 'CGTGATGGGCGTAAAGTGGGTTTAAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAG\ AATTGCCATTGATACTGTAGATCTTGAGTGCAATCGAGGTGGTTGGAATACGTAGTGTAGCTGTGAAATGCATAGATATTACGTAGAACACC\ AATTGCGAAGGCAGATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCG\ TAAACGATGGATACTAGGTGTTCGGGATAATTGAGTCCTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGG\ ATGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAAT\ GTTAGTGACGTACCGTGAAAGCGGTATTTCTTCGGACACGAAACA' self.trim_info1 = self.unittest_trimrun.do_trim(self.id1,self.seq1) # proximal deleted: self.id2 = 'GFADN4I02HD8KF' self.seq2 = 'TGGGCCAACGCGAAAAACCTTACCTCGGAGGTTACCCCCTTCGGTGCCGCAGCTAACGCATTAAGTACTCCG\ CCTGGGGAGTACGCACGCAAGTGTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGTAGCGGAGCATGTGGTTTAATTCGAAGCAACGCGAA\ GAACCTTACCTAGGCTTGACATCCTTCTGACCGAGGATTAATCTCCTCAGGTGGTGCATGGGCTGTCG' self.trim_info2 = self.unittest_trimrun.do_trim(self.id2,self.seq2) # deleted for key: self.id3 = 'GFADN4I02HD8KF' self.seq3 = 'TGGCCAACGCGAAAAACCTTACCTCGGAGGTTACCCCCTTCGGTGCCGCAGCTAACGCATTAAGTACTCCG\ CCTGGGGAGTACGCACGCAAGTGTGAAACTCAAAGGAATTGACGGGGACCCGCACAAGTAGCGGAGCATGTGGTTTAATTCGAAGCAACGCGAA\ GAACCTTACCTAGGCTTGACATCCTTCTGACCGAGGATTAATCTCCTCAGGTGGTGCATGGGCTGTCG' self.trim_info3 = self.unittest_trimrun.do_trim(self.id3,self.seq3) # deleted for N: self.id4 = 'GFADN4I02JYSYM' self.seq4 = 'CGTGATGGGCGTAAAGTGGGTTTAAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAG\ AATTGCCATTGATACTGTAGATCTTGAGTGCAATCGAGGTGGTTGGAATACGTAGTGTAGCTGTGAAATGCATAGATATTACGTAGAACACC\ AATTGCGAAGGCAGATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCG\ TAAACGATGGATACTAGGTGTTCGGGATAATTGAGTCCNTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGG\ ATGAAACTCAAAGGAATTGACGGGGGCCCGCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAAT\ GTTAGTGACGTACCGTGAAAGCGGTATTTCTTCGGACACGAAACA' self.trim_info4 = self.unittest_trimrun.do_trim(self.id4,self.seq4) # deleted for distal: self.id5 = 'GFADN4I02I64C9' self.seq5 = 'TGGGCTGGGCGTAAAGCGAAGGGTGCGTAGGCGGATTTATAAGTCAGTGGTGAAAGCCTGCGGCTCAACCGTAGAATTG\ CCATTGATACTGTAGATCTTGAGTGCAATCGAGGTTTTGGTTGGAATACGTAGTGTAGCGGTGAAATGCATAGATATTACGTAGAACACCAATTGCGAAGGCA\ GATCACTAGATTGTAACTGACGCTGAGGCACGAAAGCGTGGGGAGCGAACAGGATTAGATACCCTGGTAGTCCACGCCGTAAACGATGGATACTAGGTGT\ TCGGGATAATTGAGTCCTGAGTGCCCAAGCGAAAGCGATAAGTATCCCACCTGGGGAGTACGTCCGCAAGGATGAAACTCAAAGGAATTGACGGGGGCCC\ GCACAAGCGGTGGAGCATGTGGTTTAATTCGATGATACGCGAGGAACCTTACCTGGGCTAAATGTTAGT' self.trim_info5 = self.unittest_trimrun.do_trim(self.id5,self.seq5) def test_lane_key(self): self.assertEqual(self.trim_info1['lane_key'],'1_CGTGA') def test_primer_name(self): self.assertEqual(self.trim_info1['primer_name'],'565F') def test_eaxct_right(self): self.assertEqual(self.trim_info1['exact_right'],'AGGTGGT') def test_exact_left(self): self.assertEqual(self.trim_info1['exact_left'],'TGGGCGTAAAG') def test_deleted(self): self.assertEqual(self.trim_info1['deleted'],False) def test_orientation(self): self.assertEqual(self.trim_info1['orientation'],'+') #################################################################### def test_deleted_proximal(self): self.assertEqual(self.trim_info2['deleted'],True) self.assertEqual(self.trim_info2['delete_reason'],'proximal') def test_deleted_key(self): self.assertEqual(self.trim_info3['deleted'],True) self.assertEqual(self.trim_info3['delete_reason'],'runkey') def test_deleted_N(self): self.assertEqual(self.trim_info4['deleted'],True) self.assertEqual(self.trim_info4['delete_reason'],'N') def test_deleted_distal(self): print self.trim_info5 self.assertEqual(self.trim_info5['deleted'],True) self.assertEqual(self.trim_info5['delete_reason'],'distal')