示例#1
0
def main():
    usage = "%prog [options] <TREES FILE> [<TREES FILE> [<TREES FILE> [...]]"
    parser = OptionParser(usage=usage, add_help_option=True)
    parser.add_option('-s',
                      '--schema',
                      action='store',
                      dest='schema',
                      default="nexus/newick",
                      help="file format of trees (default = '%s')")
    parser.add_option('-v',
                      '--verbose',
                      action='store_true',
                      dest='verbose',
                      default=False,
                      help="suppress progress messages")

    (opts, args) = parser.parse_args()

    support_filepaths = []
    missing = False
    for fpath in args:
        fpath = os.path.expanduser(os.path.expandvars(fpath))
        if not os.path.exists(fpath):
            sys.stderr.write('File not found: "%s".\n' % fpath)
            missing = True
        else:
            support_filepaths.append(fpath)

    if len(support_filepaths) == 0:
        sys.stderr.write("No valid tree files specified or found.\n")
        sys.exit(1)

    start_time = datetime.datetime.now()
    total_trees_read = 0
    for t in multi_tree_source_iter(support_filepaths, schema=opts.schema):
        total_trees_read += 1

    end_time = datetime.datetime.now()
    parse_time = end_time - start_time

    hours, mins, secs = str(end_time - start_time).split(":")
    parse_seconds = float(hours * 3600) + float(mins * 60) + float(secs)

    if not not opts.verbose:
        sys.stderr.write("---\n\n")

    sys.stdout.write("%s\t%s\n" %
                     ((", ".join(support_filepaths)), parse_seconds))

    if not not opts.verbose:
        sys.stderr.write("\nTotal trees parsed: %d\n" % total_trees_read)
        sys.stderr.write("          Began at: %s.\n" %
                         (start_time.isoformat(' ')))
        sys.stderr.write("          Ended at: %s.\n" %
                         (end_time.isoformat(' ')))
        sys.stderr.write(
            "        Parse time: %s hour(s), %s minute(s), %s second(s).\n" %
            (hours, mins, secs))
        sys.stderr.write("                   [= %s seconds]\n" % parse_seconds)
示例#2
0
 def testMixedNexusAndNewickSameTaxa(self):
     filenames = [datagen.reference_trees_filename(schema="newick"),
                  datagen.reference_trees_filename(schema="nexus"),
                  datagen.reference_trees_filename(schema="newick"),
                  datagen.reference_trees_filename(schema="nexus")]
     filepaths = [pathmap.tree_source_path(f) for f in filenames]
     taxon_set = self.ref_tree_list.taxon_set
     for idx, test_tree in enumerate(dataio.multi_tree_source_iter(filepaths, schema="nexus/newick", taxon_set=taxon_set)):
         self.assertDistinctButEqualTree(self.next_ref_tree(), test_tree, distinct_taxa=False, ignore_taxon_order=True)
     self.assertEqual(idx, 43)
def main():
    usage = "%prog [options] <TREES FILE> [<TREES FILE> [<TREES FILE> [...]]"
    parser = OptionParser(usage=usage, add_help_option=True)
    parser.add_option('-s', '--schema',
                      action='store',
                      dest='schema',
                      default="nexus/newick",
                      help="file format of trees (default = '%s')")
    parser.add_option('-v', '--verbose',
                      action='store_true',
                      dest='verbose',
                      default=False,
                      help="suppress progress messages")

    (opts, args) = parser.parse_args()

    support_filepaths = []
    missing = False
    for fpath in args:
        fpath = os.path.expanduser(os.path.expandvars(fpath))
        if not os.path.exists(fpath):
            sys.stderr.write('File not found: "%s".\n' % fpath)
            missing = True
        else:
            support_filepaths.append(fpath)

    if len(support_filepaths) == 0:
        sys.stderr.write("No valid tree files specified or found.\n")
        sys.exit(1)

    start_time = datetime.datetime.now()
    total_trees_read = 0
    for t in multi_tree_source_iter(support_filepaths, schema=opts.schema):
        total_trees_read += 1

    end_time = datetime.datetime.now()
    parse_time = end_time-start_time

    hours, mins, secs = str(end_time-start_time).split(":")
    parse_seconds = float(hours * 3600) + float(mins * 60) + float(secs)

    if not not opts.verbose:
        sys.stderr.write("---\n\n")

    sys.stdout.write("%s\t%s\n" % ((", ".join(support_filepaths)), parse_seconds))

    if not not opts.verbose:
        sys.stderr.write("\nTotal trees parsed: %d\n" % total_trees_read)
        sys.stderr.write("          Began at: %s.\n" % (start_time.isoformat(' ')))
        sys.stderr.write("          Ended at: %s.\n" % (end_time.isoformat(' ')))
        sys.stderr.write("        Parse time: %s hour(s), %s minute(s), %s second(s).\n" % (hours, mins, secs))
        sys.stderr.write("                   [= %s seconds]\n" % parse_seconds)
示例#4
0
 def testBurnIn(self):
     filenames = [datagen.reference_trees_filename(schema="newick"),
                  datagen.reference_trees_filename(schema="nexus"),
                  datagen.reference_trees_filename(schema="newick"),
                  datagen.reference_trees_filename(schema="nexus")]
     filepaths = [pathmap.tree_source_path(f) for f in filenames]
     taxon_set = self.ref_tree_list.taxon_set
     self.ref_index = 5
     for idx, test_tree in enumerate(dataio.multi_tree_source_iter(filepaths,
             schema="nexus/newick",
             taxon_set=taxon_set,
             tree_offset=5)):
         check_tree = self.next_ref_tree(restart_index=5)
         self.assertDistinctButEqualTree(check_tree, test_tree, distinct_taxa=False, ignore_taxon_order=True)
     self.assertEqual(idx, 23)
示例#5
0
 def testMixedNexusAndNewickSameTaxa(self):
     filenames = [
         datagen.reference_trees_filename(schema="newick"),
         datagen.reference_trees_filename(schema="nexus"),
         datagen.reference_trees_filename(schema="newick"),
         datagen.reference_trees_filename(schema="nexus")
     ]
     filepaths = [pathmap.tree_source_path(f) for f in filenames]
     taxon_set = self.ref_tree_list.taxon_set
     for idx, test_tree in enumerate(
             dataio.multi_tree_source_iter(filepaths,
                                           schema="nexus/newick",
                                           taxon_set=taxon_set)):
         self.assertDistinctButEqualTree(self.next_ref_tree(),
                                         test_tree,
                                         distinct_taxa=False,
                                         ignore_taxon_order=True)
     self.assertEqual(idx, 43)
示例#6
0
 def testBurnIn(self):
     filenames = [
         datagen.reference_trees_filename(schema="newick"),
         datagen.reference_trees_filename(schema="nexus"),
         datagen.reference_trees_filename(schema="newick"),
         datagen.reference_trees_filename(schema="nexus")
     ]
     filepaths = [pathmap.tree_source_path(f) for f in filenames]
     taxon_set = self.ref_tree_list.taxon_set
     self.ref_index = 5
     for idx, test_tree in enumerate(
             dataio.multi_tree_source_iter(filepaths,
                                           schema="nexus/newick",
                                           taxon_set=taxon_set,
                                           tree_offset=5)):
         check_tree = self.next_ref_tree(restart_index=5)
         self.assertDistinctButEqualTree(check_tree,
                                         test_tree,
                                         distinct_taxa=False,
                                         ignore_taxon_order=True)
     self.assertEqual(idx, 23)