def test_create_temp_test_seq_file(self): temp_dir_name=self.subSeq_dir HMM_choice_ID= [('1000269','k__Bacteria'),('1001007','k__Bacteria')] seq_file=open(self.querySeq_f,'r') create_temp_test_seq_file(temp_dir_name,HMM_choice_ID, seq_file) expected=open(temp_dir_name+'/k__Bacteria.fasta') actual=">1000269 HMPMockV1.1.Even2_365838\nTACGTAGGTCCCGAGCGTTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTAGATAAGTCTGAAGTTAAATACTGTGGCTTAACCATAGTACGCTTTGGAAACCGTTTAACTTGAGTGCAAGAGTGGAGAGTGAAATTCCATGTG\n>1001007 HMPMockV1.2.Staggered1_1181026\nTACGTCGGTGGCAAGCGTTATCCGGAATTATTGGGCGTAAAGCGCGCGTAGGCGGTTTTTTAAGTCTGATGTGAAAGCCCACGGCTCACCCGTGGAGGGTCATTGGAAACTGGAAAACTTGAGTGCAGAAGAGGAAAGTGGAATTCCATGT\n" self.assertEqual(actual,expected.read())
def main(): option_parser, opts, args =\ parse_command_line_parameters(**script_info) Query_collection=[] rank_collection=[] Query_dict=defaultdict(list) temp_dir_name=tempfile.mkdtemp(prefix='root_') level=0 for root,dirs,files in os.walk(opts.input_HMM_fp): print root #print ".................." path_to_db=os.path.join(root,'db') path_to_result=os.path.join(root,'result.out') if level==0: stdout,stderr,return_value = qcli_system_call('cmscan -E 1 '+path_to_db+' '+opts.input_query_fp+' > '+path_to_result) if return_value != 0: print 'Stdout:\n%s\nStderr:%s\n' % (stdout,stderr) exit(1) HMM_result=open(path_to_result,'U') HMM_choice_list,HMM_Query_list,HMM_choice_list_with_ID=search_HMM(HMM_result) create_temp_test_seq_file(temp_dir_name,HMM_choice_list_with_ID,open(opts.input_query_fp,'U')) rank_collection.extend(HMM_choice_list) Query_collection.extend(HMM_Query_list) for Query_ID, rank in HMM_choice_list_with_ID: Query_dict[Query_ID].append(rank) else: if os.path.basename(root) in rank_collection: path_to_test_seq=os.path.join(temp_dir_name,os.path.basename(root)+'.fasta') stdout,stderr,return_value = qcli_system_call('cmscan -E 1 '+path_to_db+' '+path_to_test_seq+' > '+path_to_result) if return_value != 0: print 'Stdout:\n%s\nStderr:%s\n' % (stdout,stderr) exit(1) HMM_result=open(path_to_result,'U') HMM_choice_list,HMM_Query_list,HMM_choice_list_with_ID=search_HMM(HMM_result) create_temp_test_seq_file(temp_dir_name,HMM_choice_list_with_ID,open(path_to_test_seq,'U')) rank_collection.extend(HMM_choice_list) for Query_ID, rank in HMM_choice_list_with_ID: Query_dict[Query_ID].append(rank) level+=1 shutil.rmtree(temp_dir_name) taxonomy_assignment_to_query_seq(Query_dict,Query_collection,opts.output_fp)