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