Creating OEDesignUnits Using Provided Metadata

Preparation of a biological structure file (PDB, mmCIF) to a fully charged, hydrogenated, molecular componentized object (design unit, or DU; OEDesignUnit) is one of the more advanced functionalities offered through Spruce TK. Metadata can be provided to Spruce TK to identify the target ligand, the desired ligand tautomeric state, and the DU title. In the case where SEQRES data is not present for the structure, the sequence specified in the metadata can be used to build missing gaps and identify natural termini versus termini that need to be capped.

Metadata can be provided in the form of a JSON. The example below shows a template for it. It was generated by exporting an OEStructureMetadata class.

{
   "StructureID": "",
   "Author": "",
   "Keywords": [],
   "RevisionDate": "",
   "Revision": "",
   "ExperimentDate": "",
   "ExperimentType": "UNKNOWN",
   "IridiumData": {
      "Category": "NA",
      "LaD": 0.0,
      "ASaD": 0.0,
      "POL": false,
      "POAS": false,
      "AltConfs": false,
      "PackRes": false,
      "Excp": false,
      "IrrRFree": false,
      "PossCov": false,
      "DPI": 20.0,
      "RFree": 0.0,
      "Resolution": 0.0,
      "HasMTZ": false
   },
   "SequenceMetadata": [],
   "HeterogenMetadata": []
}

This example shows how to construct DUs with a specific ligand tautomer by providing ligand metadata.

Command Line Interface

This example uses an input PDB/mmCIF file and a metadata JSON file, and will output a set of DUs with the specified ligand tautomers. Setting the -generate_tautomers option to false ensures that only the tautomers specified in the metadata file are considered. Setting the -opt_expt_protons option to true ensures that experimental protons are optimized and thus the tautomeric state can be changed based on the provided metadata. The provided script can be used with a modified metadata file to accomplish the other mentioned examples as well.

prompt> make_design_unit_using_metadata.py -in <PDB/mmCIF file> -loop_db <loop database> -metadata <metadata JSON> -generate_tautomers false -opt_expt_protons true

Code

See also