Opened 8 years ago
Closed 6 years ago
#1022 closed enhancement (fixed)
Allow Toolshed bundles to provide access to their C++ API
| Reported by: | Tristan Croll | Owned by: | Conrad Huang |
|---|---|---|---|
| Priority: | moderate | Milestone: | |
| Component: | Tool Shed | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
As part of my push to optimise ISOLDE's inner workings I've created a set of C++ classes that would be of more general interest and would make sense as their own bundle (tentatively named Validation_Tools). Specifically, I have:
DihedralandDihedral_Mgrbase classes (specialised intoProper_Dihedralclasses at present, with plans to add anImproper/Chiral_Dihedralspecialisation once #872 is done)
Rama/Rama_MgrandRotamer/Rotamer_Mgrclasses handling peptide backbone and sidechain validations respectively- A
RegularGridInterpolatorclass providing fast n-dimensional interpolation against probability contours
I've pasted some timings from my current implementation below. What prevents me from splitting it out is that I would then lose access to its C++ API from ISOLDE proper - which is a problem because I also have ISOLDE-specific C++ restraint classes dependent upon it.
Timings for a small structure:
- Finding all 1043 omega, phi, psi and chi dihedrals for 229 residues took 0.00571 seconds
- Preparing the Ramachandran manager took 0.00783 seconds
- Finding all 229 valid Ramachandran residues took 0.00028 seconds
- Preparing the rotamer manager took 0.10936 seconds
- Finding all 173 rotamers for 229 residues took 0.00125 seconds
Total initialisation time: 0.12443 seconds
- Scoring 229 residues on the Ramachandran plot took 0.00051 seconds
- Scoring 173 rotamers took 0.00031 seconds
Time for one complete rota/rama validation: 0.00083 seconds
Timing for a large structure (3j3q):
- Finding all 1551264 omega, phi, psi and chi dihedrals for 313236 residues took 13.72351 seconds
- Preparing the Ramachandran manager took 0.00990 seconds
- Finding all 313236 valid Ramachandran residues took 0.41284 seconds
- Preparing the rotamer manager took 0.06793 seconds
- Finding all 264420 rotamers for 313236 residues took 1.10175 seconds
Total initialisation time: 15.31594 seconds
- Scoring 313236 residues on the Ramachandran plot took 0.57328 seconds
- Scoring 264420 rotamers took 0.36813 seconds
Time for one complete rota/rama validation: 0.94142 seconds
If bundle is dependent on another bundle, bundle_builder will add the appropriate include and libraries directories to the compile command.