예제 #1
0
파일: create.py 프로젝트: DRL/blobtools
def main():

    #main_dir = dirname(__file__)
    args = docopt(__doc__)
    fasta_f = args['--infile']
    fasta_type = args['--type']
    sam_fs = args['--sam']
    bam_fs = args['--bam']
    cov_fs = args['--cov']
    cas_fs = args['--cas']
    hit_fs = args['--hitsfile']
    prefix = args['--out']
    nodesDB_f = args['--db']
    names_f = args['--names']
    nodes_f = args['--nodes']
    taxrules = args['--taxrule']
    min_bitscore_diff = float(args['--min_diff'])
    tax_collision_random = args['--tax_collision_random']
    title = args['--title']

    # outfile
    out_f = BtIO.getOutFile("blobDB", prefix, "json")
    if not (title):
        title = out_f

    # coverage
    if not (fasta_type) and not bam_fs and not sam_fs and not cov_fs and not cas_fs:
        BtLog.error('1')
    cov_libs = [BtCore.CovLibObj('bam' + str(idx), 'bam', lib_f) for idx, lib_f in enumerate(bam_fs)] + \
           [BtCore.CovLibObj('sam' + str(idx), 'sam', lib_f) for idx, lib_f in enumerate(sam_fs)] + \
           [BtCore.CovLibObj('cas' + str(idx), 'cas', lib_f) for idx, lib_f in enumerate(cas_fs)] + \
           [BtCore.CovLibObj('cov' + str(idx), 'cov', lib_f) for idx, lib_f in enumerate(cov_fs)]

    # taxonomy
    hit_libs = [BtCore.HitLibObj('tax' + str(idx), 'tax', lib_f) for idx, lib_f in enumerate(hit_fs)]

    # Create BlobDB object
    blobDb = BtCore.BlobDb(title)
    blobDb.version = blobtools.__version__
    # Parse FASTA
    blobDb.parseFasta(fasta_f, fasta_type)

    # Parse nodesDB OR names.dmp, nodes.dmp
    nodesDB_default = join(blobtools.DATADIR, "nodesDB.txt")
    nodesDB, nodesDB_f = BtIO.parseNodesDB(nodes=nodes_f, names=names_f, nodesDB=nodesDB_f, nodesDBdefault=nodesDB_default)
    blobDb.nodesDB_f = nodesDB_f

    # Parse similarity hits
    if (hit_libs):
        blobDb.parseHits(hit_libs)
        blobDb.computeTaxonomy(taxrules, nodesDB, min_bitscore_diff, tax_collision_random)
    else:
        print BtLog.warn_d['0']

    # Parse coverage
    blobDb.parseCoverage(covLibObjs=cov_libs, no_base_cov=None)

    # Generating BlobDB and writing to file
    print BtLog.status_d['7'] % out_f
    BtIO.writeJson(blobDb.dump(), out_f)
예제 #2
0
파일: BtCore.py 프로젝트: DRL/blobtools
 def output(self):
     # meta
     meta = self.get_meta()
     meta_f = join(self.view_dir, "meta.json")
     BtIO.writeJson(meta, meta_f, indent=2)
     # gc
     gc_f = join(self.view_dir, "gc.json")
     print BtLog.status_d["13"] % (gc_f)
     BtIO.writeJson(self.gc, gc_f, indent=1)
     # length
     length_f = join(self.view_dir, "length.json")
     print BtLog.status_d["13"] % (length_f)
     BtIO.writeJson(self.length, length_f, indent=1)
     # names
     names_f = join(self.view_dir, "names.json")
     print BtLog.status_d["13"] % (names_f)
     BtIO.writeJson(self.names, names_f, indent=1)
     # cov
     cov_d = join(self.view_dir, "covs")
     BtIO.create_dir(directory=cov_d)
     for cov_lib, cov in self.covs.items():
         cov_f = join(cov_d, "%s.json" % cov_lib)
         print BtLog.status_d["13"] % (cov_f)
         BtIO.writeJson(cov, cov_f, indent=1)
     # tax
     taxrule_d = join(self.view_dir, "taxrule")
     BtIO.create_dir(directory=taxrule_d)
     for taxrule in self.tax:
         tax_d = join(taxrule_d, taxrule)
         BtIO.create_dir(directory=tax_d)
         for rank in self.tax[taxrule]:
             tax = self.tax[taxrule][rank]
             rank_f = join(tax_d, "%s.json" % rank)
             BtIO.writeJson(tax, rank_f, indent=1)
예제 #3
0
def main():

    #main_dir = dirname(__file__)
    args = docopt(__doc__)
    fasta_f = args['--infile']
    fasta_type = args['--type']
    sam_fs = args['--sam']
    bam_fs = args['--bam']
    cov_fs = args['--cov']
    cas_fs = args['--cas']
    hit_fs = args['--hitsfile']
    prefix = args['--out']
    nodesDB_f = args['--db']
    names_f = args['--names']
    nodes_f = args['--nodes']
    taxrules = args['--taxrule']
    min_bitscore_diff = float(args['--min_diff'])
    tax_collision_random = args['--tax_collision_random']
    title = args['--title']

    # outfile
    out_f = BtIO.getOutFile("blobDB", prefix, "json")
    if not (title):
        title = out_f

    # coverage
    if not (fasta_type
            ) and not bam_fs and not sam_fs and not cov_fs and not cas_fs:
        BtLog.error('1')
    cov_libs = [BtCore.CovLibObj('bam' + str(idx), 'bam', lib_f) for idx, lib_f in enumerate(bam_fs)] + \
           [BtCore.CovLibObj('sam' + str(idx), 'sam', lib_f) for idx, lib_f in enumerate(sam_fs)] + \
           [BtCore.CovLibObj('cas' + str(idx), 'cas', lib_f) for idx, lib_f in enumerate(cas_fs)] + \
           [BtCore.CovLibObj('cov' + str(idx), 'cov', lib_f) for idx, lib_f in enumerate(cov_fs)]

    # taxonomy
    hit_libs = [
        BtCore.HitLibObj('tax' + str(idx), 'tax', lib_f)
        for idx, lib_f in enumerate(hit_fs)
    ]

    # Create BlobDB object
    blobDb = BtCore.BlobDb(title)
    blobDb.version = blobtools.__version__
    # Parse FASTA
    blobDb.parseFasta(fasta_f, fasta_type)

    # Parse nodesDB OR names.dmp, nodes.dmp
    nodesDB_default = join(blobtools.DATADIR, "nodesDB.txt")
    nodesDB, nodesDB_f = BtIO.parseNodesDB(nodes=nodes_f,
                                           names=names_f,
                                           nodesDB=nodesDB_f,
                                           nodesDBdefault=nodesDB_default)
    blobDb.nodesDB_f = nodesDB_f

    # Parse similarity hits
    if (hit_libs):
        blobDb.parseHits(hit_libs)
        blobDb.computeTaxonomy(taxrules, nodesDB, min_bitscore_diff,
                               tax_collision_random)
    else:
        print BtLog.warn_d['0']

    # Parse coverage
    blobDb.parseCoverage(covLibObjs=cov_libs, no_base_cov=None)

    # Generating BlobDB and writing to file
    print BtLog.status_d['7'] % out_f
    BtIO.writeJson(blobDb.dump(), out_f)
예제 #4
0
 def output(self):
     # meta
     meta = self.get_meta()
     meta_f = join(self.view_dir, "meta.json")
     BtIO.writeJson(meta, meta_f, indent=2)
     # gc
     gc_f = join(self.view_dir, "gc.json")
     print BtLog.status_d['13'] % (gc_f)
     BtIO.writeJson(self.gc, gc_f, indent=1)
     # length
     length_f = join(self.view_dir, "length.json")
     print BtLog.status_d['13'] % (length_f)
     BtIO.writeJson(self.length, length_f, indent=1)
     # names
     names_f = join(self.view_dir, "names.json")
     print BtLog.status_d['13'] % (names_f)
     BtIO.writeJson(self.names, names_f, indent=1)
     # cov
     cov_d = join(self.view_dir, "covs")
     BtIO.create_dir(directory=cov_d)
     for cov_lib, cov in self.covs.items():
         cov_f = join(cov_d, "%s.json" % cov_lib)
         print BtLog.status_d['13'] % (cov_f)
         BtIO.writeJson(cov, cov_f, indent=1)
     # tax
     taxrule_d = join(self.view_dir, "taxrule")
     BtIO.create_dir(directory=taxrule_d)
     for taxrule in self.tax:
         tax_d = join(taxrule_d, taxrule)
         BtIO.create_dir(directory=tax_d)
         for rank in self.tax[taxrule]:
             tax = self.tax[taxrule][rank]
             rank_f = join(tax_d, "%s.json" % rank)
             BtIO.writeJson(tax, rank_f, indent=1)