Skip to content

Commit

Permalink
Add extended similarity comparison functionality (#1051)
Browse files Browse the repository at this point in the history
* Protect against null data set

* Add brute force trajectory refinement script

* Add libnpy files. https://github.com/llohse/libnpy

* Start ability to read numpy array

* Read the data. Not in a data set yet.

* Convert to COORDS array. Right now this is purely for comparing against
MDANCE

* Add note about libnpy to README

* Not yet set up for fortran ordering

* Start crdtransform action

* Enable crdtransform

* Add initial rms calc when doing by brute force. Add crdtransform test.

* State not needed

* Fix bug in keep action that prevented it from working with crdaction

* Add normcoords

* Update dependencies

* Add mask to rms when doing refine. Add norm test.

* Add test saves

* Use overall min/max for normalization

* Update for normalizing with overall min and max

* Change test name

* Actually test the brute-force refinement

* Put each test in a separate function

* Start trim outliers functionality

* Start ExtendedSimilarity class

* Start comparison for COORDS set

* Add MSD

* Dont do the direct coords comparison in extended similarity yet. Start
doing the MSD comparison from crdtransform.

* Test trim. Not working yet

* Fix normalization and summation

* Redirect to a separate file for easier testing

* Try to simplify passing in options

* Add coincidence threshold and weight factor options

* Move options setup to outside the loop

* More checks. Do confidence threshold

* Use function pointers for weight array routines

* Start implementing index arrays

* DO counts

* Start processing indexed arrays

* Add absolute version of function

* Dissimilarity array

* Sum arrays

* Add documentation, make format easier to compare

* Place counters into their own class

* Add ability to choose metric

* Try to implement bub

* Make all counters double to avoid any issues with type conversions.
Finish bub

* Do the rest of the metrics

* Hide some debug info

* Hide some debug info

* Sort indices

* Start creating output COORDS set if needed

* Ensure new output coords are set up

* Start handling cases where the length of input coord set will be
modified

* Do allocation if length will not be modified

* Test using new output coords

* Populate trim output set

* Add trimcoords test save

* Fold Opts into ExtendedSimiliarity

* Start code for medioid.

* Add criterion option

* Start the sim to medoid code

* Actually remove frames for medoid trim

* Add trim coords medoid test

* Test create new coords set for trim

* Improve docs, remove old code

* Hide some debug info

* Add separate extended comparison command class

* Clean up messages, hide more debug

* Enable extended comparison command, improve help

* Add out keyword

* Move SetDim so user args are not overwritten

* Add ability to set all atoms into a single molecule for pseudo
topologies

* No longer hidden

* Update manual.

* Revision bump for crdtransform and extendedcomp
  • Loading branch information
drroe authored Sep 22, 2023
1 parent 21def2c commit a60fbee
Show file tree
Hide file tree
Showing 28 changed files with 28,507 additions and 6 deletions.
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -251,3 +251,5 @@ External code/libraries bundled with CPPTRAJ
* CPPTRAJ uses code for the [permuted congruent pseudo-random number generator](https://www.pcg-random.org/index.html) PCG32 by Melissa O'Neill and the [Xoshiro 128++ pseudo-random number generator](http://prng.di.unimi.it) by David Blackman and Sebastino Vigna.

* The code for quaternion RMSD calculation was adapted from code in [qcprot.c](https://theobald.brandeis.edu/qcp/qcprot.c) originally written by Douglas L. Theobald and Pu Lio (Brandeis University).

* The code for reading numpy arrays in `src/libnpy` is from [libnpy](https://github.com/llohse/libnpy) written by Leon Merten Lohse et al. (Universität Göttingen).
Loading

0 comments on commit a60fbee

Please sign in to comment.