{"openapi":"3.1.0","info":{"title":"Cheminformatics API","description":"This set of essential and valuable microservices is designed to be accessed via API calls to support cheminformatics. Generally, it is designed to work with SMILES-based inputs and could be used to translate between different machine-readable representations, get Natural Product (NP) likeliness scores, visualize chemical structures, and generate descriptors. In addition, the microservices also host an instance of DECIMER (a deep learning model for optical chemical structure recognition).\n        ","version":"1"},"paths":{"/chem/stereoisomers":{"get":{"tags":["chem"],"summary":"Enumerate all possible stereoisomers","description":"For a given SMILES string this function enumerates all possible.\n\nstereoisomers.\n\nParameters:\n- **SMILES**: required (query parameter): The SMILES string to be enumerated.\n\nReturns:\n- List[str]: A list of stereoisomer SMILES strings if successful, otherwise returns an error message.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"get_stereoisomers_chem_stereoisomers_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string to be enumerated"},"description":"SMILES string to be enumerated","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateStereoisomersResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/descriptors":{"get":{"tags":["chem"],"summary":"Generates descriptors for the input molecule","description":"Generates standard descriptors for the input molecule (SMILES).\n\nParameters:\n- **SMILES**: required (query): The SMILES representation of the molecule.\n- **format**: optional (query): The desired format for the output.\n    - Supported values: \"html\" / \"json\" (default), \"json\".\n- **toolkit**: optional (query): The chemical toolkit to use for descriptor calculation. The default is \"rdkit\". Allowed \"all\", \"cdk\".\n    - Supported values: \"cdk\"/ \"rdkit\" / \"all\" (default), \"rdkit\".\n\nReturns:\n- If the format is \"html\", return an HTML response containing a table of the descriptors and their values.\n- Return the descriptors and their values in the specified format if the format is not \"html\" (default: JSON).\n\nRaises:\n- None","operationId":"get_descriptors_chem_descriptors_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"format","in":"query","required":false,"schema":{"enum":["json","html"],"type":"string","description":"Desired display format","default":"json","title":"Format"},"description":"Desired display format"},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","all"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateDescriptorsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/descriptors/multiple":{"get":{"tags":["chem"],"summary":"Generates descriptors for the input molecules","description":"Retrieve multiple descriptors for a list of SMILES strings.\n\nParameters:\n- **SMILES**: required (query): Comma-separated list of SMILES strings.\n- **toolkit**: optional (query): Toolkit to use for descriptor calculation.\n    - Supported values: \"rdkit\" / \"cdk\" (default), \"rdkit\".\n\nReturns:\n- Union[Dict[str, Any], str]: If multiple SMILES are provided, return a dictionary with each SMILES as the key and the corresponding descriptors as the value. If only one SMILES is provided, returns an error message.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.\n\nExample:\n- Request: GET /descriptors/multiple?smiles=CCO,CCN&toolkit=rdkit\n  Response: {\"CCO\": {\"descriptor1\": value1, \"descriptor2\": value2}, \"CCN\": {\"descriptor1\": value3, \"descriptor2\": value4}}\n\n- Request: GET /descriptors/multiple?smiles=CCC\n  Response: \"Error invalid SMILES\"","operationId":"get_multiple_descriptors_chem_descriptors_multiple_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecules"},"description":"SMILES representation of the molecules","examples":{"example1":{"summary":"Example: Caffeine, Topiramate-13C6","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C, CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"},"example2":{"summary":"Example: Topiramate-13C6, Ethane","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1, CC"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateMultipleDescriptorsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/HOSEcode":{"get":{"tags":["chem"],"summary":"Generates HOSE codes for the input molecules","description":"Generates HOSE codes for a given SMILES string.\n\nParameters:\n- **SMILES**: required (query): The SMILES string represents the chemical compound.\n- **spheres**: required (query): The number of spheres to use for generating HOSE codes.\n- **toolkit**: optional (default: cdk): The chemical toolkit to use for generating HOSE codes.\n        Supported values: \"cdk\" (default), \"rdkit\".\n- **ringsize**: optional (default: False): Determines whether to include information about ring sizes\n        in the HOSE codes. The default is False.\n\nReturns:\n- List[str]: A list of HOSE codes if successful, indicating the HOSE codes\n    for each atom in the molecule. Otherwise, returns an error message.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"hose_codes_chem_HOSEcode_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"spheres","in":"query","required":true,"schema":{"type":"integer","title":"spheres","description":"Number of spheres to use for generating HOSE codes","examples":["2","1"]},"description":"Number of spheres to use for generating HOSE codes"},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"},{"name":"ringsize","in":"query","required":false,"schema":{"type":"boolean","title":"ringsize","description":"Determines whether to include information about ring sizes","default":false},"description":"Determines whether to include information about ring sizes"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateHOSECodeResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/standardize":{"post":{"tags":["chem"],"summary":"Standardize molblock using the ChEMBL curation pipeline","description":"Standardize molblock using the ChEMBL curation pipeline.\n\nand return the standardized molecule, SMILES, InChI, and InCHI-Key.\n\nParameters:\n- **molblock**: The request body containing the \"molblock\" string representing the molecule to be standardized.\n\nReturns:\n- dict: A dictionary containing the following keys:\n    - \"standardized_mol\" (str): The standardized molblock of the molecule.\n    - \"canonical_smiles\" (str): The canonical SMILES representation of the molecule.\n    - \"inchi\" (str): The InChI representation of the molecule.\n    - \"inchikey\" (str): The InChI-Key of the molecule.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"standardize_mol_chem_standardize_post","requestBody":{"content":{"text/plain":{"schema":{"type":"string","title":"Data"},"examples":{"example1":{"summary":"Example: C","value":"\n  CDK     09012310592D\n\n  1  0  0  0  0  0  0  0  0  0999 V2000\n    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\nM  END"}}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateStandardizeResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/errors":{"get":{"tags":["chem"],"summary":"Check a given SMILES string and the represented structure for issues and standardize it","description":"Check a given SMILES string and the represented structure for issues and.\n\nstandardize it using the ChEMBL curation pipeline.\n\nParameters:\n- **SMILES**: required (str, query) The SMILES string to check and standardize.\n- **fix**: optional (bool): Flag indicating whether to fix the issues by standardizing the SMILES. Defaults to False.\n\nReturns:\n- If the fix is False:\n    - If issues are found in the SMILES string, return a list of issues.\n    - If no issues are found, return the string \"No Errors Found\".\n\n- If the fix is True:\n    - If issues are found in the SMILES string, return a dictionary containing the original SMILES, original issues,\n      standardized SMILES, and new issues after standardization.\n    - If no issues are found after standardization, return a dictionary with the original SMILES and \"No Errors Found\".\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.\n\nNotes:\n- If the SMILES string contains spaces, they will be replaced with \"+\" characters before processing.\n- If the SMILES string cannot be read, the function returns the string \"Error reading SMILES string, check again.\"","operationId":"check_errors_chem_errors_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"The SMILES string to check and standardize."},"description":"The SMILES string to check and standardize.","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"fix","in":"query","required":false,"schema":{"type":"boolean","title":"Fix","description":"Flag indicating whether to fix the issues by standardizing the SMILES.","default":false},"description":"Flag indicating whether to fix the issues by standardizing the SMILES."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/SMILESStandardizedResult"},{"$ref":"#/components/schemas/SMILESValidationResult"}],"title":"Response 200 Check Errors Chem Errors Get"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/nplikeness/score":{"get":{"tags":["chem"],"summary":"Generates descriptors for the input molecules","description":"Calculates the natural product likeness score based on the RDKit.\n\nimplementation.\n\nParameters:\n- **SMILES**: required (query): The SMILES representation of the molecule.\n\nReturns:\n- np_score (float): The natural product likeness score.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"np_likeness_score_chem_nplikeness_score_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"The SMILES string to calculate the natural product likeness score"},"description":"The SMILES string to calculate the natural product likeness score","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NPlikelinessScoreResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/tanimoto":{"get":{"tags":["chem"],"summary":"Generates the Tanimoto similarity index for a given pair of SMILES strings","description":"Calculate the Tanimoto similarity index for a pair of SMILES strings.\n\nusing specified parameters.\n\nArgs:\n    smiles (str): A comma-separated pair of SMILES strings for the molecules to compare.\n    toolkit (Literal[\"cdk\", \"rdkit\"]): The cheminformatics toolkit used in the backend.\n    fingerprinter (Literal[\"RDKit\", \"Atompairs\", \"MACCS\",\"Pubchem\",\"ECFP\"]): The molecule fingerprint generation algorithm to use for RDKit (supports: \"RDKit\", \"Atompairs\", \"MACCS\" and \"ECFP\") and CDK (supports: \"Pubchem\" and\"ECFP\").\n    nBits (int, optional): The number of bits for fingerprint vectors in RDKit. Ignored for MACCS keys. Defaults to 2048.\n    radius (int, optional): The radius size for ECFP (Circular Fingerprints) when using CDK. Defaults to 6.\n\nReturns:\n    The Tanimoto similarity index as a floating-point value.\n\nRaises:\n    HTTPException: Raised when there is an error reading SMILES strings or invalid input.","operationId":"tanimoto_similarity_chem_tanimoto_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecules"},"description":"SMILES representation of the molecules","examples":{"example1":{"summary":"Example: Caffeine, Topiramate-13C6","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C,CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"},"example2":{"summary":"Example: Topiramate-13C6, Ethane","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1,CC"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"},{"name":"fingerprinter","in":"query","required":false,"schema":{"enum":["RDKit","Atompairs","MACCS","PubChem","ECFP","MAPC"],"type":"string","description":"Molecule fingerprint generation algorithm to use for RDKit and CDK","default":"ECFP","title":"Fingerprinter"},"description":"Molecule fingerprint generation algorithm to use for RDKit and CDK"},{"name":"nBits","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"nBits size","description":"The number of bits for fingerprint vectors in RDKit and CDK. Ignored for MACCS and PubChem keys.","default":"2048"},"description":"The number of bits for fingerprint vectors in RDKit and CDK. Ignored for MACCS and PubChem keys."},{"name":"radius","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"radius size - ECFP","description":"ECFP 2/4/6 are allowed for using CDK Circular fingerprinter and for MAPC default is radius 2 and permutations 2048. The default is 6","default":"2"},"description":"ECFP 2/4/6 are allowed for using CDK Circular fingerprinter and for MAPC default is radius 2 and permutations 2048. The default is 6"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/TanimotoSimilarityResponse"},{"$ref":"#/components/schemas/TanimotoMatrixResponse"}],"title":"Response 200 Tanimoto Similarity Chem Tanimoto Get"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/coconut/pre-processing":{"get":{"tags":["chem"],"summary":"Generates an Input JSON file with information for COCONUT database","description":"Generates an Input JSON file with information on different molecular.\n\nrepresentations and descriptors suitable for submission to the COCONUT\ndatabase.\n\nParameters:\n- **SMILES**: required (query): The SMILES string represents a chemical compound.\n\nReturns:\n- JSONResponse: The generated Input JSON file for COCONUT.\n\nRaises:\n- HTTPException: If there is an error reading the SMILES string.","operationId":"coconut_preprocessing_chem_coconut_pre_processing_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string representing a chemical compound"},"description":"SMILES string representing a chemical compound","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"_3d_mol","in":"query","required":false,"schema":{"type":"boolean","title":"3D_mol","description":"Flag indicating whether to generate 3D coordinates for a given molecule","default":false},"description":"Flag indicating whether to generate 3D coordinates for a given molecule"},{"name":"descriptors","in":"query","required":false,"schema":{"type":"boolean","title":"descriptors","description":"Flag indicating whether to generate COCONUT descriptors for a given molecule","default":false},"description":"Flag indicating whether to generate COCONUT descriptors for a given molecule"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/COCONUTPreprocessingModel"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/classyfire/classify":{"get":{"tags":["chem"],"summary":"Generate ClassyFire-based classifications using SMILES as input","description":"Generate ClassyFire-based classifications using SMILES as input.\n\nParameters:\n- **SMILES**: required (query): The SMILES representation of the compound to be classified.\n\nReturns:\n- The classification data generated by ClassyFire.\n\nRaises:\n- HTTPException: If the SMILES string is not provided or if an error occurs during the classification process.\n\nNote:\n- ClassyFire is a chemical taxonomy classification tool that predicts the chemical class and subclass of a compound based on its structural features.\n- This service pings the http://classyfire.wishartlab.com server for information retrieval.","operationId":"classyfire_classify_chem_classyfire_classify_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the compound to be classified"},"description":"SMILES representation of the compound to be classified","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassyFireJob"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/classyfire/{jobid}/result":{"get":{"tags":["chem"],"summary":"Retrieve the ClassyFire classification results based on the provided Job ID","description":"Retrieve the ClassyFire classification results based on the provided Job.\n\nID.\n\nTo obtain the results from ClassyFire, please initiate a new request and obtain a unique job ID.\nOnce you have the job ID, you need to submit another request using this ID in order to retrieve the desired outcome.\n\nParameters:\n- **jobid**: required (query): The Job ID used to query the ClassyFire classification results.\n\nRaises:\n- HTTPException 422: If the Job ID is not provided.\n- HTTPException 500: If an error occurs during the classification process.\n\nReturns:\n- The ClassyFire classification results as JSON.","operationId":"classyfire_result_chem_classyfire__jobid__result_get","parameters":[{"name":"jobid","in":"path","required":true,"schema":{"type":"string","title":"Jobid"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassyFireResult"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/all_filters":{"post":{"tags":["chem"],"summary":"Filters a given list of molecules using selected filters","operationId":"all_filter_molecules_chem_all_filters_post","parameters":[{"name":"pains","in":"query","required":false,"schema":{"type":"boolean","title":"PAINS filter","description":"Calculate PAINS filter (true or false)","default":true},"description":"Calculate PAINS filter (true or false)"},{"name":"lipinski","in":"query","required":false,"schema":{"type":"boolean","title":"Lipinski Rule of 5","description":"Calculate Lipinski Rule of 5 (true or false)","default":true},"description":"Calculate Lipinski Rule of 5 (true or false)"},{"name":"veber","in":"query","required":false,"schema":{"type":"boolean","title":"Veber filter","description":"Calculate Veber filter (true or false)","default":true},"description":"Calculate Veber filter (true or false)"},{"name":"reos","in":"query","required":false,"schema":{"type":"boolean","title":"REOS filter","description":"Calculate REOS filter (true or false)","default":true},"description":"Calculate REOS filter (true or false)"},{"name":"ghose","in":"query","required":false,"schema":{"type":"boolean","title":"Ghose filter","description":"Calculate Ghose filter (true or false)","default":true},"description":"Calculate Ghose filter (true or false)"},{"name":"ruleofthree","in":"query","required":false,"schema":{"type":"boolean","title":"Rule of 3","description":"Calculate Rule of 3 filter (true or false)","default":true},"description":"Calculate Rule of 3 filter (true or false)"},{"name":"qedscore","in":"query","required":false,"schema":{"type":"string","title":"QED Druglikeliness","description":"Calculate QED Score in the range (e.g., 0-10)","default":"0-10"},"description":"Calculate QED Score in the range (e.g., 0-10)"},{"name":"sascore","in":"query","required":false,"schema":{"type":"string","title":"SAScore","description":"Calculate SAScore in the range (e.g., 0-10)","default":"0-10"},"description":"Calculate SAScore in the range (e.g., 0-10)"},{"name":"nplikeness","in":"query","required":false,"schema":{"type":"string","title":"NPlikenessScore","description":"Calculate NPlikenessScore in the range (e.g., 0-10)","default":"0-10"},"description":"Calculate NPlikenessScore in the range (e.g., 0-10)"},{"name":"filterOperator","in":"query","required":false,"schema":{"enum":["AND","OR"],"type":"string","title":"Filter Operator","description":"Logic for combining filter results: AND requires all selected filters to pass, OR requires at least one filter to pass","default":"OR"},"description":"Logic for combining filter results: AND requires all selected filters to pass, OR requires at least one filter to pass"}],"requestBody":{"required":true,"content":{"text/plain":{"schema":{"type":"string","title":"Smiles List"},"examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C\nCC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FilteredMoleculesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/all_filters_detailed":{"post":{"tags":["chem"],"summary":"Filters molecules with detailed information about violations and substructure matches","description":"Apply multiple chemical filters with detailed violation information.\n\nThis endpoint provides comprehensive information about why molecules pass or fail\nspecific filters, including:\n- PAINS substructure family and description when matched\n- Specific property values that cause Lipinski, Veber, REOS, Ghose, or Rule of 3 violations\n- Clear indication of whether finding a match is good or bad for drug-likeness\n\nReturns detailed results for each molecule with pass/fail status and violation details.","operationId":"all_filter_molecules_detailed_chem_all_filters_detailed_post","parameters":[{"name":"pains","in":"query","required":false,"schema":{"type":"boolean","title":"PAINS filter","description":"Check for Pan-Assay Interference compounds (true or false)","default":true},"description":"Check for Pan-Assay Interference compounds (true or false)"},{"name":"lipinski","in":"query","required":false,"schema":{"type":"boolean","title":"Lipinski Rule of 5","description":"Check Lipinski Rule of 5 violations (true or false)","default":true},"description":"Check Lipinski Rule of 5 violations (true or false)"},{"name":"veber","in":"query","required":false,"schema":{"type":"boolean","title":"Veber filter","description":"Check Veber filter criteria (true or false)","default":true},"description":"Check Veber filter criteria (true or false)"},{"name":"reos","in":"query","required":false,"schema":{"type":"boolean","title":"REOS filter","description":"Check REOS filter criteria (true or false)","default":true},"description":"Check REOS filter criteria (true or false)"},{"name":"ghose","in":"query","required":false,"schema":{"type":"boolean","title":"Ghose filter","description":"Check Ghose filter criteria (true or false)","default":true},"description":"Check Ghose filter criteria (true or false)"},{"name":"ruleofthree","in":"query","required":false,"schema":{"type":"boolean","title":"Rule of 3","description":"Check Rule of 3 criteria (true or false)","default":true},"description":"Check Rule of 3 criteria (true or false)"},{"name":"qedscore","in":"query","required":false,"schema":{"type":"string","title":"QED Druglikeliness","description":"QED Score range (e.g., 0-1)","default":"0-1"},"description":"QED Score range (e.g., 0-1)"},{"name":"sascore","in":"query","required":false,"schema":{"type":"string","title":"SAScore","description":"Synthetic Accessibility Score range (e.g., 0-10)","default":"0-10"},"description":"Synthetic Accessibility Score range (e.g., 0-10)"},{"name":"nplikeness","in":"query","required":false,"schema":{"type":"string","title":"NPlikenessScore","description":"Natural Product likeness Score range (e.g., -5-5)","default":"-5-5"},"description":"Natural Product likeness Score range (e.g., -5-5)"},{"name":"filterOperator","in":"query","required":false,"schema":{"enum":["AND","OR"],"type":"string","title":"Filter Operator","description":"Logic for combining filter results: AND requires all selected filters to pass, OR requires at least one filter to pass","default":"OR"},"description":"Logic for combining filter results: AND requires all selected filters to pass, OR requires at least one filter to pass"}],"requestBody":{"required":true,"content":{"text/plain":{"schema":{"type":"string","title":"Smiles List"},"examples":{"example1":{"summary":"Example: Caffeine and problematic compound","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C\nCC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}}},"responses":{"200":{"description":"Successful response with detailed filter information","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/ertlfunctionalgroup":{"get":{"tags":["chem"],"summary":"using the algorithm proposed by Peter Ertl to identify functional groups","description":"For a given SMILES string this function generates a list of identified.\n\nfunctional groups.\n\nParameters:\n- **SMILES**: required (query parameter): The SMILES string to be checked for functional groups.\n\nReturns:\n- List[str]: A list of identified functional groups, otherwise returns an error message.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"get_functional_groups_chem_ertlfunctionalgroup_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string to be enumerated"},"description":"SMILES string to be enumerated","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFunctionalGroupResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/standarizedTautomer":{"get":{"tags":["chem"],"summary":"Standardize tautomeric SMILES using RDKit EnumerateStereoisomers module","operationId":"get_standardized_tautomer_smiles_chem_standarizedTautomer_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string to be standardized"},"description":"SMILES string to be standardized","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StandarizedTautomerResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/fixRadicals":{"get":{"tags":["chem"],"summary":"Fix radicals (single electrons) in molecules using CDK","description":"Fix radicals (single electrons) in molecules using CDK.\n\nThis endpoint detects and fixes radical electrons on atoms in molecular structures.\nIt handles radicals on carbon (C), nitrogen (N), and oxygen (O) atoms by:\n\n1. Perceiving radical electrons in the input molecule\n2. Adding implicit hydrogens to saturate the radicals\n3. Reconfiguring atom types and valences\n4. Returning the fixed canonical SMILES\n\n**Supported radicals:**\n- Carbon radicals (e.g., [CH3], [CH2]R)\n- Nitrogen radicals (e.g., [NH2], [NH]R)\n- Oxygen radicals (e.g., [OH], [O]R)\n\n**Note:** Radicals on other elements are detected but not currently fixed.\n\nParameters:\n- **smiles**: required (query): SMILES string containing radicals (denoted with square brackets and explicit electron counts)\n\nReturns:\n- **FixRadicalsResponse**: A response containing:\n    - `fixed_smiles`: Canonical SMILES with radicals fixed\n    - `radicals_detected`: Total number of radicals detected\n    - `radicals_fixed`: Number of radicals successfully fixed (C, N, O only)\n\nRaises:\n- **ValueError**: If the SMILES string is invalid or cannot be parsed\n- **HTTPException 422**: If molecule parsing fails\n\nExample:\n```\nInput:  [CH3]\nOutput: {\n    \"fixed_smiles\": \"C\",\n    \"radicals_detected\": 1,\n    \"radicals_fixed\": 1\n}\n```","operationId":"fix_radicals_endpoint_chem_fixRadicals_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string containing radicals to be fixed"},"description":"SMILES string containing radicals to be fixed","examples":{"example1":{"summary":"Example: Methyl radical","value":"[CH3]"},"example2":{"summary":"Example: Nitrogen-centered radical","value":"C[NH]"},"example3":{"summary":"Example: Complex molecule with radical","value":"CCCC[C](O)[C](O)[C](O)[C]1OC(=O)C=C[C]1O"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FixRadicalsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/chem/pubchem/smiles":{"get":{"tags":["chem"],"summary":"Retrieve canonical SMILES from PubChem for a given chemical identifier","description":"Retrieve the canonical SMILES for a molecule from PubChem via the PUG REST API.\n\nThe endpoint automatically detects the input type and handles:\n  - CID: a string of digits\n  - InChI: a string starting with \"InChI=\"\n  - InChIKey: matching the standard format (e.g., \"LFQSCWFLJHTTHZ-UHFFFAOYSA-N\")\n  - CAS number: if the input matches a pattern like \"7732-18-5\"\n  - Molecular formula: if the input matches a formula pattern (e.g., \"C6H12O6\")\n  - SMILES: if the input contains no spaces, is short, and is composed of SMILES characters\n  - Chemical name: default option (covers IUPAC names, synonyms, trivial names, etc.)\n\nParameters:\n    identifier (str): The chemical identifier to look up\n\nReturns:\n    PubChemResponse: Object containing the input, canonical SMILES, detected input type, CIDs, PubChem links, and success status\n\nRaises:\n    HTTPException: If the identifier is invalid or no results are found","operationId":"get_pubchem_smiles_chem_pubchem_smiles_get","parameters":[{"name":"identifier","in":"query","required":true,"schema":{"type":"string","title":"Chemical Identifier","description":"Chemical identifier (name, CID, InChI, InChIKey, SMILES, formula, CAS number)"},"description":"Chemical identifier (name, CID, InChI, InChIKey, SMILES, formula, CAS number)","examples":{"example1":{"summary":"Example: Aspirin by name","value":"aspirin"},"example2":{"summary":"Example: Ethanol by SMILES","value":"CCO"},"example3":{"summary":"Example: Glucose by formula","value":"C6H12O6"},"example4":{"summary":"Example: Water by CAS","value":"7732-18-5"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PubChemResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/mol2D":{"get":{"tags":["convert"],"summary":"Generates 2D Coordinates for the input molecules","description":"Generates 2D Coordinates using the CDK Structure diagram.\n\ngenerator/RDKit/Open Babel and returns the mol block.\n\nParameters:\n- **SMILES**: required (str): The SMILES string.\n- **toolkit** (str, optional): The toolkit to use for generating 2D coordinates.\n    - Supported values: \"cdk\" (default), \"rdkit\", \"openbabel\".\n\nReturns:\n- molblock (str): The generated mol block with 2D coordinates as a plain text response.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"create2d_coordinates_convert_mol2D_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwoDCoordinatesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/mol3D":{"get":{"tags":["convert"],"summary":"Generates 3D Coordinates for the input molecules","description":"Generates a random 3D conformer from SMILES using the specified molecule.\n\ntoolkit.\n\nParameters:\n- **SMILES**: required (str): The SMILES representation of the molecule.\n- **toolkit**: optional (str): The molecule toolkit to use.\n    - Supported values: \"rdkit\"  & \"openbabel\" (default).\n\nReturns:\n- molblock (str): The generated mol block with 3D coordinates as a plain text response.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.","operationId":"create3d_coordinates_convert_mol3D_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"openbabel","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ThreeDCoordinatesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/smiles":{"get":{"tags":["convert"],"summary":"Generate SMILES from a given input","description":"Generate SMILES from a given IUPAC name or a SELFIES representation.\n\nParameters:\n- **input_text**: required (str): The input text containing either the IUPAC name or SELFIES representation.\n- **representation**: optional (str): The representation type of the input text.\n    - Supported values: \"iupac\" (default) & \"selfies\".\n\nReturns:\n- If representation is \"iupac\": The generated SMILES string corresponding to the given IUPAC name.\n- If the representation is \"selfies\": The generated SMILES string corresponds to the given SELFIES representation.\n\nNotes:\n- The IUPAC name should follow the standard IUPAC naming conventions for organic compounds.\n- SELFIES (Self-Referencing Embedded Strings) is a concise yet expressive chemical string notation.\n\nExample Usage:\n- To generate SMILES from an IUPAC name: /smiles?input_text=benzene&representation=iupac\n- To generate SMILES from a SELFIES representation: /smiles?input_text=[C][C][C]&representation=selfies","operationId":"iupac_name_or_selfies_to_smiles_convert_smiles_get","parameters":[{"name":"input_text","in":"query","required":true,"schema":{"type":"string","title":"Input IUPAC name or SELFIES","description":"IUPAC name or SELFIES representation of the molecule"},"description":"IUPAC name or SELFIES representation of the molecule","examples":{"example1":{"summary":"Example: IUPAC name","value":"1,3,7-trimethylpurine-2,6-dione"},"example2":{"summary":"Example: SELFIES","value":"[C][N][C][=N][C][=C][Ring1][Branch1][C][=Branch1][C][=O][N][Branch1][=Branch2][C][=Branch1][C][=O][N][Ring1][Branch2][C][C]"}}},{"name":"representation","in":"query","required":false,"schema":{"enum":["iupac","selfies"],"type":"string","description":"Required type of format conversion","default":"iupac","title":"Representation"},"description":"Required type of format conversion"},{"name":"converter","in":"query","required":false,"schema":{"const":"opsin","type":"string","description":"Required type of converter for IUPAC","default":"opsin","title":"Converter"},"description":"Required type of converter for IUPAC"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSMILESResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/canonicalsmiles":{"get":{"tags":["convert"],"summary":"Generate CanonicalSMILES from a given SMILES","description":"Canonicalizes a given SMILES string according to the allowed toolkits.\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to be canonicalized.\n- **toolkit**: optional (str): The toolkit to use for canonicalization.\n    - Supported values: \"cdk\" (default), \"rdkit\" & \"openbabel\".\n\nReturns:\n- SMILES (str): The canonicalized SMILES string.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.\n- ValueError: If an unsupported toolkit option is provided.","operationId":"smiles_canonicalise_convert_canonicalsmiles_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCanonicalResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/cxsmiles":{"get":{"tags":["convert"],"summary":"Generate CXSMILES from a given SMILES","description":"Convert SMILES to CXSMILES.\n\nFor more information:\n- https://docs.chemaxon.com/display/docs/chemaxon-extended-smiles-and-smarts-cxsmiles-and-cxsmarts.md\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to convert.\n- **toolkit**: optional (str): The toolkit to use for conversion.\n    - Supported values: \"cdk\" (default) & \"rdkit\".\n\nReturns:\n- CXSMILES (str): The converted CXSMILES string.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.\n- ValueError: If an unsupported toolkit option is provided.\n\nNote:\n- CXSMILES is a Chemaxon Extended SMILES which is used for storing special features of the molecules after the SMILES string.","operationId":"smiles_to_cxsmiles_convert_cxsmiles_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateCXSMILESResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/inchi":{"get":{"tags":["convert"],"summary":"Generate InChI from a given SMILES","description":"Convert SMILES to InChI.\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to convert.\n- **toolkit**: optional (str): The toolkit to use for conversion.\n    - Supported values: \"cdk\" (default), \"openbabel\" & \"rdkit\".\n\nReturns:\n- InChI (str): The resulting InChI string.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.\n- ValueError: If an unsupported toolkit option is provided.","operationId":"smiles_to_inchi_convert_inchi_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateInChIResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/inchikey":{"get":{"tags":["convert"],"summary":"Generate InChI-Key from a given SMILES","description":"Convert SMILES to InChI-Key.\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to convert.\n- **toolkit**: optional (str): The toolkit to use for conversion.\n    - Supported values: \"cdk\" (default), \"openbabel\" & \"rdkit\".\n\nReturns:\n- InChI-Key (str): The resulting InChI-Key string.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.\n- ValueError: If an unsupported toolkit option is provided.","operationId":"smiles_to_inchikey_convert_inchikey_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateInChIKeyResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/selfies":{"get":{"tags":["convert"],"summary":"Generates SELFIES string for a given SMILES string","description":"Generates SELFIES string for a given SMILES string.\n\nFor more information:\n- Krenn et al, SELFIES and the future of molecular string representations, Patterns, https://doi.org/10.1016/j.patter.2022.100588.\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to convert.\n\nReturns:\n- SELFIES (str): The resulting SELFIES of the chemical compound.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.","operationId":"encode_selfies_convert_selfies_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSELFIESResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/formats":{"get":{"tags":["convert"],"summary":"Convert SMILES to various molecular formats using different toolkits","description":"Convert SMILES to various molecular formats using different toolkits.\n\nParameters:\n- **SMILES**: required (str): The input SMILES string to convert.\n- **toolkit**: optional (str): The toolkit to use for conversion.\n    - Supported values: \"cdk\" (default), \"openbabel\" & \"rdkit\".\n\nReturns:\n- dict: A dictionary containing the converted data in various formats. The dictionary has the following keys:\n    - \"mol\" (str): The generated 2D mol block of the molecule.\n    - \"canonicalsmiles\" (str): The canonical SMILES representation of the molecule.\n    - \"inchi\" (str): The InChI representation of the molecule.\n    - \"inchikey\" (str): The InChIKey representation of the molecule.\n\nNote:\n    - The returned dictionary may contain empty strings if conversion fails or the input SMILES string is invalid.\n\nRaises:\n- ValueError: If the SMILES string is empty or contains invalid characters.\n- ValueError: If an unsupported toolkit option is provided.","operationId":"smiles_convert_to_formats_convert_formats_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateFormatsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/smarts":{"get":{"tags":["convert"],"summary":"Generate SMARTS from a given SMILES","operationId":"smiles_to_smarts_convert_smarts_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES representation of the molecule"},"description":"SMILES representation of the molecule","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"const":"rdkit","type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateSMARTSResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/molblock":{"post":{"tags":["convert"],"summary":"Convert MOL/SDF block to SMILES","description":"Convert a MOL or SDF block to SMILES.\n\nThis endpoint accepts a single molecule in MOL or SDF format and converts it to SMILES.\nIf the input is in SDF format (contains $$$$), the SDF terminator will be automatically\nremoved and the content will be processed as a MOL block.\n\nParameters:\n- **molblock**: required (str): The MOL or SDF block string.\n- **toolkit**: optional (str): The toolkit to use for conversion.\n    - Supported values: \"cdk\" (default) & \"rdkit\".\n\nReturns:\n- SMILES (str): The SMILES representation of the molecule.\n\nRaises:\n- HTTPException: If the MOL block is invalid or cannot be parsed.\n\nNote:\n- Only single molecules are supported. For SDF files with multiple molecules,\n  only the first molecule will be processed.\n- The SDF terminator ($$$$) is automatically detected and removed if present.","operationId":"molblock_to_smiles_convert_molblock_post","parameters":[{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"requestBody":{"required":true,"content":{"text/plain":{"schema":{"type":"string","title":"MOL/SDF Block","description":"MOL or SDF block representation of the molecule. If SDF format is detected (contains $$$$), it will be removed and processed as MOL."}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MolToSMILESResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/batch":{"post":{"tags":["convert"],"summary":"Batch convert chemical structures to various formats","description":"Batch convert chemical structures to various formats.\n\nThis endpoint accepts a list of inputs with different formats and converts them\nto the specified output format using the selected toolkit.\n\nParameters:\n- **body**: required (dict): JSON object with a list of inputs to convert.\n    - Structure:\n        ```json\n        {\n            \"inputs\": [\n                {\n                    \"value\": \"CN1C=NC2=C1C(=O)N(C)C(=O)N2C\",\n                    \"input_format\": \"smiles\"\n                }\n            ]\n        }\n        ```\n- **output_format**: optional (str): Format to convert to.\n    - Supported values: \"smiles\", \"canonicalsmiles\", \"inchi\", \"inchikey\", \"selfies\", \"cxsmiles\", \"smarts\", \"mol2d\", \"mol3d\".\n- **toolkit**: optional (str): Toolkit to use for conversion.\n    - Supported values: \"cdk\" (default), \"rdkit\", \"openbabel\".\n\nReturns:\n- JSON object containing conversion results and summary.\n\nNote:\n- Some conversion combinations may not be supported by all toolkits.\n- Failed conversions will be included in the response with error messages.","operationId":"batch_convert_convert_batch_post","parameters":[{"name":"output_format","in":"query","required":false,"schema":{"type":"string","description":"Format to convert to (smiles, canonicalsmiles, inchi, inchikey, selfies, cxsmiles, smarts, mol2d, mol3d)","default":"smiles","title":"Output Format"},"description":"Format to convert to (smiles, canonicalsmiles, inchi, inchikey, selfies, cxsmiles, smarts, mol2d, mol3d)"},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit to use for conversion","default":"cdk","title":"Toolkit"},"description":"Cheminformatics toolkit to use for conversion"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/convert/cdx-to-mol":{"post":{"tags":["convert"],"summary":"Parse an uploaded .cdx file and return its MDL MOL content","description":"Parse an uploaded ChemDraw binary (.cdx) file and return the MDL MOL block.\n\nThe conversion is performed by the OpenBabel Python bindings (pybel).\n2D coordinates are generated when not already present in the CDX file.\n\nParameters:\n- **file**: required (.cdx file): ChemDraw binary file containing the molecule.\n\nReturns:\n- CDXToMolResponse: A JSON response containing the MDL MOL block string.\n\nRaises:\n- HTTPException 422: If the file cannot be parsed or contains no atoms.","operationId":"cdx_to_mol_convert_cdx_to_mol_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_cdx_to_mol_convert_cdx_to_mol_post"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CDXToMolResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/depict/2D":{"get":{"tags":["depict"],"summary":"Generates a 2D depiction of a molecule","description":"Generates a 2D depiction of a molecule using CDK or RDKit with the given.\n\nparameters.\n\nParameters:\n- **SMILES**: required (query): The SMILES representation of the molecule. [required]\n- **toolkit**: (str, optional): The toolkit to use for the depiction. Defaults to \"cdk\".\n    - Supported values: \"cdk\"/ \"rdkit\" (default), \"cdk\".\n- **width**: (int, optional): The width of the generated image in pixels. Defaults to 512.\n- **height**: (int, optional): The height of the generated image in pixels. Defaults to 512.\n- **rotate**: (int, optional): The rotation angle of the molecule in degrees. Defaults to 0.\n- **CIP** (bool, optional): Whether to include Cahn-Ingold-Prelog (CIP) stereochemistry information. Defaults to False.\n- **highlight** (Optional[str], optional): SMARTS pattern to highlight atoms/bonds. Defaults to None.\n- **atomIds** (Optional[str], optional): Comma-separated atom indices to highlight. Defaults to None.\n- **showAtomNumbers** (bool, optional): Whether to show atom numbers on the molecular depiction. Defaults to False.\n- **hydrogen_display** (str, optional): Control hydrogen display mode. Defaults to \"Smart\".\n    - \"Provided\": Keep hydrogens as-is (no changes)\n    - \"Minimal\": Suppress all hydrogens (clean depiction)\n    - \"Explicit\": Show all hydrogens explicitly\n    - \"Stereo\": Show only stereo-relevant hydrogens (chiral centers, E/Z bonds)\n    - \"Smart\": Intelligent hydrogen placement (recommended for chiral molecules)\n\n\nReturns:\n    Response: An HTTP response containing the generated image in SVG+xml format.\n\nRaises:\n- HTTPException (422): If the SMILES string is invalid or parameters are incorrect.\n\nNote:\n    - The `smiles` parameter is required and must be provided as a query parameter.\n    - The `toolkit` parameter determines the backend library to use for molecule depiction.\n      Currently supported options are \"cdk\" and \"rdkit\" (default).\n    - The `width` and `height` parameters control the dimensions of the generated image.\n    - The `rotate` parameter specifies the rotation angle of the molecule in degrees.\n    - The `CIP` parameter controls whether Cahn-Ingold-Prelog (CIP) stereochemistry information should be included.\n    - The `unicolor` parameter determines whether a single colour is used for the molecule.\n    - The `hydrogen_display` parameter is crucial for molecules with stereochemistry:\n      * Use \"Smart\" or \"Stereo\" for chiral molecules to show relevant hydrogens\n      * Use \"Minimal\" for clean, publication-quality depictions\n      * Use \"Explicit\" for educational materials showing all atoms\n    - The `showAtomNumbers` parameter controls whether atom numbers are displayed on the depiction.","operationId":"depict_2d_molecule_depict_2D_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string to be converted"},"description":"SMILES string to be converted","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["cdk","rdkit"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"rdkit","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"},{"name":"width","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the generated image in pixels.","default":512},"description":"The width of the generated image in pixels."},{"name":"height","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the generated image in pixels.","default":512},"description":"The height of the generated image in pixels."},{"name":"rotate","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rotate","description":"The rotation angle of the molecule in degrees.","default":0},"description":"The rotation angle of the molecule in degrees."},{"name":"CIP","in":"query","required":false,"schema":{"type":"boolean","title":"CIP","description":"Whether to include Cahn-Ingold-Prelog (CIP) stereochemistry information.","default":false},"description":"Whether to include Cahn-Ingold-Prelog (CIP) stereochemistry information."},{"name":"unicolor","in":"query","required":false,"schema":{"type":"boolean","title":"Unicolor","description":"Whether to use a single colour for the molecule.","default":false},"description":"Whether to use a single colour for the molecule."},{"name":"highlight","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Substructure","description":"SMARTS pattern to highlight atoms/bonds."},"description":"SMARTS pattern to highlight atoms/bonds."},{"name":"atomIds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atom Indices","description":"Comma-separated list of atom indices to highlight (0-based indexing)."},"description":"Comma-separated list of atom indices to highlight (0-based indexing)."},{"name":"showAtomNumbers","in":"query","required":false,"schema":{"type":"boolean","title":"Show Atom Numbers","description":"Whether to show atom numbers on the molecular depiction.","default":false},"description":"Whether to show atom numbers on the molecular depiction."},{"name":"hydrogen_display","in":"query","required":false,"schema":{"enum":["Provided","Minimal","Explicit","Stereo","Smart"],"type":"string","title":"Hydrogen Display","description":"Control how hydrogen atoms are displayed in the molecular depiction. Options: 'Provided' (as-is), 'Minimal' (suppress all H), 'Explicit' (show all H), 'Stereo' (show stereo-relevant H only), 'Smart' (intelligent H placement, recommended for chiral molecules).","default":"Smart"},"description":"Control how hydrogen atoms are displayed in the molecular depiction. Options: 'Provided' (as-is), 'Minimal' (suppress all H), 'Explicit' (show all H), 'Stereo' (show stereo-relevant H only), 'Smart' (intelligent H placement, recommended for chiral molecules)."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Depict2DResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/depict/3D":{"get":{"tags":["depict"],"summary":"Generates a 3D depiction of a molecule","description":"Generate 3D depictions of molecules using OpenBabel or RDKit.\n\nParameters:\n- **SMILES**: required (str): The SMILES string representing the molecule to depict.\n- **toolkit**: optional (str): The molecule toolkit to use. The default is \"rdkit\".\n      - Supported values: \"rdkit\"/ \"openbabel\" (default), \"rdkit\".\nReturns:\n- If the toolkit is \"openbabel\", returns a TemplateResponse with the molecule depiction generated using OpenBabel.\n- If the toolkit is \"rdkit\", returns a TemplateResponse with the 3D conformers of the molecule generated using RDKit.\n- If the toolkit is neither \"openbabel\" nor \"rdkit\", returns a string indicating that the SMILES string or the toolkit configuration should be checked.\n\nRaises:\n- ValueError: If the SMILES string is not provided or is invalid.\n\nNote:\n- The function expects a GET request to the \"/3D\" endpoint.\n- The generated depictions are rendered using the \"mol.html\" template found under the templates directory.","operationId":"depict_3d_molecule_depict_3D_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES string to be converted"},"description":"SMILES string to be converted","examples":{"example1":{"summary":"Example: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"Example: Topiramate-13C6","value":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1"}}},{"name":"toolkit","in":"query","required":false,"schema":{"enum":["rdkit","openbabel"],"type":"string","description":"Cheminformatics toolkit used in the backend","default":"openbabel","title":"Toolkit"},"description":"Cheminformatics toolkit used in the backend"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Depict3DResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/depict/2D_enhanced":{"get":{"tags":["depict"],"summary":"Advanced 2D molecular depiction with comprehensive rendering options","description":"Generate advanced 2D molecular depictions with comprehensive customization options.\n\nThis endpoint provides professional-grade molecular structure rendering with extensive\ncontrol over visualization, suitable for publications, presentations, and chemical databases.\n\n## Key Features\n\n### Extended SMILES Support (CXSMILES)\nSupports CXSMILES extensions for precise control over highlighting and atom coordinates:\n- Atom highlighting: `c1ccccc1 |ha:0,1,2|` highlights atoms 0, 1, and 2\n- Bond highlighting: `CCO |hb:0,1|` highlights bonds 0 and 1\n- 2D coordinates: `|c:x1,y1,x2,y2,...|`\n- 3D coordinates: `|C:x1,y1,z1,x2,y2,z2,...|`\n\n### Chemical Abbreviations\nAutomatic recognition and rendering of common chemical groups and reagents:\n- **groups**: Functional groups like Ph (phenyl), Me (methyl), Et (ethyl), Boc, Fmoc, etc.\n- **reagents**: Common reagents like THF, DMF, DCM, NaOH, LiAlH₄, etc.\n- Total library: 198 reagents + 60 functional groups\n- Example: `C1CCOC1` → \"THF\" when `abbreviate=reagents`\n\n### Coordination Chemistry\nAdvanced support for metal complexes and coordination compounds:\n- **Dative bonds**: Coordinate bonds shown with arrow notation (Donor→Acceptor)\n  * Example: `[NH3]BF3` shows ammonia-borane with N→B arrow\n- **Multicenter bonds**: η-complexes (ferrocene, chromium-benzene) with multiple display styles\n  * Dative arrows, dashed lines, or hidden bonds\n  * Charge neutralization options\n\n### Visual Styles and Annotations\nSeven predefined color schemes for different contexts:\n- **cow**: Color on White (default) - publications\n- **cob**: Color on Black - presentations with dark backgrounds\n- **bow**: Black on White - high contrast, printer-friendly\n- **nob**: Neon on Black - eye-catching presentations\n- Custom colors: Override with hex values via `bgcolor` and `fgcolor`\n\nSeven annotation modes:\n- **number**: Atom numbering (0-based indexing) for education\n- **cip**: CIP stereochemistry labels (R/S, E/Z)\n- **mapidx**: Reaction atom mapping\n- **colmap**: Color-coded atom mapping\n- **bondnumber**: Bond numbering\n- **atomvalue**: Atom properties display\n\n### Aromatic Ring Display\nChoose between Kekulé structures (alternating double bonds) or circle-in-ring\nrepresentation using the `donuts` parameter for cleaner aromatic visualization.\n\n### Reaction Depiction\nMultiple arrow types for chemical reactions:\n- **forward** (→): Standard reaction\n- **equ** (⇌): Equilibrium/reversible\n- **ret** (⇒): Retrosynthetic analysis\n- **res** (↔): Resonance structures\n- **ngo** (⇏): No-go/blocked reaction\n\n### Professional Controls\n- **Radical perception**: Automatic detection of unpaired electrons\n- **MDL HILITE**: Support for MDL/SDF V3000 highlighting from databases\n- **Zoom/Ratio**: Fine control over molecule size and bond thickness\n- **Flip**: Horizontal structure mirroring\n- **SVG units**: Export in pixels, millimeters, centimeters, or inches\n\n## Usage Examples\n\n```\n# Basic molecule\n?smiles=CN1C=NC2=C1C(=O)N(C(=O)N2C)C\n\n# CXSMILES with highlighting\n?smiles=c1ccccc1 |ha:0,1,2|\n\n# Abbreviated reagent\n?smiles=C1CCOC1&abbreviate=reagents  # Shows \"THF\"\n\n# Coordination complex with dative bonds\n?smiles=[Co][N+]([O-])(=O)&dative=metals\n\n# Publication-ready (black on white, no abbreviations)\n?smiles=c1ccccc1&style=bow&abbreviate=off&zoom=1.3&ratio=0.8\n\n# Presentation style (color on black, larger, annotated)\n?smiles=C[C@H](N)C(=O)O&style=cob&annotate=cip&zoom=1.5&ratio=1.2\n\n# Teaching (atom numbers, clear display)\n?smiles=c1ccccc1&annotate=number&zoom=1.5&showAtomNumbers=true\n```\n\n## Toolkit\n\nThis endpoint uses the **Chemistry Development Kit (CDK)** exclusively for rendering.\nCDK provides full support for all advanced features including abbreviations, dative bonds,\nmulticenter bonds, CXSMILES extensions, annotations, style presets, and advanced rendering controls.\n\nFor basic 2D depiction with RDKit support, use the `/depict/2D` endpoint instead.\n\n## Returns\nSVG image of the molecular structure with all requested enhancements and customizations.","operationId":"depict_2d_molecule_enhanced_depict_2D_enhanced_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES or CXSMILES","description":"SMILES or CXSMILES string to be converted. Supports CXSMILES extensions for highlighting."},"description":"SMILES or CXSMILES string to be converted. Supports CXSMILES extensions for highlighting.","examples":{"example1":{"summary":"Simple: Caffeine","value":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C"},"example2":{"summary":"CXSMILES: Benzene with highlighting","value":"c1ccccc1 |ha:0,1,2|"},"example3":{"summary":"Coordination complex with dative bonds","value":"[Co][N+]([O-])(=O)"},"example4":{"summary":"Chiral molecule with stereo hydrogens","value":"C[C@H](N)C(=O)O"}}},{"name":"width","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Width","description":"The width of the generated image in pixels.","default":512},"description":"The width of the generated image in pixels."},{"name":"height","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Height","description":"The height of the generated image in pixels.","default":512},"description":"The height of the generated image in pixels."},{"name":"rotate","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rotate","description":"The rotation angle of the molecule in degrees.","default":0},"description":"The rotation angle of the molecule in degrees."},{"name":"CIP","in":"query","required":false,"schema":{"type":"boolean","title":"CIP Stereochemistry","description":"Whether to include Cahn-Ingold-Prelog (CIP) stereochemistry annotations (R/S, E/Z).","default":true},"description":"Whether to include Cahn-Ingold-Prelog (CIP) stereochemistry annotations (R/S, E/Z)."},{"name":"unicolor","in":"query","required":false,"schema":{"type":"boolean","title":"Unicolor","description":"Whether to use black and white coloring only (deprecated, use style parameter).","default":false},"description":"Whether to use black and white coloring only (deprecated, use style parameter)."},{"name":"highlight","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"SMARTS Highlight","description":"SMARTS pattern to highlight atoms/bonds."},"description":"SMARTS pattern to highlight atoms/bonds."},{"name":"atomIds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Atom Indices","description":"Comma-separated list of atom indices to highlight (0-based indexing)."},"description":"Comma-separated list of atom indices to highlight (0-based indexing)."},{"name":"showAtomNumbers","in":"query","required":false,"schema":{"type":"boolean","title":"Show Atom Numbers","description":"Whether to show atom numbers on the molecular depiction.","default":false},"description":"Whether to show atom numbers on the molecular depiction."},{"name":"hydrogen_display","in":"query","required":false,"schema":{"enum":["Provided","Minimal","Explicit","Stereo","Smart"],"type":"string","title":"Hydrogen Display","description":"Control how hydrogen atoms are displayed. 'Smart' recommended for chiral molecules.","default":"Smart"},"description":"Control how hydrogen atoms are displayed. 'Smart' recommended for chiral molecules."},{"name":"abbreviate","in":"query","required":false,"schema":{"enum":["off","groups","reagents","on"],"type":"string","title":"Abbreviations","description":"Chemical abbreviation mode. 'off': No abbreviations. 'groups': Only functional groups (Ph, Me, Et, Boc, etc.). 'reagents': Common reagents (THF, DMF, NaOH, etc.). 'on': Both groups and reagents.","default":"off"},"description":"Chemical abbreviation mode. 'off': No abbreviations. 'groups': Only functional groups (Ph, Me, Et, Boc, etc.). 'reagents': Common reagents (THF, DMF, NaOH, etc.). 'on': Both groups and reagents."},{"name":"dative","in":"query","required":false,"schema":{"enum":["never","metals","always"],"type":"string","title":"Dative Bonds","description":"Dative (coordinate) bond perception mode. 'never': No dative bond perception. 'metals': Only metal-ligand dative bonds (default). 'always': Perceive all dative bonds including B, O.","default":"metals"},"description":"Dative (coordinate) bond perception mode. 'never': No dative bond perception. 'metals': Only metal-ligand dative bonds (default). 'always': Perceive all dative bonds including B, O."},{"name":"multicenter","in":"query","required":false,"schema":{"enum":["provided","dative","dashed","dashed_neutral","hidden","hidden_neutral"],"type":"string","title":"Multicenter Bonds","description":"Multicenter bond display style for η-complexes. 'provided': As-is from input. 'dative': Arrow notation. 'dashed': Dashed lines (preserve charges). 'dashed_neutral': Dashed lines (neutralize charges). 'hidden': Hide bonds (preserve charges). 'hidden_neutral': Hide bonds (neutralize charges).","default":"provided"},"description":"Multicenter bond display style for η-complexes. 'provided': As-is from input. 'dative': Arrow notation. 'dashed': Dashed lines (preserve charges). 'dashed_neutral': Dashed lines (neutralize charges). 'hidden': Hide bonds (preserve charges). 'hidden_neutral': Hide bonds (neutralize charges)."},{"name":"annotate","in":"query","required":false,"schema":{"enum":["none","number","bondnumber","mapidx","atomvalue","colmap","cip"],"type":"string","title":"Annotations","description":"Annotation mode for molecular depiction. 'none': No annotations. 'number': Show atom numbers (0-based). 'bondnumber': Show bond numbers. 'mapidx': Show atom mapping numbers (for reactions). 'atomvalue': Show atom values/properties. 'colmap': Color-code atoms by mapping number. 'cip': Show CIP stereochemistry labels (R/S, E/Z).","default":"none"},"description":"Annotation mode for molecular depiction. 'none': No annotations. 'number': Show atom numbers (0-based). 'bondnumber': Show bond numbers. 'mapidx': Show atom mapping numbers (for reactions). 'atomvalue': Show atom values/properties. 'colmap': Color-code atoms by mapping number. 'cip': Show CIP stereochemistry labels (R/S, E/Z)."},{"name":"style","in":"query","required":false,"schema":{"enum":["cow","cob","cot","bow","bot","wob","nob"],"type":"string","title":"Style Preset","description":"Color scheme preset. 'cow': Color on White (default). 'cob': Color on Black. 'cot': Color on Transparent. 'bow': Black on White. 'bot': Black on Transparent. 'wob': White on Black. 'nob': Neon on Black.","default":"cow"},"description":"Color scheme preset. 'cow': Color on White (default). 'cob': Color on Black. 'cot': Color on Transparent. 'bow': Black on White. 'bot': Black on Transparent. 'wob': White on Black. 'nob': Neon on Black."},{"name":"donuts","in":"query","required":false,"schema":{"type":"boolean","title":"Aromatic Donuts","description":"Whether to use circle-in-ring (donut) display for aromatic rings.","default":false},"description":"Whether to use circle-in-ring (donut) display for aromatic rings."},{"name":"arrow","in":"query","required":false,"schema":{"enum":["","forward","equ","ngo","ret","res"],"type":"string","title":"Reaction Arrow","description":"Reaction arrow type (for reactions only). '': Default forward arrow. 'forward': Forward arrow (→). 'equ': Equilibrium/bidirectional (⇌). 'ngo': No-go/blocked (⇏). 'ret': Retrosynthetic (⇒). 'res': Resonance (↔).","default":""},"description":"Reaction arrow type (for reactions only). '': Default forward arrow. 'forward': Forward arrow (→). 'equ': Equilibrium/bidirectional (⇌). 'ngo': No-go/blocked (⇏). 'ret': Retrosynthetic (⇒). 'res': Resonance (↔)."},{"name":"alignrxnmap","in":"query","required":false,"schema":{"type":"boolean","title":"Align Reaction Mapping","description":"Whether to align reaction mapped atoms (for reactions only).","default":true},"description":"Whether to align reaction mapped atoms (for reactions only)."},{"name":"showtitle","in":"query","required":false,"schema":{"type":"boolean","title":"Show Title","description":"Whether to display molecule/reaction title in depiction.","default":false},"description":"Whether to display molecule/reaction title in depiction."},{"name":"title","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Optional title to display when showtitle=true. If not provided, title will be extracted from SMILES string if present. Example: ?smiles=CCO&title=Ethanol&showtitle=true"},"description":"Optional title to display when showtitle=true. If not provided, title will be extracted from SMILES string if present. Example: ?smiles=CCO&title=Ethanol&showtitle=true"},{"name":"bgcolor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background Color","description":"Custom background color as hex string (e.g., '#FFFFFF') or 'default'."},"description":"Custom background color as hex string (e.g., '#FFFFFF') or 'default'."},{"name":"fgcolor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Foreground Color","description":"Custom foreground/annotation color as hex string (e.g., '#000000') or 'default'."},"description":"Custom foreground/annotation color as hex string (e.g., '#000000') or 'default'."},{"name":"zoom","in":"query","required":false,"schema":{"type":"number","maximum":5.0,"minimum":0.1,"title":"Zoom Level","description":"Zoom level for depiction (0.1 to 5.0). Default: 1.0.","default":1.0},"description":"Zoom level for depiction (0.1 to 5.0). Default: 1.0."},{"name":"ratio","in":"query","required":false,"schema":{"type":"number","maximum":2.0,"minimum":0.5,"title":"Stroke Ratio","description":"Bond thickness/stroke ratio (0.5 to 2.0). Default: 1.0.","default":1.0},"description":"Bond thickness/stroke ratio (0.5 to 2.0). Default: 1.0."},{"name":"flip","in":"query","required":false,"schema":{"type":"boolean","title":"Flip Structure","description":"Whether to horizontally flip the molecular structure.","default":false},"description":"Whether to horizontally flip the molecular structure."},{"name":"anon","in":"query","required":false,"schema":{"type":"boolean","title":"Anonymous Display","description":"Whether to use anonymous atom display (IUPAC recommendations).","default":false},"description":"Whether to use anonymous atom display (IUPAC recommendations)."},{"name":"smalim","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"title":"SMARTS Hit Limit","description":"Maximum number of SMARTS pattern matches to highlight (1 to 1000).","default":100},"description":"Maximum number of SMARTS pattern matches to highlight (1 to 1000)."},{"name":"svgunits","in":"query","required":false,"schema":{"enum":["px","mm","cm","in"],"type":"string","title":"SVG Units","description":"SVG coordinate units. 'px': pixels, 'mm': millimeters, 'cm': centimeters, 'in': inches.","default":"px"},"description":"SVG coordinate units. 'px': pixels, 'mm': millimeters, 'cm': centimeters, 'in': inches."},{"name":"perceive_radicals","in":"query","required":false,"schema":{"type":"boolean","title":"Perceive Radicals","description":"Whether to detect and mark unpaired electrons/radicals.","default":false},"description":"Whether to detect and mark unpaired electrons/radicals."},{"name":"apply_mdl_highlighting","in":"query","required":false,"schema":{"type":"boolean","title":"Apply MDL HILITE","description":"Whether to apply MDL V3000 HILITE highlighting from molecule properties.","default":true},"description":"Whether to apply MDL V3000 HILITE highlighting from molecule properties."}],"responses":{"200":{"description":"Successful response - SVG image","content":{"application/json":{"schema":{}},"image/svg+xml":{}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/generate-structures":{"get":{"tags":["tools"],"summary":"Generates structures using the chemical structure generator","description":"Generates structures using the chemical structure generator based on the.\n\ncanonical generation path method.\n\nFor more information refer to:\n- McKay, B.D., Yirik, M.A. & Steinbeck, C. Surge: a fast open-source chemical graph generator. J Cheminform 14, 24 (2022). https://doi.org/10.1186/s13321-022-00604-9\n\nParameters:\n - **Molecular_Formula**: required (str): The molecular formula of the compound.\n\nReturns:\n- Dict: A dictionary containing structure generation results with:\n    - total_count: Total number of possible structures\n    - generated_count: Number of structures actually generated\n    - structures: List of SMILES strings (limited to 1000)\n    - settings: Dictionary describing the surge settings used\n    - formula: The input molecular formula\n    - limit_applied: Whether a limit was applied to results\n\nRaises:\n- HTTPException: If there was an error generating the structures.\n\nExample:\n- GET /generate-structures?molecular_formula=C4H10\n\nNote:\n- The maximum allowable count of heavy atoms is restricted to 10 to mitigate excessive utilization of this service.\n- Results are limited to the first 1000 structures when the total count exceeds this limit.","operationId":"generate_structures_tools_generate_structures_get","parameters":[{"name":"molecular_formula","in":"query","required":true,"schema":{"type":"string","maxLength":200,"title":"Molecular Formula","description":"Molecular Formula for the chemical structure to be generated"},"description":"Molecular Formula for the chemical structure to be generated","examples":{"example1":{"summary":"Example: Heavy atom count 6","value":"C6H6"},"example2":{"summary":"Example: Heavy atom count 8","value":"C8H8"}}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateStructuresResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/sugars-info":{"get":{"tags":["tools"],"summary":"Get the information whether a given molecule contains circular or linear sugar moieties","description":"Get the information whether a given molecule contains circular or linear sugar moieties. The presence of sugars is determnined using the Sugar Removal Utility.\n\nFor more information refer to:\n- Schaub, J., Zielesny, A., Steinbeck, C., Sorokina, M. Too sweet: cheminformatics for deglycosylation in natural products. J Cheminform 12, 67 (2020). https://doi.org/10.1186/s13321-020-00467-y.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **gly_bond**: (bool): Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.\n- **oxygen_atoms**: (bool): Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.\n- **oxygen_atoms_threshold**: (float): A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!\n- **linear_sugars_in_rings**: (bool): Whether to consider linear sugars in rings. Default is False.\n- **linear_sugars_min_size**: (int): Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.\n- **linear_sugars_max_size**: (int): Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.\n- **linear_acidic_sugars**: (bool): Whether to consider linear acidic sugars. Default is False.\n- **spiro_sugars**: (bool): Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.\n- **keto_sugars**: (bool): Whether circular sugars with keto groups should be detected. Default is False.\n\nReturns:\n- str: A message indicating the type of sugars present in the molecule, either \"The molecule contains Linear and Circular sugars\", \"The molecule contains only Linear sugar\", \"The molecule contains only Circular sugar\", or \"The molecule contains no sugar\".","operationId":"get_sugar_info_endpoint_tools_sugars_info_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: Strictosidinic Acid (COCONUT CNP0225072.3), containing a circular sugar moiety","value":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O"},"example2":{"summary":"Example: COCONUT CNP0254143.1, containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"gly_bond","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with O-Glycosidic Bonds","description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.","default":false},"description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False."},{"name":"oxygen_atoms","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with enough exocyclic Oxygen Atoms","description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.","default":true},"description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True."},{"name":"oxygen_atoms_threshold","in":"query","required":false,"schema":{"type":"number","title":"Exocyclic Oxygen Atoms to Atoms in Ring Ratio Threshold","description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!","minimum":0.0,"maximum":1.0,"default":0.5},"description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!"},{"name":"linear_sugars_in_rings","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Sugars in Rings","description":"Whether to consider linear sugars in rings. Default is False.","default":false},"description":"Whether to consider linear sugars in rings. Default is False."},{"name":"linear_sugars_min_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Minimum Size","description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.","minimum":0,"default":4},"description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size."},{"name":"linear_sugars_max_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Maximum Size","description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.","minimum":1,"default":7},"description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size."},{"name":"linear_acidic_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Acidic Sugars","description":"Whether to consider linear acidic sugars. Default is False.","default":false},"description":"Whether to consider linear acidic sugars. Default is False."},{"name":"spiro_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Spiro Sugars","description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.","default":false},"description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False."},{"name":"keto_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Keto Sugars","description":"Whether circular sugars with keto groups should be detected. Default is False.","default":false},"description":"Whether circular sugars with keto groups should be detected. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"string","title":"Response Get Sugar Info Endpoint Tools Sugars Info Get","$ref":"#/components/schemas/GetSugarInformationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/remove-linear-sugars":{"get":{"tags":["tools"],"summary":"Remove linear sugars from the given molecule and get the aglycone SMILES or a message indicating that no linear sugars were found","description":"Remove linear sugar moieties from a given molecule using the Sugar Removal Utility and return the aglycone SMILES string or a message indicating that no linear sugars were found.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **only_terminal**: (bool): Whether only terminal linear sugars should be removed. Default is True.\n- **preservation_mode**: (int): Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).\n- **preservation_threshold**: (int): Threshold value for the selected preservation mode. Default is 5 (heavy atoms).\n- **linear_sugars_in_rings**: (bool): Whether to consider linear sugars in rings. Default is False.\n- **linear_sugars_min_size**: (int): Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.\n- **linear_sugars_max_size**: (int): Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.\n- **linear_acidic_sugars**: (bool): Whether to consider linear acidic sugars. Default is False.\n- **mark_attach_points**: (bool): Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.\n\nReturns:\n- str: The aglycone SMILES string or \"No Linear sugar found\".","operationId":"remove_linear_sugars_endpoint_tools_remove_linear_sugars_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: COCONUT CNP0138295.1, containing multiple linear sugar moieties","value":"CC1=CC(O)=C2C(=O)C3=C(OC[C@@H](O)[C@@H](O)[C@H](O)[C@@H](O)C(=O)OC[C@@H](O)[C@@](O)(OC[C@@H](O)[C@@H](O)[C@H](O)[C@@H](O)C=O)[C@H](O)[C@@H](O)C=O)C=CC=C3C(=O)C2=C1"},"example2":{"summary":"Example: COCONUT CNP0254143.1, containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"only_terminal","in":"query","required":false,"schema":{"type":"boolean","title":"Remove Only Terminal Sugars","description":"Whether only terminal sugars should be removed. Default is True.","default":true},"description":"Whether only terminal sugars should be removed. Default is True."},{"name":"preservation_mode","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode","description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).","minimum":1,"maximum":3,"default":2},"description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2)."},{"name":"preservation_threshold","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode Threshold","description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms).","minimum":0,"default":5},"description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms)."},{"name":"linear_sugars_in_rings","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Sugars in Rings","description":"Whether to consider linear sugars in rings. Default is False.","default":false},"description":"Whether to consider linear sugars in rings. Default is False."},{"name":"linear_sugars_min_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Minimum Size","description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.","minimum":0,"default":4},"description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size."},{"name":"linear_sugars_max_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Maximum Size","description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.","minimum":1,"default":7},"description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size."},{"name":"linear_acidic_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Acidic Sugars","description":"Whether to consider linear acidic sugars. Default is False.","default":false},"description":"Whether to consider linear acidic sugars. Default is False."},{"name":"mark_attach_points","in":"query","required":false,"schema":{"type":"boolean","title":"Mark Attachment Points","description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.","default":false},"description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLinearSugarResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/remove-circular-sugars":{"get":{"tags":["tools"],"summary":"Remove circular sugars from the given molecule and get the aglycone SMILES or a message indicating that no circular sugars were found","description":"Remove circular sugar moieties from a given molecule using the Sugar Removal Utility and return the aglycone SMILES string or a message indicating that no circular sugars were found.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **gly_bond**: (bool): Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.\n- **only_terminal**: (bool): Whether only terminal sugars should be removed. Default is True.\n- **preservation_mode**: (int): Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).\n- **preservation_threshold**: (int): Threshold value for the selected preservation mode. Default is 5 (heavy atoms).\n- **oxygen_atoms**: (bool): Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.\n- **oxygen_atoms_threshold**: (float): A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!\n- **spiro_sugars**: (bool): Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.\n- **keto_sugars**: (bool): Whether circular sugars with keto groups should be detected. Default is False.\n- **mark_attach_points**: (bool): Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.\n\nReturns:\n- str: The aglycone SMILES string or \"No Circular sugar found\".","operationId":"remove_circular_sugars_endpoint_tools_remove_circular_sugars_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: Strictosidinic Acid (COCONUT CNP0225072.3), containing a circular sugar moiety","value":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O"},"example2":{"summary":"Example: COCONUT CNP0254143.1 containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"gly_bond","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with O-Glycosidic Bonds","description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.","default":false},"description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False."},{"name":"only_terminal","in":"query","required":false,"schema":{"type":"boolean","title":"Remove Only Terminal Sugars","description":"Whether only terminal sugars should be removed. Default is True.","default":true},"description":"Whether only terminal sugars should be removed. Default is True."},{"name":"preservation_mode","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode","description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).","minimum":1,"maximum":3,"default":2},"description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2)."},{"name":"preservation_threshold","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode Threshold","description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms).","minimum":0,"default":5},"description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms)."},{"name":"oxygen_atoms","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with enough exocyclic Oxygen Atoms","description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.","default":true},"description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True."},{"name":"oxygen_atoms_threshold","in":"query","required":false,"schema":{"type":"number","title":"Exocyclic Oxygen Atoms to Atoms in Ring Ratio Threshold","description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!","minimum":0.0,"maximum":1.0,"default":0.5},"description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!"},{"name":"spiro_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Spiro Sugars","description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.","default":false},"description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False."},{"name":"keto_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Keto Sugars","description":"Whether circular sugars with keto groups should be detected. Default is False.","default":false},"description":"Whether circular sugars with keto groups should be detected. Default is False."},{"name":"mark_attach_points","in":"query","required":false,"schema":{"type":"boolean","title":"Mark Attachment Points","description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.","default":false},"description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCircularSugarResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/remove-sugars":{"get":{"tags":["tools"],"summary":"Remove circular and linear sugars from the given molecule and get the aglycone SMILES or a message indicating that no sugars were found","description":"Remove circular and linear sugar moieties from a given molecule using the Sugar Removal Utility and return the aglycone SMILES string or a message indicating that no sugars were found.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **gly_bond**: (bool): Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.\n- **only_terminal**: (bool): Whether only terminal sugars should be removed. Default is True.\n- **preservation_mode**: (int): Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).\n- **preservation_threshold**: (int): Threshold value for the selected preservation mode. Default is 5 (heavy atoms).\n- **oxygen_atoms**: (bool): Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.\n- **oxygen_atoms_threshold**: (float): A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!\n- **linear_sugars_in_rings**: (bool): Whether to consider linear sugars in rings. Default is False.\n- **linear_sugars_min_size**: (int): Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.\n- **linear_sugars_max_size**: (int): Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.\n- **linear_acidic_sugars**: (bool): Whether to consider linear acidic sugars. Default is False.\n- **spiro_sugars**: (bool): Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.\n- **keto_sugars**: (bool): Whether circular sugars with keto groups should be detected. Default is False.\n- **mark_attach_points**: (bool): Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.\n\nReturns:\n- str: The aglycone SMILES string or \"No Linear or Circular sugars found\".","operationId":"remove_linear_and_circular_sugars_endpoint_tools_remove_sugars_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: Strictosidinic Acid (COCONUT CNP0225072.3), containing a circular sugar moiety","value":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O"},"example2":{"summary":"Example: COCONUT CNP0254143.1 containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"gly_bond","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with O-Glycosidic Bonds","description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.","default":false},"description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False."},{"name":"only_terminal","in":"query","required":false,"schema":{"type":"boolean","title":"Remove Only Terminal Sugars","description":"Whether only terminal sugars should be removed. Default is True.","default":true},"description":"Whether only terminal sugars should be removed. Default is True."},{"name":"preservation_mode","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode","description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).","minimum":1,"maximum":3,"default":2},"description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2)."},{"name":"preservation_threshold","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode Threshold","description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms).","minimum":0,"default":5},"description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms)."},{"name":"oxygen_atoms","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with enough exocyclic Oxygen Atoms","description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.","default":true},"description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True."},{"name":"oxygen_atoms_threshold","in":"query","required":false,"schema":{"type":"number","title":"Exocyclic Oxygen Atoms to Atoms in Ring Ratio Threshold","description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!","minimum":0.0,"maximum":1.0,"default":0.5},"description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!"},{"name":"linear_sugars_in_rings","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Sugars in Rings","description":"Whether to consider linear sugars in rings. Default is False.","default":false},"description":"Whether to consider linear sugars in rings. Default is False."},{"name":"linear_sugars_min_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Minimum Size","description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.","minimum":0,"default":4},"description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size."},{"name":"linear_sugars_max_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Maximum Size","description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.","minimum":1,"default":7},"description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size."},{"name":"linear_acidic_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Acidic Sugars","description":"Whether to consider linear acidic sugars. Default is False.","default":false},"description":"Whether to consider linear acidic sugars. Default is False."},{"name":"spiro_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Spiro Sugars","description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.","default":false},"description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False."},{"name":"keto_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Keto Sugars","description":"Whether circular sugars with keto groups should be detected. Default is False.","default":false},"description":"Whether circular sugars with keto groups should be detected. Default is False."},{"name":"mark_attach_points","in":"query","required":false,"schema":{"type":"boolean","title":"Mark Attachment Points","description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.","default":false},"description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCircularandLinearSugarResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/extract-aglycone-and-sugars":{"get":{"tags":["tools"],"summary":"Extract the aglycone and the sugar moieties from a given molecule and get their SMILES strings as a printed list ([\"<SMILES>\", \"<SMILES>\", ...]). The first position is always the aglycone.","description":"Extracts the aglycone and sugar moieties from a given molecule using the Sugar Detection Utility and returns their SMILES strings as a printed list.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **extract_circular_sugars**: (bool): Whether to extract circular sugars. Default is True.\n- **extract_linear_sugars**: (bool): Whether to extract linear sugars. Default is False.\n- **gly_bond**: (bool): Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.\n- **only_terminal**: (bool): Whether only terminal sugars should be removed. Default is True.\n- **preservation_mode**: (int): Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).\n- **preservation_threshold**: (int): Threshold value for the selected preservation mode. Default is 5 (heavy atoms).\n- **oxygen_atoms**: (bool): Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.\n- **oxygen_atoms_threshold**: (float): A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!\n- **linear_sugars_in_rings**: (bool): Whether to consider linear sugars in rings. Default is False.\n- **linear_sugars_min_size**: (int): Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.\n- **linear_sugars_max_size**: (int): Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.\n- **linear_acidic_sugars**: (bool): Whether to consider linear acidic sugars. Default is False.\n- **spiro_sugars**: (bool): Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.\n- **keto_sugars**: (bool): Whether circular sugars with keto groups should be detected. Default is False.\n- **mark_attach_points**: (bool): Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.\n- **post_process_sugars**: (bool): Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False.\n- **limit_post_process_by_size**: (bool): Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False.\n\nReturns:\n- list: The SMILES representations of the aglycone and sugars. The first one is always the aglycone. The list has a variable length dependening on how many sugar moieties were found.","operationId":"extract_aglycone_and_sugars_endpoint_tools_extract_aglycone_and_sugars_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: Strictosidinic Acid (COCONUT CNP0225072.3), containing a circular sugar moiety","value":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O"},"example2":{"summary":"Example: COCONUT CNP0254143.1 containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"extract_circular_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Extract Circular Sugars","description":"Whether to extract circular sugars. Default is True.","default":true},"description":"Whether to extract circular sugars. Default is True."},{"name":"extract_linear_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Extract Linear Sugars","description":"Whether to extract linear sugars. Default is False.","default":false},"description":"Whether to extract linear sugars. Default is False."},{"name":"gly_bond","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with O-Glycosidic Bonds","description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.","default":false},"description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False."},{"name":"only_terminal","in":"query","required":false,"schema":{"type":"boolean","title":"Remove Only Terminal Sugars","description":"Whether only terminal sugars should be removed. Default is True.","default":true},"description":"Whether only terminal sugars should be removed. Default is True."},{"name":"preservation_mode","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode","description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).","minimum":1,"maximum":3,"default":2},"description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2)."},{"name":"preservation_threshold","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode Threshold","description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms).","minimum":0,"default":5},"description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms)."},{"name":"oxygen_atoms","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with enough exocyclic Oxygen Atoms","description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.","default":true},"description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True."},{"name":"oxygen_atoms_threshold","in":"query","required":false,"schema":{"type":"number","title":"Exocyclic Oxygen Atoms to Atoms in Ring Ratio Threshold","description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!","minimum":0.0,"maximum":1.0,"default":0.5},"description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!"},{"name":"linear_sugars_in_rings","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Sugars in Rings","description":"Whether to consider linear sugars in rings. Default is False.","default":false},"description":"Whether to consider linear sugars in rings. Default is False."},{"name":"linear_sugars_min_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Minimum Size","description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.","minimum":0,"default":4},"description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size."},{"name":"linear_sugars_max_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Maximum Size","description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.","minimum":1,"default":7},"description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size."},{"name":"linear_acidic_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Acidic Sugars","description":"Whether to consider linear acidic sugars. Default is False.","default":false},"description":"Whether to consider linear acidic sugars. Default is False."},{"name":"spiro_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Spiro Sugars","description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.","default":false},"description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False."},{"name":"keto_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Keto Sugars","description":"Whether circular sugars with keto groups should be detected. Default is False.","default":false},"description":"Whether circular sugars with keto groups should be detected. Default is False."},{"name":"mark_attach_points","in":"query","required":false,"schema":{"type":"boolean","title":"Mark Attachment Points","description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.","default":false},"description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False."},{"name":"post_process_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Post-process Sugars","description":"Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False.","default":false},"description":"Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False."},{"name":"limit_post_process_by_size","in":"query","required":false,"schema":{"type":"boolean","title":"Limit Post-processing by Size","description":"Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False.","default":false},"description":"Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractAglyconeAndSugarsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/tools/get-aglycone-and-sugar-indices":{"get":{"tags":["tools"],"summary":"Get the atom indices of the aglycone and the sugar moieties from a given molecule.","description":"Extracts the aglycone and sugar moieties from a given molecule using the Sugar Detection Utility and returns their atom indices as a printed list of indices lists.\n\nParameters:\n- **SMILES string**: (str): SMILES: string representation of the molecule (required, query parameter)\n- **extract_circular_sugars**: (bool): Whether to extract circular sugars. Default is True.\n- **extract_linear_sugars**: (bool): Whether to extract linear sugars. Default is False.\n- **gly_bond**: (bool): Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.\n- **only_terminal**: (bool): Whether only terminal sugars should be removed. Default is True.\n- **preservation_mode**: (int): Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).\n- **preservation_threshold**: (int): Threshold value for the selected preservation mode. Default is 5 (heavy atoms).\n- **oxygen_atoms**: (bool): Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.\n- **oxygen_atoms_threshold**: (float): A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!\n- **linear_sugars_in_rings**: (bool): Whether to consider linear sugars in rings. Default is False.\n- **linear_sugars_min_size**: (int): Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.\n- **linear_sugars_max_size**: (int): Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.\n- **linear_acidic_sugars**: (bool): Whether to consider linear acidic sugars. Default is False.\n- **spiro_sugars**: (bool): Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.\n- **keto_sugars**: (bool): Whether circular sugars with keto groups should be detected. Default is False.\n- **mark_attach_points**: (bool): Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.\n- **post_process_sugars**: (bool): Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False.\n- **limit_post_process_by_size**: (bool): Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False.\n\nReturns:\n- list: The atom indices of the aglycone and sugars. The first set of indices is always the aglycone. The list has a variable length dependening on how many sugar moieties were found.","operationId":"get_aglycone_and_sugar_indices_endpoint_tools_get_aglycone_and_sugar_indices_get","parameters":[{"name":"smiles","in":"query","required":true,"schema":{"type":"string","maxLength":5000,"title":"SMILES","description":"SMILES: string representation of the molecule"},"description":"SMILES: string representation of the molecule","examples":{"example1":{"summary":"Example: Strictosidinic Acid (COCONUT CNP0225072.3), containing a circular sugar moiety","value":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O"},"example2":{"summary":"Example: COCONUT CNP0254143.1 containing a circular and a linear sugar moiety","value":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1"}}},{"name":"extract_circular_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Extract Circular Sugars","description":"Whether to extract circular sugars. Default is True.","default":true},"description":"Whether to extract circular sugars. Default is True."},{"name":"extract_linear_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Extract Linear Sugars","description":"Whether to extract linear sugars. Default is False.","default":false},"description":"Whether to extract linear sugars. Default is False."},{"name":"gly_bond","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with O-Glycosidic Bonds","description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False.","default":false},"description":"Whether to consider only circular sugars with glycosidic bonds in the analysis. Default is False."},{"name":"only_terminal","in":"query","required":false,"schema":{"type":"boolean","title":"Remove Only Terminal Sugars","description":"Whether only terminal sugars should be removed. Default is True.","default":true},"description":"Whether only terminal sugars should be removed. Default is True."},{"name":"preservation_mode","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode","description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2).","minimum":1,"maximum":3,"default":2},"description":"Mode to determine which disconnected structures to preserve. All (1): Preserve all disconnected structures (note: this might lead to no circular sugar moieties being detected, depending on the other settings). Heavy atom count (2): Remove disconnected structures that do not have enough heavy atoms. Molecular weight (3): Remove disconnected structures that do not have a sufficient molecular weight. Default is heavy atom count (2)."},{"name":"preservation_threshold","in":"query","required":false,"schema":{"type":"integer","title":"Preservation Mode Threshold","description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms).","minimum":0,"default":5},"description":"Threshold value for the selected preservation mode. Default is 5 (heavy atoms)."},{"name":"oxygen_atoms","in":"query","required":false,"schema":{"type":"boolean","title":"Detect only Circular Sugars with enough exocyclic Oxygen Atoms","description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True.","default":true},"description":"Whether to consider only circular sugars with a sufficient number of exocyclic oxygen atoms in the analysis (see oxygen_atoms_threshold). Default is True."},{"name":"oxygen_atoms_threshold","in":"query","required":false,"schema":{"type":"number","title":"Exocyclic Oxygen Atoms to Atoms in Ring Ratio Threshold","description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!","minimum":0.0,"maximum":1.0,"default":0.5},"description":"A number giving the minimum attached exocyclic oxygen atoms to atom number in the ring ratio a circular sugar needs to have to be considered in the analysis. Default is 0.5 (a 6-membered ring needs at least 3 attached exocyclic oxygen atoms). Must be positive!"},{"name":"linear_sugars_in_rings","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Sugars in Rings","description":"Whether to consider linear sugars in rings. Default is False.","default":false},"description":"Whether to consider linear sugars in rings. Default is False."},{"name":"linear_sugars_min_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Minimum Size","description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size.","minimum":0,"default":4},"description":"Minimum size of linear sugars to consider. Default is 4. Must be positive and higher than or equal to 0 and also smaller than the linear sugar candidate maximum size."},{"name":"linear_sugars_max_size","in":"query","required":false,"schema":{"type":"integer","title":"Linear Sugars Maximum Size","description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size.","minimum":1,"default":7},"description":"Maximum size of linear sugars to consider. Default is 7. Must be positive and higher than or equal to 1 and also higher than the linear sugar candidate minimum size."},{"name":"linear_acidic_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Linear Acidic Sugars","description":"Whether to consider linear acidic sugars. Default is False.","default":false},"description":"Whether to consider linear acidic sugars. Default is False."},{"name":"spiro_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Spiro Sugars","description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False.","default":false},"description":"Whether spiro rings (rings that share one atom with another cycle) should be included in the circular sugar detection. Default is False."},{"name":"keto_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Detect Keto Sugars","description":"Whether circular sugars with keto groups should be detected. Default is False.","default":false},"description":"Whether circular sugars with keto groups should be detected. Default is False."},{"name":"mark_attach_points","in":"query","required":false,"schema":{"type":"boolean","title":"Mark Attachment Points","description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False.","default":false},"description":"Whether to mark the attachment points of removed sugars with a dummy atom. Default is False."},{"name":"post_process_sugars","in":"query","required":false,"schema":{"type":"boolean","title":"Post-process Sugars","description":"Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False.","default":false},"description":"Whether the extracted sugar moieties should be post-processed, i.e. bond splitting (O-glycosidic, ether, ester, peroxide) to separate the individual sugars, before being output. Default is False."},{"name":"limit_post_process_by_size","in":"query","required":false,"schema":{"type":"boolean","title":"Limit Post-processing by Size","description":"Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False.","default":false},"description":"Whether the post-processing of extracted sugar moieties should be limited to structures bigger than a defined size (see preservation mode (threshold)) to preserve smaller modifications. Default is False."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAglyconeAndSugarIndicesResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ocsr/process":{"post":{"tags":["ocsr"],"summary":"Detect, segment and convert a chemical structure depiction into a SMILES string using the DECIMER","description":"Detect, segment and convert a chemical structure depiction into a SMILES.\n\nstring using the DECIMER modules.\n\nParameters:\n- **path**: optional if img is provided (str): Local or Remote path to the image file.\n- **reference**: optional (str): User-defined reference information for tracking.\n- **img**: optional if a valid path is provided (str): Image: Bytes content of the chemical structure depiction image.\n- **hand_drawn**: optional (bool): Use hand-drawn model for prediction. Defaults to False.\n\nReturns:\n- JSONResponse: A JSON response containing the extracted SMILES and the reference (if provided).\n\nRaises:\n- HTTPException: If the 'path' parameter is not provided or if it is an invalid URL or file path.\n- HTTPException: If the 'img' parameter is provided, but the content is not accessible.","operationId":"Extract_ChemicalInfo_From_File_ocsr_process_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_Extract_ChemicalInfo_From_File_ocsr_process_post"}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractChemicalInfoResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ocsr/process-upload":{"post":{"tags":["ocsr"],"summary":"Detect, segment and convert a chemical structure depiction in the uploaded file into a SMILES string using the DECIMER","description":"Detect, segment and convert a chemical structure depiction in the.\n\nuploaded image file into a SMILES string using the DECIMER modules.\n\nParameters:\n- **file**: required (File): Chemical structure depiction image\n- **hand_drawn**: optional (bool): Use hand-drawn model for prediction. Defaults to False.\n\nReturns:\n- JSONResponse: A JSON response containing the extracted SMILES and the reference (if provided).\n\nRaises:\n- HTTPException: If the 'path' parameter is not provided or if it is an invalid URL or file path.\n- HTTPException: If the 'img' parameter is provided, but the URL is not accessible.","operationId":"extract_chemicalinfo_from_upload_ocsr_process_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_chemicalinfo_from_upload_ocsr_process_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtractChemicalInfoResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BadRequestModel"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFoundModel"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"BadRequestModel":{"properties":{"error":{"type":"string","title":"Error","default":"Bad Request"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"BadRequestModel","description":"Represents a Bad Request response in an API.\n\nArgs:\n    detail (str): A detailed message describing the nature of the bad request."},"Body_Extract_ChemicalInfo_From_File_ocsr_process_post":{"properties":{"path":{"type":"string","title":"Path","description":"Local or Remote path to the image file"},"reference":{"type":"string","title":"Reference","description":"User-defined reference information for tracking"},"img":{"type":"string","title":"Img","description":"Image: Bytes content of the chemical structure depiction image"},"hand_drawn":{"type":"boolean","title":"Hand Drawn","description":"Use hand-drawn model for prediction","default":false}},"type":"object","title":"Body_Extract_ChemicalInfo_From_File_ocsr_process_post"},"Body_cdx_to_mol_convert_cdx_to_mol_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"ChemDraw binary (.cdx) file to convert to MOL format"}},"type":"object","required":["file"],"title":"Body_cdx_to_mol_convert_cdx_to_mol_post"},"Body_extract_chemicalinfo_from_upload_ocsr_process_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File","description":"Chemical structure depiction image"},"hand_drawn":{"type":"boolean","title":"Hand Drawn","description":"Use hand-drawn model for prediction","default":false}},"type":"object","required":["file"],"title":"Body_extract_chemicalinfo_from_upload_ocsr_process_upload_post"},"CDXToMolResponse":{"properties":{"molblock":{"type":"string","title":"Molecule Block","description":"The MDL MOL block parsed from the uploaded .cdx file."}},"type":"object","required":["molblock"],"title":"CDXToMolResponse","description":"Represents a response containing a MOL block parsed from a .cdx file.\n\nProperties:\n- molblock (str): The MDL MOL block content parsed from the uploaded CDX file.","examples":[{"message":"Success","output":"\n\n\n  2  1  0  0  0  0  0  0  0  0999 V2000\n    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.2990    0.7500    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n  1  2  1  0\nM  END"}]},"COCONUTPreprocessingModel":{"properties":{"original_mol":{"$ref":"#/components/schemas/Original"},"standardised_mol":{"$ref":"#/components/schemas/Standardized"},"parent":{"$ref":"#/components/schemas/Parent"}},"type":"object","required":["original_mol","standardised_mol","parent"],"title":"COCONUTPreprocessingModel","description":"Represents a molecule after CocoNut preprocessing.\n\nAttributes:\n    original_mol (Original): Original molecule information.\n    standardised_mol (Standardized): Standardized molecule information.\n    parent (Parent): Parent molecule information."},"Class":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"chemont_id":{"type":"string","title":"Chemont Id"},"url":{"type":"string","title":"Url"}},"type":"object","required":["name","description","chemont_id","url"],"title":"Class","description":"Represents a Class in ClassyFire taxonomy.\n\nAttributes:\n    name (str): The name of the Class.\n    description (str): The description of the Class.\n    chemont_id (str): The ChemOnt ID of the Class.\n    url (str): The URL associated with the Class."},"ClassyFireJob":{"properties":{"id":{"type":"integer","title":"Id"},"label":{"type":"string","title":"Label"},"finished_at":{"title":"Finished At"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"query_errors":{"title":"Query Errors"},"finished_processing_at":{"title":"Finished Processing At"},"query_type":{"type":"string","title":"Query Type"},"fstruc_file_name":{"title":"Fstruc File Name"},"fstruc_content_type":{"title":"Fstruc Content Type"},"fstruc_file_size":{"title":"Fstruc File Size"},"fstruc_updated_at":{"title":"Fstruc Updated At"},"query_input":{"type":"string","title":"Query Input"},"tag_list":{"items":{"type":"string"},"type":"array","title":"Tag List"}},"type":"object","required":["id","label","finished_at","created_at","updated_at","query_errors","finished_processing_at","query_type","fstruc_file_name","fstruc_content_type","fstruc_file_size","fstruc_updated_at","query_input","tag_list"],"title":"ClassyFireJob","description":"Represents a ClassyFire job.\n\nAttributes:\n    id (int): The ID of the job.\n    label (str): The label of the job.\n    finished_at (Any): The timestamp when the job finished.\n    created_at (str): The timestamp when the job was created.\n    updated_at (str): The timestamp when the job was last updated.\n    query_errors (Any): Any errors related to the query.\n    finished_processing_at (Any): The timestamp when processing finished.\n    query_type (str): The type of query.\n    fstruc_file_name (Any): The name of the file containing structural data.\n    fstruc_content_type (Any): The content type of the structural file.\n    fstruc_file_size (Any): The size of the structural file.\n    fstruc_updated_at (Any): The timestamp when the structural file was updated.\n    query_input (str): The input for the query.\n    tag_list (List[str]): List of tags associated with the job."},"ClassyFireResult":{"properties":{"id":{"type":"integer","title":"Id"},"label":{"type":"string","title":"Label"},"classification_status":{"type":"string","title":"Classification Status"},"number_of_elements":{"type":"integer","title":"Number Of Elements"},"number_of_pages":{"type":"integer","title":"Number Of Pages"},"invalid_entities":{"items":{},"type":"array","title":"Invalid Entities"},"entities":{"items":{"$ref":"#/components/schemas/Entity"},"type":"array","title":"Entities"}},"type":"object","required":["id","label","classification_status","number_of_elements","number_of_pages","invalid_entities","entities"],"title":"ClassyFireResult","description":"Represents a classification result from ClassyFire.\n\nAttributes:\n    id (int): Identifier for the result.\n    label (str): Label for the result.\n    classification_status (str): Status of the classification.\n    number_of_elements (int): Number of elements in the classification.\n    number_of_pages (int): Number of pages.\n    invalid_entities (List): List of invalid entities.\n    entities (List[Entity]): List of entities in the classification."},"Depict2DResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"Depict2DResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): SVG code block of the depicted image","examples":[{"input":"CCCOC","message":"Success","output":"SVG string"}]},"Depict3DResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"Depict3DResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): HTML code block of the depicted image","examples":[{"input":"CCCOC","message":"Success","output":"HTML string"}]},"Descriptors":{"properties":{"atom_count":{"type":"integer","title":"Atom Count"},"heavy_atom_count":{"type":"integer","title":"Heavy Atom Count"},"molecular_weight":{"type":"number","title":"Molecular Weight"},"exact_molecular_weight":{"type":"number","title":"Exact Molecular Weight"},"alogp":{"type":"number","title":"Alogp"},"rotatable_bond_count":{"type":"integer","title":"Rotatable Bond Count"},"topological_polar_surface_area":{"type":"integer","title":"Topological Polar Surface Area"},"hydrogen_bond_acceptors":{"type":"integer","title":"Hydrogen Bond Acceptors"},"hydrogen_bond_donors":{"type":"integer","title":"Hydrogen Bond Donors"},"hydrogen_bond_acceptors_lipinski":{"type":"integer","title":"Hydrogen Bond Acceptors Lipinski"},"hydrogen_bond_donors_lipinski":{"type":"integer","title":"Hydrogen Bond Donors Lipinski"},"lipinski_rule_of_five_violations":{"type":"integer","title":"Lipinski Rule Of Five Violations"},"aromatic_rings_count":{"type":"integer","title":"Aromatic Rings Count"},"qed_drug_likeliness":{"type":"number","title":"Qed Drug Likeliness"},"formal_charge":{"type":"integer","title":"Formal Charge"},"fraction_csp3":{"type":"integer","title":"Fraction Csp3"},"number_of_minimal_rings":{"type":"integer","title":"Number Of Minimal Rings"},"van_der_waals_volume":{"type":"string","title":"Van Der Waals Volume"},"linear_sugars":{"type":"boolean","title":"Linear Sugars"},"circular_sugars":{"type":"boolean","title":"Circular Sugars"},"Murcko_framework":{"type":"string","title":"Murcko Framework"},"nplikeness":{"type":"number","title":"Nplikeness"}},"type":"object","required":["atom_count","heavy_atom_count","molecular_weight","exact_molecular_weight","alogp","rotatable_bond_count","topological_polar_surface_area","hydrogen_bond_acceptors","hydrogen_bond_donors","hydrogen_bond_acceptors_lipinski","hydrogen_bond_donors_lipinski","lipinski_rule_of_five_violations","aromatic_rings_count","qed_drug_likeliness","formal_charge","fraction_csp3","number_of_minimal_rings","van_der_waals_volume","linear_sugars","circular_sugars","Murcko_framework","nplikeness"],"title":"Descriptors","description":"Represents a collection of molecular descriptors.\n\nThis class provides a structure for storing various molecular descriptors\nthat characterize a molecule's chemical properties.\n\nAttributes:\n    atom_count (int): Total count of atoms in the molecule.\n    heavy_atom_count (int): Count of heavy (non-hydrogen) atoms.\n    molecular_weight (float): Molecular weight of the molecule.\n    exact_molecular_weight (float): Exact molecular weight.\n    alogp (float): Calculated ALogP (partition coefficient) value.\n    rotatable_bond_count (int): Count of rotatable bonds in the molecule.\n    topological_polar_surface_area (int): Topological polar surface area.\n    hydrogen_bond_acceptors (int): Count of hydrogen bond acceptors.\n    hydrogen_bond_donors (int): Count of hydrogen bond donors.\n    hydrogen_bond_acceptors_lipinski (int): Lipinski's count of hydrogen bond acceptors.\n    hydrogen_bond_donors_lipinski (int): Lipinski's count of hydrogen bond donors.\n    lipinski_rule_of_five_violations (int): Count of Lipinski's rule-of-five violations.\n    aromatic_rings_count (int): Count of aromatic rings in the molecule.\n    qed_drug_likeliness (float): Quantitative Estimate of Drug-likeness (QED) value.\n    formal_charge (int): Formal charge of the molecule.\n    fraction_csp3 (int): Fraction of carbon atoms that are sp3 hybridized.\n    number_of_minimal_rings (int): Count of minimal rings in the molecule.\n    van_der_waals_volume (str): Van der Waals volume description.\n    linear_sugars (bool): True if linear sugars are present, False otherwise.\n    circular_sugars (bool): True if circular sugars are present, False otherwise.\n    Murcko_framework (str): Murcko framework description.\n    nplikeness (float): NP-likeness value."},"DirectParent":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"chemont_id":{"type":"string","title":"Chemont Id"},"url":{"type":"string","title":"Url"}},"type":"object","required":["name","description","chemont_id","url"],"title":"DirectParent","description":"Represents a Direct Parent within a classification.\n\nAttributes:\n    name (str): The name of the direct parent.\n    description (str): Description of the direct parent.\n    chemont_id (str): Identifier for the direct parent.\n    url (str): URL associated with the direct parent."},"Entity":{"properties":{"identifier":{"type":"string","title":"Identifier"},"smiles":{"type":"string","title":"Smiles"},"inchikey":{"type":"string","title":"Inchikey"},"kingdom":{"$ref":"#/components/schemas/Kingdom"},"superclass":{"$ref":"#/components/schemas/Superclass"},"class":{"$ref":"#/components/schemas/Class"},"subclass":{"$ref":"#/components/schemas/Subclass"},"intermediate_nodes":{"items":{},"type":"array","title":"Intermediate Nodes"},"direct_parent":{"$ref":"#/components/schemas/DirectParent"},"alternative_parents":{"items":{},"type":"array","title":"Alternative Parents"},"molecular_framework":{"type":"string","title":"Molecular Framework"},"substituents":{"items":{"type":"string"},"type":"array","title":"Substituents"},"description":{"type":"string","title":"Description"},"external_descriptors":{"items":{"$ref":"#/components/schemas/ExternalDescriptor"},"type":"array","title":"External Descriptors"},"ancestors":{"items":{"type":"string"},"type":"array","title":"Ancestors"},"predicted_chebi_terms":{"items":{"type":"string"},"type":"array","title":"Predicted Chebi Terms"},"predicted_lipidmaps_terms":{"items":{},"type":"array","title":"Predicted Lipidmaps Terms"},"classification_version":{"type":"string","title":"Classification Version"}},"type":"object","required":["identifier","smiles","inchikey","kingdom","superclass","class","subclass","intermediate_nodes","direct_parent","alternative_parents","molecular_framework","substituents","description","external_descriptors","ancestors","predicted_chebi_terms","predicted_lipidmaps_terms","classification_version"],"title":"Entity","description":"Represents a chemical Entity with classification information.\n\nAttributes:\n    identifier (str): Unique identifier for the entity.\n    smiles (str): SMILES representation of the entity.\n    inchikey (str): InChIKey of the entity.\n    kingdom (Kingdom): Kingdom classification of the entity.\n    superclass (Superclass): Superclass classification of the entity.\n    class_ (Class): Class classification of the entity.\n    subclass (Subclass): Subclass classification of the entity.\n    intermediate_nodes (List): List of intermediate nodes.\n    direct_parent (DirectParent): Direct parent classification of the entity.\n    alternative_parents (List): List of alternative parent classifications.\n    molecular_framework (str): The molecular framework of the entity.\n    substituents (List[str]): List of substituents in the entity.\n    description (str): Description of the entity.\n    external_descriptors (List[ExternalDescriptor]): List of external descriptors.\n    ancestors (List[str]): List of ancestor classifications.\n    predicted_chebi_terms (List[str]): List of predicted ChEBI terms.\n    predicted_lipidmaps_terms (List): List of predicted LipidMaps terms.\n    classification_version (str): Version of the classification."},"ErrorResponse":{"properties":{"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"ErrorResponse","description":"Represents an error response.\n\nAttributes:\n    detail (str): A description of the error. This attribute contains a human-readable description of the error."},"ExternalDescriptor":{"properties":{"source":{"type":"string","title":"Source"},"source_id":{"type":"string","title":"Source Id"},"annotations":{"items":{"type":"string"},"type":"array","title":"Annotations"}},"type":"object","required":["source","source_id","annotations"],"title":"ExternalDescriptor","description":"Represents an External Descriptor associated with an Entity.\n\nAttributes:\n    source (str): The source of the external descriptor.\n    source_id (str): Identifier for the external descriptor.\n    annotations (List[str]): List of annotations for the descriptor."},"ExtractAglyconeAndSugarsResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"items":{"type":"string"},"type":"array","title":"Output"}},"type":"object","required":["output"],"title":"ExtractAglyconeAndSugarsResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): The SMILES representations of the aglycone and sugars as a printed list ([\"<SMILES>\", \"<SMILES>\", ...]). The first one is always the aglycone. The list has a variable length dependening on how many sugar moieties were found.","examples":[{"input":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O","message":"Success","output":"[\"C=CC1C(C[C@H]2C3=C(CCN2)C4=C(C=CC=C4)N3)C(=CO[C@H]1O)C(=O)O\",\"C([C@@H]1[C@H]([C@@H]([C@H]([C@H](O)O1)O)O)O)O\"]"}]},"ExtractChemicalInfoResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"reference":{"type":"string","title":"Reference"},"smiles":{"type":"string","title":"Smiles"}},"type":"object","required":["reference","smiles"],"title":"ExtractChemicalInfoResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    reference (str): Reference string to the image input.\n    smiles (str): SMILES string generated by DECIMER."},"FilteredMoleculesResponse":{"properties":{"filtered_smiles":{"type":"string","title":"Filtered SMILES","description":"The SMILES representation of the molecule."},"filters":{"type":"string","title":"filters","description":"Set of filtered values with True/False flag"}},"type":"object","required":["filtered_smiles","filters"],"title":"FilteredMoleculesResponse","description":"Represents a response containing standardized molecule information.\n\nProperties:\n- filtered_smiles (str): The canonical SMILES representation of the molecule.\n- filters (str): Set of filtered values with True/False flag","examples":[{"input":"CCCCCCC","message":"Success","output":"Filtered SMILES, filters"}]},"FixRadicalsResponse":{"properties":{"fixed_smiles":{"type":"string","title":"Fixed SMILES","description":"Canonical SMILES string with radicals fixed."},"radicals_detected":{"type":"integer","title":"Radicals Detected","description":"Number of single electron radicals detected in the molecule."},"radicals_fixed":{"type":"integer","title":"Radicals Fixed","description":"Number of radicals successfully fixed (C, N, O only)."}},"type":"object","required":["fixed_smiles","radicals_detected","radicals_fixed"],"title":"FixRadicalsResponse","description":"Represents a response containing fixed radical molecule.\n\nProperties:\n- fixed_smiles (str): Canonical SMILES string with radicals fixed\n- radicals_detected (int): Number of radicals detected in the molecule\n- radicals_fixed (int): Number of radicals successfully fixed","examples":[{"input":"[CH3]","message":"Success","output":{"fixed_smiles":"C","radicals_detected":1,"radicals_fixed":1}},{"input":"CC[CH2]","message":"Success","output":{"fixed_smiles":"CCC","radicals_detected":1,"radicals_fixed":1}}]},"GenerateCXSMILESResponse":{"properties":{"smiles":{"type":"string","title":"SMILES","description":"The generated CXSMILES string corresponding to the input SMILES."}},"type":"object","required":["smiles"],"title":"GenerateCXSMILESResponse","description":"Represents a response containing a generated CXSMILES string.\n\nProperties:\n- smiles (str): The generated CXSMILES string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"CN1C=NC2=C1C(=O)N(C)C(=O)N2C |(2.68,2.45,;2.22,1.02,;3.1,-0.19,;2.22,-1.4,;0.8,-0.94,;0.8,0.56,;-0.5,1.31,;-0.5,2.81,;-1.8,0.56,;-3.1,1.31,;-1.8,-0.94,;-3.1,-1.69,;-0.5,-1.69,;-0.5,-3.19,)|"}]},"GenerateCanonicalResponse":{"properties":{"smiles":{"type":"string","title":"SMILES","description":"The generated Canonical SMILES string corresponding to the input SMILES."}},"type":"object","required":["smiles"],"title":"GenerateCanonicalResponse","description":"Represents a response containing a generated SMILES string.\n\nProperties:\n- smiles (str): The generated Canonical SMILES string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"CN1C=NC2=C1C(=O)N(C)C(=O)N2C"}]},"GenerateDescriptorsResponse":{"properties":{"descriptors":{"additionalProperties":true,"type":"object","title":"Descriptors","description":"A dictionary of descriptors and their values."}},"type":"object","required":["descriptors"],"title":"GenerateDescriptorsResponse","description":"Represents a successful response containing descriptors for a molecule.\n\nProperties:\n- descriptors (dict): A dictionary of descriptors and their values.","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"a defined set of moleculare descriptors calculated"}]},"GenerateFormatsResponse":{"properties":{"mol":{"type":"string","title":"Mol","description":"The mol block representation of the molecule"},"canonicalsmiles":{"type":"string","title":"Canonicalsmiles","description":"The canonical SMILES representation of the molecule"},"inchi":{"type":"string","title":"Inchi","description":"The InChI representation of the molecule"},"inchikey":{"type":"string","title":"Inchikey","description":"The InChI Key representation of the molecule"}},"type":"object","required":["mol","canonicalsmiles","inchi","inchikey"],"title":"GenerateFormatsResponse","description":"Represents a response containing multiple molecular formats.\n\nProperties:\n- mol (str): The mol block representation\n- canonicalsmiles (str): The canonical SMILES representation\n- inchi (str): The InChI representation\n- inchikey (str): The InChI Key representation","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":{"canonicalsmiles":"CN1C=NC2=C1C(=O)N(C)C(=O)N2C","inchi":"InChI=1S/C8H10N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h4H,1-3H3","inchikey":"RYYVLZVUVIJVGH-UHFFFAOYSA-N","mol":"molecule block data..."}}]},"GenerateFunctionalGroupResponse":{"properties":{"functional_groups":{"items":{"type":"string"},"type":"array","title":"FunctionalGroups","description":"A list of identified functional groups."}},"type":"object","required":["functional_groups"],"title":"GenerateFunctionalGroupResponse","description":"Represents a response containing a list of identified functional groups in the molecule.\n\nProperties:\n- functional_groups (list[str]): a list of identified functional groups in the molecule","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"[IFG(atomIds=(1,), atoms='n', type='cn(c)C'),\n IFG(atomIds=(3,), atoms='n', type='cnc'),\n IFG(atomIds=(7,), atoms='O', type='c=O'),\n IFG(atomIds=(8,), atoms='n', type='cn(c)C'),\n IFG(atomIds=(10,), atoms='O', type='c=O'),\n IFG(atomIds=(11,), atoms='n', type='cn(c)C')]"}]},"GenerateHOSECodeResponse":{"properties":{"hose_codes":{"items":{"type":"string"},"type":"array","title":"HOSE Codes","description":"A list of HOSE codes for each atom in the molecule."}},"type":"object","required":["hose_codes"],"title":"GenerateHOSECodeResponse","description":"Represents a response containing HOSE codes for a molecule.\n\nProperties:\n- hose_codes (list[str]): A list of HOSE codes for each atom in the molecule.","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"[  \"C-4;N(//)\",  \"N-3;*C*CC(//)\",  \"C-3;*N*N(//)\",  \"N-2;*C*C(//)\",  \"C-3;*C*N*N(//)\",  \"C-3;*C*C*N(//)\",  \"C-3;=O*C*N(//)\",  \"O-1;=C(//)\",  \"N-3;*C*CC(//)\",  \"C-3;=O*N*N(//)\",  \"O-1;=C(//)\",  \"N-3;*C*CC(//)\",  \"C-4;N(//)\"]"}]},"GenerateInChIKeyResponse":{"properties":{"inchikey":{"type":"string","title":"SMILES","description":"The generated InChI Key string corresponding to the input SMILES."}},"type":"object","required":["inchikey"],"title":"GenerateInChIKeyResponse","description":"Represents a response containing a generated InChI Key string.\n\nProperties:\n- inchikey (str): The generated InChI Key string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"RYYVLZVUVIJVGH-UHFFFAOYSA-N"}]},"GenerateInChIResponse":{"properties":{"inchi":{"type":"string","title":"SMILES","description":"The generated InChI string corresponding to the input SMILES."}},"type":"object","required":["inchi"],"title":"GenerateInChIResponse","description":"Represents a response containing a generated InChI string.\n\nProperties:\n- inchi (str): The generated InChI string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"InChI=1S/C8H10N4O2/c1-10-4-9-6-5(10)7(13)12(3)8(14)11(6)2/h4H,1-3H3"}]},"GenerateMultipleDescriptorsResponse":{"properties":{"descriptors":{"additionalProperties":true,"type":"object","title":"Descriptors","description":"A dictionary with each SMILES as the key and the corresponding descriptors as the value."}},"type":"object","required":["descriptors"],"title":"GenerateMultipleDescriptorsResponse","description":"Represents a response containing multiple descriptors for a list of SMILES strings.\n\nProperties:\n- descriptors (dict): A dictionary with each SMILES as the key and the corresponding descriptors as the value.","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C, CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1","message":"Success","output":"{\"CN1C=NC2=C1C(=O)N(C(=O)N2C)C\": {\"A set of calculated molecular descriptors\"},\"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1\": {\"A set of calculated molecular descriptors\"}}"}]},"GenerateSELFIESResponse":{"properties":{"selfies":{"type":"string","title":"SMILES","description":"The generated SELFIES string corresponding to the input SMILES."}},"type":"object","required":["selfies"],"title":"GenerateSELFIESResponse","description":"Represents a response containing a generated SELFIES string.\n\nProperties:\n- selfies (str): The generated SELFIES string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"[C][N][C][=Branch1][C][=O][C][=C][Branch1][#Branch1][N][=C][N][Ring1][Branch1][C][N][Branch1][C][C][C][Ring1][N][=O]"}]},"GenerateSMARTSResponse":{"properties":{"smarts":{"type":"string","title":"SMILES","description":"The generated SMARTS string corresponding to the input SMILES."}},"type":"object","required":["smarts"],"title":"GenerateSMARTSResponse","description":"Represents a response containing a generated SMARTS string.\n\nProperties:\n- smarts (str): The generated SMARTS string.","examples":[{"input":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O","message":"Success","output":"[#6]-[#7]1:[#6]:[#7]:[#6]2:[#6]:1:[#6](=[#8]):[#7](:[#6](=[#8]):[#7]:2-[#6])-[#6]"}]},"GenerateSMILESResponse":{"properties":{"smiles":{"type":"string","title":"SMARTS","description":"The generated SMILES string corresponding to the input text."}},"type":"object","required":["smiles"],"title":"GenerateSMILESResponse","description":"Represents a response containing a generated SMILES string.\n\nProperties:\n- smiles (str): The generated SMILES string.","examples":[{"input":"1,3,7-trimethylpurine-2,6-dione","message":"Success","output":"CN1C=NC2=C1C(=O)N(C)C(=O)N2C"}]},"GenerateStandardizeResponse":{"properties":{"standardized_mol":{"type":"string","title":"Standardized Molblock","description":"The standardized molblock of the molecule."},"canonical_smiles":{"type":"string","title":"Canonical SMILES","description":"The canonical SMILES representation of the molecule."},"inchi":{"type":"string","title":"InChI","description":"The InChI representation of the molecule."},"inchikey":{"type":"string","title":"InChI-Key","description":"The InChI-Key of the molecule."}},"type":"object","required":["standardized_mol","canonical_smiles","inchi","inchikey"],"title":"GenerateStandardizeResponse","description":"Represents a response containing standardized molecule information.\n\nProperties:\n- standardized_mol (str): The standardized molblock of the molecule.\n- canonical_smiles (str): The canonical SMILES representation of the molecule.\n- inchi (str): The InChI representation of the molecule.\n- inchikey (str): The InChI-Key of the molecule.","examples":[{"input":"\n          CDK     09012310592D\n\n          1  0  0  0  0  0  0  0  0  0999 V2000\n            0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n        M  END","message":"Success","output":"Standardized Molblock, Canonical SMILES, InChI, InChI-Key"}]},"GenerateStereoisomersResponse":{"properties":{"stereoisomers":{"items":{"type":"string"},"type":"array","title":"Stereoisomers","description":"A list of stereoisomer SMILES strings."}},"type":"object","required":["stereoisomers"],"title":"GenerateStereoisomersResponse","description":"Represents a response containing enumerated stereo isomers for a molecule.\n\nProperties:\n- stereoisomers (list[str]): A list of stereoisomer SMILES strings.","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"[\"Cn1c(=O)c2c(ncn2C)n(C)c1=O\"]"}]},"GenerateStructuresResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"additionalProperties":{"anyOf":[{"type":"integer"},{"items":{"type":"string"},"type":"array"},{"additionalProperties":{"type":"string"},"type":"object"},{"type":"string"},{"type":"boolean"}]},"type":"object","title":"Output"}},"type":"object","required":["output"],"title":"GenerateStructuresResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (Dict): A dictionary containing structure generation results with:\n        - total_count: Total number of possible structures\n        - generated_count: Number of structures actually generated\n        - structures: List of SMILES strings (limited)\n        - settings: Dictionary describing the surge settings used\n        - formula: The input molecular formula\n        - limit_applied: Whether a limit was applied to results","examples":[{"message":"Success","output":{"formula":"C10H16","generated_count":1000,"limit_applied":true,"settings":{"-B1,2,3,4,5,7,9":"Avoid substructures: no triple bonds in small rings, Bredt's rule violations, cumulative double bonds, forbidden topologies","-P":"Require planarity","-S":"Output in SMILES format","-T":"Disallow triple bonds","-f0":"No cycles of length 4 allowed","-t0":"No rings of length 3 allowed"},"structures":["CC(C)C","CCCC"],"total_count":24000}}]},"GetAglyconeAndSugarIndicesResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"items":{"items":{"type":"integer"},"type":"array"},"type":"array","title":"Output"}},"type":"object","required":["output"],"title":"GetAglyconeAndSugarIndicesResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): The atom indices of the aglycone and sugars in the given molecule as a printed list of indices lists. The first set of indices is always the aglycone. The list has a variable length dependening on how many sugar moieties were found.","examples":[{"input":"CCCCC/C=C/C=C/[C@@H](O)C/C=C/C=C/C(=O)OC1C(O)[C@H](C2=C(O)C=C(O)C=C2CO)O[C@H](CO)[C@H]1O[C@@H]1OC(CO)[C@H](O)[C@H](O)C1O[C@@H]1OC(CO)[C@H](O)[C@H](O)C1O","message":"Success","output":"[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], [38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60]]"}]},"GetCircularSugarResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"GetCircularSugarResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): The aglycone SMILES string or \"No Circular sugar found\".","examples":[{"input":"C=CC1C(C[C@@H]2NCCC3=C2NC2=CC=CC=C32)C(C(=O)O)=CO[C@H]1O[C@@H]1O[C@H](CO)[C@@H](O)[C@H](O)[C@H]1O","message":"Success","output":"C=CC1C(C[C@H]2C3=C(CCN2)C4=C(C=CC=C4)N3)C(=CO[C@H]1O)C(=O)O"}]},"GetCircularandLinearSugarResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"GetCircularandLinearSugarResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): The aglycone SMILES string or \"No Linear or Circular sugars found\".","examples":[{"input":"O=C(O)C1=C[C@@H](O)[C@@H](O)[C@H](OC(=O)[C@@H]2C(C(=O)OC[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)[C@@H](O)CO)=CC3=CC(O)=C(O[C@@H]4O[C@H](CO)[C@@H](O)[C@H](O)[C@H]4O)C=C3[C@H]2C2=CC=C(O)C(O)=C2)C1","message":"Success","output":"C1=C(C=C(C(=C1)O)O)[C@@H]2C3=C(C=C([C@H]2C(=O)O[C@@H]4CC(=C[C@H]([C@H]4O)O)C(=O)O)C(=O)O)C=C(C(=C3)O)O"}]},"GetLinearSugarResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"GetLinearSugarResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): The aglycone SMILES string or \"No Linear sugar found\".","examples":[{"input":"CC1=CC(O)=C2C(=O)C3=C(OC[C@@H](O)[C@@H](O)[C@H](O)[C@@H](O)C(=O)OC[C@@H](O)[C@@](O)(OC[C@@H](O)[C@@H](O)[C@H](O)[C@@H](O)C=O)[C@H](O)[C@@H](O)C=O)C=CC=C3C(=O)C2=C1","message":"Success","output":"CC1=CC(=C2C(=C1)C(=O)C3=CC=CC(=C3C2=O)O)O"}]},"GetSugarInformationResponse":{"properties":{"message":{"type":"string","title":"Message","default":"Success"},"output":{"type":"string","title":"Output"}},"type":"object","required":["output"],"title":"GetSugarInformationResponse","description":"A Pydantic model representing a successful response.\n\nAttributes:\n    message (str): A message indicating the success status (default: \"Success\").\n    output (str): A message indicating the type of sugars present in the molecule, either \"The molecule contains Linear and Circular sugars\", \"The molecule contains only Linear sugar\", \"The molecule contains only Circular sugar\", or \"The molecule contains no sugar\".","examples":[{"input":"CC(=O)N[C@H]1[C@@H](O[C@@H]([C@H](O)[C@@H](O)C=O)[C@H](O)CO)O[C@H](CO)[C@H](O)[C@@H]1O","message":"Success","output":"The molecule contains Linear and Circular sugars"}]},"Kingdom":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"chemont_id":{"type":"string","title":"Chemont Id"},"url":{"type":"string","title":"Url"}},"type":"object","required":["name","description","chemont_id","url"],"title":"Kingdom","description":"Represents a Kingdom in ClassyFire taxonomy.\n\nAttributes:\n    name (str): The name of the Kingdom.\n    description (str): The description of the Kingdom.\n    chemont_id (str): The ChemOnt ID of the Kingdom.\n    url (str): The URL associated with the Kingdom."},"MolToSMILESResponse":{"properties":{"smiles":{"type":"string","title":"SMILES","description":"The generated SMILES string corresponding to the input MOL/SDF block."}},"type":"object","required":["smiles"],"title":"MolToSMILESResponse","description":"Represents a response containing a SMILES string generated from MOL/SDF.\n\nProperties:\n- smiles (str): The generated SMILES string.","examples":[{"input":"\n  CDK     09012308392D\n\n  2  1  0  0  0  0  0  0  0  0999 V2000\n    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.5000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n  1  2  1  0  0  0  0\nM  END","message":"Success","output":"CC"}]},"NPlikelinessScoreResponse":{"properties":{"np_score":{"type":"number","title":"Natural Product Likeness Score","description":"The calculated natural product likeness score."}},"type":"object","required":["np_score"],"title":"NPlikelinessScoreResponse","description":"Represents a response containing the natural product likeness score.\n\nProperties:\n- np_score (float): The calculated natural product likeness score.","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"-1.09"}]},"NotFoundModel":{"properties":{"error":{"type":"string","title":"Error","default":"Not Found"},"detail":{"type":"string","title":"Detail"}},"type":"object","required":["detail"],"title":"NotFoundModel","description":"Represents a Not Found response in an API.\n\nArgs:\n    detail (str): A detailed message indicating that the requested resource was not found."},"Original":{"properties":{"representations":{"$ref":"#/components/schemas/Representations"},"has_stereo":{"type":"boolean","title":"Has Stereo"},"descriptors":{"$ref":"#/components/schemas/Descriptors"},"errors":{"additionalProperties":true,"type":"object","title":"Errors"}},"type":"object","required":["representations","has_stereo","descriptors","errors"],"title":"Original","description":"Represents the parent molecule with various properties.\n\nAttributes:\n    representations (Representations): Molecular representations.\n    has_stereo (bool): Indicates presence of stereochemical variants.\n    descriptors (Descriptors): Molecular descriptors.\n    errors (dict): Information on the errors found in the given molecule"},"Parent":{"properties":{"representations":{"$ref":"#/components/schemas/Representations"},"has_stereo":{"type":"boolean","title":"Has Stereo"},"descriptors":{"$ref":"#/components/schemas/Descriptors"},"errors":{"additionalProperties":true,"type":"object","title":"Errors"}},"type":"object","required":["representations","has_stereo","descriptors","errors"],"title":"Parent","description":"Represents the parent molecule with various properties.\n\nAttributes:\n    representations (Representations): Molecular representations.\n    has_stereo (bool): Indicates presence of stereochemical variants.\n    descriptors (Descriptors): Molecular descriptors.\n    errors (dict): Information on the errors found in the given molecule"},"PubChemResponse":{"properties":{"input":{"type":"string","title":"Input"},"canonical_smiles":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Canonical Smiles"},"input_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Type"},"success":{"type":"boolean","title":"Success"},"cids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Cids"},"pubchem_links":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Pubchem Links"}},"type":"object","required":["input","success"],"title":"PubChemResponse","description":"Response model for the SMILES endpoint."},"Representations":{"properties":{"2D_mol":{"type":"string","title":"2D Mol"},"3D_mol":{"type":"string","title":"3D Mol"},"InChI":{"type":"string","title":"Inchi"},"InChI_Key":{"type":"string","title":"Inchi Key"},"Murcko":{"type":"string","title":"Murcko"}},"type":"object","required":["2D_mol","3D_mol","InChI","InChI_Key","Murcko"],"title":"Representations","description":"Represents different representations of a molecule.\n\nAttributes:\n    field_2D_mol (str): The 2D molecular structure of the parent molecule.\n    field_3D_mol (str): The 3D molecular structure of the parent molecule.\n    InChI (str): IUPAC International Chemical Identifier (InChI) representation.\n    InChI_Key (str): InChI key.\n    Murcko (str): Murcko scaffold representation."},"SMILESStandardizedResult":{"properties":{"original":{"$ref":"#/components/schemas/SMILESValidationResult"},"standardized":{"$ref":"#/components/schemas/SMILESValidationResult"}},"type":"object","required":["original","standardized"],"title":"SMILESStandardizedResult","description":"Represents the original and standardized versions of a molecule.\n\nAttributes:\n    original (SMILESValidationResult): The original SMILES validation result.\n    standardized (SMILESValidationResult): The standardized SMILES validation result."},"SMILESValidationResult":{"properties":{"smi":{"type":"string","title":"Smi"},"messages":{"items":{},"type":"array","title":"Messages"}},"type":"object","required":["smi","messages"],"title":"SMILESValidationResult","description":"Represents the result of validating a SMILES string.\n\nAttributes:\n    smi (str): The SMILES string.\n    messages (tuple): A tuple of messages indicating validation results."},"Standardized":{"properties":{"representations":{"$ref":"#/components/schemas/Representations"},"has_stereo":{"type":"boolean","title":"Has Stereo"},"descriptors":{"$ref":"#/components/schemas/Descriptors"},"errors":{"additionalProperties":true,"type":"object","title":"Errors"}},"type":"object","required":["representations","has_stereo","descriptors","errors"],"title":"Standardized","description":"Represents the parent molecule with various properties.\n\nAttributes:\n    representations (Representations): Molecular representations.\n    has_stereo (bool): Indicates presence of stereochemical variants.\n    descriptors (Descriptors): Molecular descriptors.\n    errors (dict): Information on the errors found in the given molecule"},"StandarizedTautomerResponse":{"properties":{"tautomer":{"type":"string","title":"Tautomer","description":"Standardized Tautomer SMILES string."}},"type":"object","required":["tautomer"],"title":"StandarizedTautomerResponse","description":"Represents a response containing standardized tautomer for a molecule.\n\nProperties:\n- tautomer (str): Standardized Tautomer SMILES string","examples":[{"input":"CN1C=NC2=C1C(=O)N(C(=O)N2C)C","message":"Success","output":"CN1C(=O)C2=C(N=CN2C)N(C)C1=O"}]},"Subclass":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"chemont_id":{"type":"string","title":"Chemont Id"},"url":{"type":"string","title":"Url"}},"type":"object","required":["name","description","chemont_id","url"],"title":"Subclass","description":"Represents a Subclass within a classification.\n\nAttributes:\n    name (str): The name of the subclass.\n    description (str): Description of the subclass.\n    chemont_id (str): Identifier for the subclass.\n    url (str): URL associated with the subclass."},"Superclass":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"chemont_id":{"type":"string","title":"Chemont Id"},"url":{"type":"string","title":"Url"}},"type":"object","required":["name","description","chemont_id","url"],"title":"Superclass","description":"Represents a Superclass in ClassyFire taxonomy.\n\nAttributes:\n    name (str): The name of the Superclass.\n    description (str): The description of the Superclass.\n    chemont_id (str): The ChemOnt ID of the Superclass.\n    url (str): The URL associated with the Superclass."},"TanimotoMatrixResponse":{"properties":{"similarity_matrix":{"items":{"items":{"type":"number"},"type":"array"},"type":"array","title":"Tanimoto Similarities","description":"The Tanimoto similarities as a 2D list representing the Tanimoto similarity matrix."}},"type":"object","required":["similarity_matrix"],"title":"TanimotoMatrixResponse","description":"Response model for Tanimoto similarity matrix.\n\nAttributes:\n- similarity_matrix (list[list[float]]): A 2D list representing the Tanimoto similarity matrix.\n  Each inner list corresponds to a row in the matrix, and each value inside the inner list\n  represents the similarity score between two molecules.","examples":[{"input":"CCC,CC,CCC","message":"Success","output":"[[1.0, 0.2, 1.0], [0.2, 1.0, 0.2], [1.0, 0.2, 1.0]]"}]},"TanimotoSimilarityResponse":{"properties":{"similarity":{"type":"number","title":"Tanimoto Similarity","description":"The Tanimoto similarity index as a floating-point value."}},"type":"object","required":["similarity"],"title":"TanimotoSimilarityResponse","description":"Represents the Tanimoto similarity index for a pair of SMILES strings.\n\nProperties:\n- similarity (float): The Tanimoto similarity index.","examples":[{"input":"CC1(C)OC2COC3(COS(N)(=O)=O)OC(C)(C)OC3C2O1,CC","message":"Success","output":"0.024390243902439025"}]},"ThreeDCoordinatesResponse":{"properties":{"molblock":{"type":"string","title":"Molecule Block","description":"The generated mol block with 3D coordinates as plain text."}},"type":"object","required":["molblock"],"title":"ThreeDCoordinatesResponse","description":"Represents a response containing 3D coordinates for a molecule.\n\nProperties:\n- molblock (str): The generated mol block with 3D coordinates.","examples":[{"input":"CC","message":"Success","output":"\n\n     RDKit          3D\n\n  2  1  0  0  0  0  0  0  0  0999 V2000\n   -0.7044   -0.0850   -0.4900 C   0  0  0  0  0  0  0  0  0  0  0  0\n   -1.9017   -0.1353    0.4322 C   0  0  0  0  0  0  0  0  0  0  0  0\n  1  2  1  0\nM  END"}]},"TwoDCoordinatesResponse":{"properties":{"molblock":{"type":"string","title":"Molecule Block","description":"The generated mol block with 2D coordinates as plain text."}},"type":"object","required":["molblock"],"title":"TwoDCoordinatesResponse","description":"Represents a response containing 2D coordinates for a molecule.\n\nProperties:\n- molblock (str): The generated mol block with 2D coordinates.","examples":[{"input":"CC","message":"Success","output":"\n  CDK     09012308392D\n\n  2  1  0  0  0  0  0  0  0  0999 V2000\n    0.0000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n    1.5000    0.0000    0.0000 C   0  0  0  0  0  0  0  0  0  0  0  0\n  1  2  1  0  0  0  0\nM  END"}]}}},"servers":[{"url":"/v1"}]}