Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
 def testMerge(self):
     sys.argv = [sys.argv[0]]
     stdindata = open("data/tmp/tempmerge").read()
     mergeJsonJob = MergeJsonJob()
     mergeJsonJob.setup(stdindata, "data/tmp/mergedfile")
     mergeJsonJob.run()
Ejemplo n.º 7
0
    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()