def merge_results(self): ''' TODO: implement this ''' assert isinstance(self.root_problem,SeppProblem) '''Generate single extended alignment''' fullExtendedAlignment = self.root_problem.get_children()[0].jobs["pplacer"].get_attribute("full_extended_alignment_object") for pp in self.root_problem.get_children()[1:]: extended_alignment = pp.jobs["pplacer"].get_attribute("full_extended_alignment_object") fullExtendedAlignment.merge_in(extended_alignment,convert_to_string=True) self.results = fullExtendedAlignment mergeinput = [] '''Append main tree to merge input''' mergeinput.append("%s;" %(self.root_problem.subtree.compose_newick(labels = True))) jsons = [] for pp in self.root_problem.get_children(): assert isinstance(pp,SeppProblem) if (pp.get_job_result_by_name("pplacer") is None): continue '''Append subset trees and json locations to merge input''' mergeinput.append("%s;\n%s" %(pp.subtree.compose_newick(labels = True), pp.get_job_result_by_name("pplacer"))) mergeinput.append("") mergeinput.append("") meregeinputstring = "\n".join(mergeinput) mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(meregeinputstring, self.get_output_filename("placement.json")) mergeJsonJob.run()
def merge_results(self): assert isinstance(self.root_problem, SeppProblem) '''Generate single extended alignment''' fullExtendedAlignment = ExtendedAlignment( self.root_problem.fragments.keys()) # self.root_problem.get_children()[0].jobs[get_placement_job_name(0)]\ # .get_attribute("full_extended_alignment_object") for pp in self.root_problem.get_children(): for i in range(0, self.root_problem.fragment_chunks): extended_alignment = pp.jobs[ get_placement_job_name(i)].get_attribute( "full_extended_alignment_object") fullExtendedAlignment.merge_in( extended_alignment, convert_to_string=True) self.results = fullExtendedAlignment mergeinput = [] '''Append main tree to merge input''' mergeinput.append( "%s;" % (self.root_problem.subtree.compose_newick(labels=True))) for pp in self.root_problem.get_children(): assert isinstance(pp, SeppProblem) for i in range(0, self.root_problem.fragment_chunks): if (pp.get_job_result_by_name( get_placement_job_name(i)) is None): continue '''Append subset trees and json locations to merge input''' mergeinput.append( "%s;\n%s" % ( pp.subtree.compose_newick(labels=True), pp.get_job_result_by_name(get_placement_job_name(i)))) mergeinput.append("") mergeinput.append("") meregeinputstring = "\n".join(mergeinput) mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(meregeinputstring, self.get_output_filename("placement.json")) mergeJsonJob.run()
def testMerge(self): sys.argv = [sys.argv[0]] stdindata = open(get_data_path("tmp/tempmerge")).read() # write path of seppJsonMerger.jar into configuration setattr(sepp.config.options(), 'jsonmerger', Namespace( path=get_data_path("../../../tools/merge/seppJsonMerger.jar"))) mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(stdindata.replace( 'data/tmp/pplacer.extended', os.path.dirname(get_data_path("tmp/tempmerge")) + '/pplacer.extended'), get_data_path("tmp/mergedfile")) mergeJsonJob.run()
def merge_results(self): assert isinstance(self.root_problem, SeppProblem) '''Generate single extended alignment''' fullExtendedAlignment = ExtendedAlignment( self.root_problem.fragments.keys()) # self.root_problem.get_children()[0].jobs[get_placement_job_name(0)]\ # .get_attribute("full_extended_alignment_object") for pp in self.root_problem.get_children(): for i in range(0, self.root_problem.fragment_chunks): extended_alignment = pp.jobs[get_placement_job_name( i)].get_attribute("full_extended_alignment_object") fullExtendedAlignment.merge_in(extended_alignment, convert_to_string=True) self.results = fullExtendedAlignment mergeinput = [] '''Append main tree to merge input''' mergeinput.append( "%s;" % (self.root_problem.subtree.compose_newick(labels=True))) for pp in self.root_problem.get_children(): assert isinstance(pp, SeppProblem) for i in range(0, self.root_problem.fragment_chunks): if (pp.get_job_result_by_name(get_placement_job_name(i)) is None): continue '''Append subset trees and json locations to merge input''' mergeinput.append( "%s;\n%s" % (pp.subtree.compose_newick(labels=True), pp.get_job_result_by_name(get_placement_job_name(i)))) mergeinput.append("") mergeinput.append("") meregeinputstring = "\n".join(mergeinput) mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(meregeinputstring, self.get_output_filename("placement.json")) mergeJsonJob.run()
def testMerge(self): sys.argv = [sys.argv[0]] stdindata = open("data/tmp/tempmerge").read() mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(stdindata, "data/tmp/mergedfile") mergeJsonJob.run()
def merge_results(self): assert isinstance(self.root_problem, SeppProblem) '''Generate single extended alignment''' fullExtendedAlignment = ExtendedAlignment( self.root_problem.fragments.keys()) # self.root_problem.get_children()[0].jobs[get_placement_job_name(0)]\ # .get_attribute("full_extended_alignment_object") for pp in self.root_problem.get_children(): for i in range(0, self.root_problem.fragment_chunks): extended_alignment = pp.jobs[get_placement_job_name( i)].get_attribute("full_extended_alignment_object") fullExtendedAlignment.merge_in(extended_alignment, convert_to_string=True) self.results = fullExtendedAlignment # IF only one placement subset, no need to go to java if len(self.root_problem.get_children()) == 1: import json mergeinput = [] for pp in self.root_problem.get_children(): assert isinstance(pp, SeppProblem) for i in range(0, self.root_problem.fragment_chunks): if (pp.get_job_result_by_name(get_placement_job_name(i)) is None): continue '''Append subset trees and json locations to merge input''' with open( pp.get_job_result_by_name( get_placement_job_name(i))) as f: mergeinput.append(json.load(f)) _LOG.info( "There are %d fragment chunks on a single placement subset" % len(mergeinput)) result = mergeinput[0] for i in range(1, len(mergeinput)): result["placements"] = result["placements"] + mergeinput[i][ "placements"] with open(self.get_output_filename("placement.json"), 'w') as f: json.dump(result, f, sort_keys=True, indent=4) else: mergeinput = [] '''Append main tree to merge input''' mergeinput.append( "%s;" % (self.root_problem.subtree.compose_newick(labels=True))) for pp in self.root_problem.get_children(): assert isinstance(pp, SeppProblem) for i in range(0, self.root_problem.fragment_chunks): if (pp.get_job_result_by_name(get_placement_job_name(i)) is None): continue '''Append subset trees and json locations to merge input''' mergeinput.append( "%s;\n%s" % (pp.subtree.compose_newick(labels=True), pp.get_job_result_by_name(get_placement_job_name(i)))) mergeinput.append("") mergeinput.append("") meregeinputstring = "\n".join(mergeinput) _LOG.debug(mergeinput) mergeJsonJob = MergeJsonJob() mergeJsonJob.setup(meregeinputstring, self.get_output_filename("placement.json")) mergeJsonJob.run()