forked from enviPath/enviPy
[Feature] Generate Compounds by Molfile (#423)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#423
This commit is contained in:
@ -19,7 +19,7 @@ from sentry_sdk import capture_exception
|
||||
|
||||
from utilities.chem import FormatConverter, IndigoUtils
|
||||
from utilities.decorators import package_permission_required
|
||||
from .exceptions import InvalidSMILESException
|
||||
from .exceptions import InvalidMolfileException, InvalidSMILESException
|
||||
|
||||
from .logic import (
|
||||
EPDBURLParser,
|
||||
@ -1386,12 +1386,18 @@ def package_compounds(request, package_uuid):
|
||||
elif request.method == "POST":
|
||||
compound_name = request.POST.get("compound-name")
|
||||
compound_smiles = request.POST.get("compound-smiles")
|
||||
compound_molfile = request.POST.get("compound-molfile")
|
||||
compound_description = request.POST.get("compound-description")
|
||||
|
||||
try:
|
||||
c = Compound.create(
|
||||
current_package, compound_smiles, compound_name, compound_description
|
||||
current_package,
|
||||
compound_smiles,
|
||||
molfile=compound_molfile,
|
||||
name=compound_name,
|
||||
description=compound_description,
|
||||
)
|
||||
except ValueError as e:
|
||||
except (InvalidSMILESException, InvalidMolfileException) as e:
|
||||
raise BadRequest(str(e))
|
||||
|
||||
return redirect(c.url)
|
||||
@ -1517,11 +1523,15 @@ def package_compound_structures(request, package_uuid, compound_uuid):
|
||||
elif request.method == "POST":
|
||||
structure_name = request.POST.get("structure-name")
|
||||
structure_smiles = request.POST.get("structure-smiles")
|
||||
structure_molfile = request.POST.get("structure-molfile")
|
||||
structure_description = request.POST.get("structure-description")
|
||||
|
||||
try:
|
||||
cs = current_compound.add_structure(
|
||||
structure_smiles, structure_name, structure_description
|
||||
structure_smiles,
|
||||
molfile=structure_molfile,
|
||||
name=structure_name,
|
||||
description=structure_description,
|
||||
)
|
||||
except ValueError:
|
||||
return error(
|
||||
@ -2339,9 +2349,12 @@ def package_pathway_nodes(request, package_uuid, pathway_uuid):
|
||||
node_description = request.POST.get("node-description")
|
||||
|
||||
node_smiles = request.POST.get("node-smiles").strip()
|
||||
node_molfile = request.POST.get("node-molfile").strip()
|
||||
|
||||
try:
|
||||
current_pathway.add_node(node_smiles, name=node_name, description=node_description)
|
||||
current_pathway.add_node(
|
||||
node_smiles, molfile=node_molfile, name=node_name, description=node_description
|
||||
)
|
||||
except InvalidSMILESException:
|
||||
return error(
|
||||
request, "Node creation failed!", f"Given SMILES ({node_smiles}) is invalid"
|
||||
|
||||
Reference in New Issue
Block a user