Пример #1
0
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)
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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)
Пример #5
0
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)
Пример #6
0
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)