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
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",
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",
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)