Beispiel #1
0
def main(argv, cfg_file):
    cmd = Command('count', cfg_file=cfg_file)
    cmd.parse_args(argv)
    database.init_db(cmd.primer_db, create_if_missing=True)
    if cmd.input:
        kmers = swga.primers.parse_kmer_file(cmd.input)
        count_specific_kmers(kmers, **cmd.args)
    else:
        count_kmers(**cmd.args)
Beispiel #2
0
def main(argv, cfg_file):
    cmd = Command('find_sets', cfg_file=cfg_file)
    score_cmd = Command('score', cfg_file=cfg_file)
    cmd.parse_args(argv)
    score_cmd.parse_args(argv)

    init_db(cmd.primer_db)

    # We need to clear all the previously-used sets each time due to uniqueness
    # constraints
    allsets = Set.select()
    if allsets.count() > 0:
        if not cmd.force:
            click.confirm("Remove all previously-found sets?", abort=True)
        for s in progress.bar(allsets, expected_size=allsets.count()):
            s.primers.clear()
            s.delete_instance()

    make_graph(cmd.max_dimer_bp, graph_fname)

    swga.message("Now finding sets. If nothing appears, try relaxing your parameters.")
    if cmd.workers <= 1:
        setlines = setfinder.find_sets(
            cmd.min_bg_bind_dist,
            cmd.min_size,
            cmd.max_size,
            cmd.bg_genome_len,
            graph_fp=graph_fname)
    else:
        setlines = setfinder.mp_find_sets(
            nprocesses=cmd.workers,
            graph_fp=graph_fname,
            min_bg_bind_dist=cmd.min_bg_bind_dist,
            min_size=cmd.min_size,
            max_size=cmd.max_size,
            bg_genome_len=cmd.bg_genome_len)

    score_sets(
        setlines,
        cmd.fg_genome_fp,
        score_cmd.score_expression,
        cmd.max_fg_bind_dist,
        cmd.max_sets)
Beispiel #3
0
def main(argv, cfg_file):
    cmd = Command('export', cfg_file=cfg_file)
    cmd.parse_args(argv)
    header = not cmd.no_header
    what = cmd.what
    database.init_db(cmd.primer_db)

    if what in ['set', 'sets']:
        sets = get_items(Set, cmd.ids, cmd.order_by, cmd.limit, cmd.descending)
        export(Set, sets, cmd.output, header)

    if what in ['primer', 'primers']:
        primers = get_items(
            Primer, cmd.ids, cmd.order_by, cmd.limit, cmd.descending)
        export(Primer, primers, cmd.output, header)

    if "bed" in what:
        outpath = cmd.output_folder if cmd.output_folder else os.getcwd()
        sets = get_items(Set, cmd.ids, cmd.order_by, cmd.limit, cmd.descending)
        if what == "bedfile":
            for set in sets:
                swga.message(
                    "Exporting set {} and associated primers as bedfiles..."
                    .format(set._id))
                bedfile = BedFile(set, cmd.fg_genome_fp)
                bedfile.write(outpath)
        elif what == "bedgraph":
            for set in sets:
                swga.message("Exporting set {} as bedgraph...".format(set._id))
                bedgraph = BedGraph(
                    set=set,
                    fg_genome_fp=cmd.fg_genome_fp,
                    opts_str=cmd.opts_str,
                    window_size=cmd.window_size,
                    step_size=cmd.step_size)
                bedgraph.write(outpath)