args['strip'], is_enum=args['enumerate']) dsb_baseline = DomainSetBuilder(cons_baseline, args['win'], args['max_g'], args['strip'], is_enum=args['enumerate']) # dsb_baseline = DomainSetBuilder(win=args['win'], max_gap=args['max_g'], # is_enum=args['enumerate'], consensus=cons_baseline, # is_strip=args['strip']) domains_query = dsb_query.build() # build abundance counts domains_baseline = dsb_baseline.build() status_message('Identifying domains', 'OK') db = DomainAbundanceBuilder(query=domains_query, baseline=domains_baseline) domains = db.build() # build contingency matrices dpp = DomainPrettyPrinter(domains = domains, pval = args['p'], out=args['o']) dpp.display() # pretty-print domains status_message('Domain over-representation computation complete ', 'OK') else: args.update({'f':args['query'],'f2':args['baseline'],'a':None}) input_state = InputWrapperState(args) #input_state.assign_matrix() # parse in-built or custom matrix targets = input_state.parse_fasta(input_state.fname) baselines = input_state.parse_fasta(input_state.fname2) if not args['overlap']: target_names = list([target.name for target in targets]) baselines = list([baseline for baseline in baselines if baseline.name not in target_names]) extract_and_analyze_domains(targets,baselines,input_state) status_message('Domain analysis via multiple runs complete ', 'OK') except (IOError, KeyboardInterrupt, IndexError) as e: print(str(e))
consensus_object = msa_driver.build_consensus(args['thresh'],args['type']) # Write MSA and consensus to file consensus_fact = ConsensusFilterFactory(msa_driver,consensus_object) consensus_fact.write(fname=args['build']) #consensus_fact = ConsensusFilterFactory(driver.alns, driver.composite, args['thresh'], args['type']) #consensus_fact.build_consensus() #consensus_fact.write(fname=args['build']) # write analysis if __name__ == '__main__': try: args = AlignmentCommandParser().parse_args() AlignmentArgumentValidator(args) # test all arguments are correct print('spaghetti - v.' + str(version) + '\n=================') input_state = InputWrapperState(args) input_state.assign_matrix() # parse in-built or custom matrix targets = input_state.parse_fasta(input_state.fname) # next, parse fasta file if input_state.fname2 is None: queries = targets else: queries = input_state.parse_fasta(input_state.fname2) if args['mode'] == 'local': run_local(targets, queries, input_state) elif args['mode'] == 'msa': # start multiple-sequence alignment (MSA) run_msa(queries, input_state) except (IOError, KeyboardInterrupt, IndexError) as e: print(str(e)+'\n')