Ejemplo n.º 1
0
def build_config(path):
    "Tries to build the config dictionary for the given path"
    try:
        config = parsing.initial(getabspath(path))
    except:
        logger.exception(
            "Error parsing gbk: %r", getabspath(path, raise_on_missing=False))
        raise

    parsing.detect_format(config)
    for k in VALID_KEYS:
        v = request.args.get(k)
        if v:
            nv = parsing.number(v)
            config[k] = v if nv is None else nv
    parsing.endBase(config)
    parsing.mycoplasma(config)

    # fixup nucleotides list
    if 'nucleotides' in request.args:
        config['nucleotides'] = request.args.getlist('nucleotides')

    for key in MAGIC_PARAMS:
        if key in request.args:
            config[key] = request.args[key]

    return config
Ejemplo n.º 2
0
def translate():
    "Translate arbitrary sequence"
    try:
        # table 4 is for mycoplasma ala:
        # http://www.ncbi.nlm.nih.gov/Taxonomy/Utils/wprintgc.cgi
        table = 1
        config = request.get_json()
        if parsing.mycoplasma(config):
            app.logger.debug('using mycoplasma table=4')
            table = 4
        seq = Bio.Seq.Seq(config.get('seq'))
        rc = parsing.tobool(config.get('complement'))
        if rc:
            seq = seq.reverse_complement()
        trans = Bio.Seq.translate(seq, table)
        return jsonify({
            'seq': str(seq),
            'trans': str(trans)})
    except Exception as e:
        logger.exception('Error While Translating')
        return flask.make_response(repr(e), 500)