Exemplo n.º 1
0
def _build_logodata(options):

    if options.input_parser != "transfac":
        seqs = read_seq_data(options.fin,
                             options.input_parser.read,
                             alphabet=options.alphabet,
                             ignore_lower_case=options.ignore_lower_case)

        if options.reverse:
            seqs = SeqList([s.reverse() for s in seqs], seqs.alphabet)

        if options.complement:
            seqs = SeqList([Seq(s, seqs.alphabet).complement() for s in seqs],
                           seqs.alphabet)

        prior = parse_prior(options.composition, seqs.alphabet, options.weight)
        data = LogoData.from_seqs(seqs, prior)

    else:
        from corebio.matrix import Motif

        if options.ignore_lower_case:
            raise ValueError(
                "error: option --ignore-lower-case incompatible with matrix input"
            )

        #FIXME : implement
        if options.reverse:
            raise ValueError(
                "error: option --reverse incompatible with matrix input")

        #FIXME : implement
        if options.complement:
            raise ValueError(
                "error: option --complement incompatible with matrix input")

        motif = Motif.read_transfac(options.fin, alphabet=options.alphabet)
        prior = parse_prior(options.composition, motif.alphabet,
                            options.weight)
        data = LogoData.from_counts(motif.alphabet, motif, prior)

    return data
Exemplo n.º 2
0
        if options.ignore_lower_case:
            raise ValueError("error: option --ignore-lower-case incompatible with matrix input")
        if options.reverse: motif.reverse()
        if options.complement: motif.complement()

        prior = parse_prior( options.composition,motif.alphabet, options.weight)
        data = LogoData.from_counts(motif.alphabet, motif, prior)
    else :
        if options.reverse: 
            seqs = SeqList([s.reverse() for s in seqs], seqs.alphabet)
        
        if options.complement :
            seqs= SeqList( [Seq(s,seqs.alphabet).complement() for s in seqs], seqs.alphabet)

        prior = parse_prior( options.composition,seqs.alphabet, options.weight)
        data = LogoData.from_seqs(seqs, prior)




    return data
     
 
             
def _build_logoformat( logodata, opts) :
    """ Extract and process relevant option values and return a 
    LogoFormat object.""" 

    args = {}  
    direct_from_opts = [
        "stacks_per_line", 
Exemplo n.º 3
0
        if options.reverse: motif.reverse()
        if options.complement: motif.complement()

        prior = parse_prior(options.composition, motif.alphabet,
                            options.weight)
        data = LogoData.from_counts(motif.alphabet, motif, prior)
    else:
        if options.reverse:
            seqs = SeqList([s.reverse() for s in seqs], seqs.alphabet)

        if options.complement:
            seqs = SeqList([Seq(s, seqs.alphabet).complement() for s in seqs],
                           seqs.alphabet)

        prior = parse_prior(options.composition, seqs.alphabet, options.weight)
        data = LogoData.from_seqs(seqs, prior)

    return data


def _build_logoformat(logodata, opts):
    """ Extract and process relevant option values and return a 
    LogoFormat object."""

    args = {}
    direct_from_opts = [
        "stacks_per_line",
        "logo_title",
        "yaxis_label",
        "show_xaxis",
        "show_yaxis",
Exemplo n.º 4
0
        if options.complement:
            seqs = SeqList([Seq(s, seqs.alphabet).complement() for s in seqs], seqs.alphabet)

        if isCodon:
            if abs(options.codon_frame) > 1:
                beg = abs(options.codon_frame) - 1
                end = beg + int((len(seqs[0]) - beg) / 3) * 3
                seqs = SeqList([s[beg:end] for s in seqs], seqs.alphabet)
            if std_alphabets["dna"] == seqs.alphabet:
                seqs.alphabet = codon_dna_alphabet
            elif std_alphabets["rna"] == seqs.alphabet:
                seqs.alphabet = codon_rna_alphabet

        prior, compos = parse_prior(fin_compos, seqs.alphabet, fin_weight)
        data = LogoData.from_seqs(seqs, options.stats_func, prior, compos, second_data)
    return data


def _build_logodata(options):
    if options.second_data is not None:
        ngdata = _build_logodata_core(options.second_data, options.second_composition, options.second_weight, options)
    fin = options.fin
    if fin is None:
        from StringIO import StringIO

        fin = StringIO(sys.stdin.read())
    if options.second_data is not None:
        data = _build_logodata_core(fin, options.composition, options.weight, options, ngdata)
    else:
        data = _build_logodata_core(fin, options.composition, options.weight, options)