def chemspectra_predict_by_peaks_form(): layout = request.form.get('layout', default=None) peaks = request.form.get('peaks', default='{}') peaks = json.loads(peaks) shift = request.form.get('shift', default='{}') shift = json.loads(shift) molfile = FileContainer(request.files['molfile']) mm = MoleculeModel(molfile, layout, decorate=True) if not peaks: spectrum = FileContainer(request.files['spectrum']) if spectrum and layout == '13C': cv = TraModel(spectrum, molfile=molfile, params={'ext': 'jdx'}).to_converter() peaks = parse_array_to_dict_xys(cv.edit_peaks) if (not peaks) or (not molfile): abort(400) outcome = InferModel.predict_nmr( mm=mm, layout=layout, peaks=peaks, shift=shift ) if outcome: return jsonify(outcome) abort(400)
def __simulate_nmr(jbcv, molfile): layout = jbcv.ncl mm = MoleculeModel(molfile, layout, decorate=True) jbcv.simu_peaks = InferModel.simulate_nmr( mm=mm, layout=layout, ) return jbcv
def __simulate_nmr(jbcv, molfile): layout = jbcv.ncl mm = None try: mm = MoleculeModel(molfile, layout, decorate=True) except Exception as error: return {'invalid_molfile': True} jbcv.simu_peaks = InferModel.simulate_nmr( mm=mm, layout=layout, ) return jbcv
def chemspectra_predict_infrared(): layout = request.form.get('layout', default=None) spectrum = FileContainer(request.files['spectrum']) molfile = FileContainer(request.files['molfile']) mm = MoleculeModel(molfile, layout) outcome = InferModel.predict_ir( mm=mm, spectrum=spectrum ) if outcome: return jsonify(outcome) abort(400)
def chemspectra_predict_ms(): layout = request.form.get('layout', default=None) spectrum = FileContainer(request.files['spectrum']) molfile = FileContainer(request.files['molfile']) mm = MoleculeModel(molfile, layout) tm = TraModel(spectrum, molfile=None, params={'ext': 'jdx'}).to_composer() outcome = InferModel.predict_ms( mm=mm, tm=tm ) if outcome: return jsonify(outcome) abort(400)
def chemspectra_predict_by_peaks_json(): payload = request.json layout = payload.get('layout') peaks = payload.get('peaks') shift = payload.get('shift') molfile = FileContainer().from_str(payload.get('molfile')) mm = MoleculeModel(molfile, layout, decorate=True) outcome = InferModel.predict_nmr( mm=mm, layout=layout, peaks=peaks, shift=shift ) if outcome: return jsonify(outcome) abort(400)