Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add TICA, max/min distance calc, and data projection commands #1075

Merged
merged 200 commits into from
Apr 25, 2024
Merged
Show file tree
Hide file tree
Changes from 197 commits
Commits
Show all changes
200 commits
Select commit Hold shift + click to select a range
5527b0c
Start adding CoordCovarMatrix class
drroe Mar 22, 2024
16474c6
Fix mask issues. Add setup and finish routines
drroe Mar 22, 2024
e1f3572
Add CoordCovarMatrix
drroe Mar 22, 2024
3fcc710
Add debug print
drroe Mar 22, 2024
c0e85f2
Print to debug file for easier comparison
drroe Mar 22, 2024
4bba295
Put mass arg in a variable
drroe Mar 22, 2024
4924a96
Slightly more complex test
drroe Mar 22, 2024
2fb5774
Remove old code
drroe Mar 22, 2024
17c1c44
Use mask form
drroe Mar 22, 2024
3d49ea9
Turn into ABC in anticipation of adding full matrix
drroe Mar 22, 2024
ecdd829
Slight reorganization
drroe Mar 22, 2024
261fabe
Another reorganization since full covar array needs separate
drroe Mar 26, 2024
1d1c766
Add full covar matrix class
drroe Mar 27, 2024
dcb943d
Fix averaging
drroe Mar 27, 2024
8c52441
Hide debug info
drroe Mar 27, 2024
a4b0e9b
Update dependencies
drroe Mar 27, 2024
7150cbb
Test that full covar matrix is working
drroe Mar 27, 2024
624fdc5
Vect2 is actually already in matrix
drroe Mar 27, 2024
2cbeb3e
Update docs
drroe Mar 27, 2024
3d62a13
Declare inside loops
drroe Mar 27, 2024
faad482
Debug test for full covar matrix.
drroe Mar 27, 2024
543a153
Add clear function
drroe Mar 28, 2024
77641a0
Start generalizing the covar matrix
drroe Mar 28, 2024
6b2af23
Add normalize
drroe Mar 28, 2024
774a1ac
Have half and full debug go to separate files for easier comparing
drroe Mar 28, 2024
831d93e
CovarMatrix nowhere near ready
drroe Mar 28, 2024
8eff2da
Start generalizing the covar matrices for other types besides coordinate
drroe Mar 29, 2024
829f89b
Start generalizing full
drroe Mar 29, 2024
46eff18
Flip indices to make it more consistent with how the full matrix is
drroe Mar 29, 2024
5f9c1f0
Flip indices
drroe Mar 29, 2024
3db5ec6
Use loop over nelt
drroe Mar 29, 2024
23d8262
Put in code for OpenMP indexing but dont enable yet
drroe Mar 29, 2024
a6a4d17
Add function for determining valid array size
drroe Mar 29, 2024
803d98b
Generalize the add elements to matrix routine
drroe Mar 29, 2024
74836ec
Generalize the full matrix. Fix up depends. Put common functionality in
drroe Mar 29, 2024
0b2aa6b
Add note
drroe Mar 29, 2024
64fc6b0
Have setup routine set nelt
drroe Mar 29, 2024
ec633ba
Add note about debug info
drroe Mar 29, 2024
759a220
Start new function
drroe Apr 1, 2024
b1c00d4
Start minmaxdist action
drroe Apr 1, 2024
c0041cf
Add mode and distance type
drroe Apr 1, 2024
eb9359c
Enable command, remove mindist from deprecated. Add distance and mode
drroe Apr 1, 2024
e99ee24
Mask setup
drroe Apr 1, 2024
6762c48
Add imaging
drroe Apr 1, 2024
dd72d3a
Start setting up entities
drroe Apr 1, 2024
3952d72
Save residue/molecule number
drroe Apr 1, 2024
59cfc7d
Change it so an entity is only allocated for things with at least 1 atom
drroe Apr 1, 2024
4ace22c
Start allocating sets
drroe Apr 1, 2024
2d313dd
Fix up dataset aspect
drroe Apr 2, 2024
f4a39ce
Start InteractionData class
drroe Apr 2, 2024
42ff4e4
Add molecule entities
drroe Apr 2, 2024
5493719
Data set for by atom
drroe Apr 2, 2024
004edf6
Start adding routines to calculate distance
drroe Apr 2, 2024
99b3763
Make bothdist an error
drroe Apr 2, 2024
5ae73ed
Add max dist functions
drroe Apr 2, 2024
52753d1
Add calculation
drroe Apr 2, 2024
f72f2db
Add out keyword
drroe Apr 2, 2024
2f9df37
Start routine for setting up for data sets
drroe Apr 3, 2024
c4d3e6d
Add data from data sets
drroe Apr 3, 2024
7cd9e14
Test using data sets
drroe Apr 3, 2024
ec91068
Fix output
drroe Apr 3, 2024
ed29d09
Actually add to the matrix
drroe Apr 3, 2024
41ebe07
Add mean debug
drroe Apr 3, 2024
726c93b
Use typedef
drroe Apr 5, 2024
d6e9edb
Add temporary checks
drroe Apr 8, 2024
54f6eeb
Start a test function to try and directly mimic moment_XXXY
drroe Apr 8, 2024
7e71371
Move C0CT routine to into TICA itself
drroe Apr 8, 2024
3a58272
Implement centering
drroe Apr 9, 2024
4aeb35f
Start calculating the XXYY matrix
drroe Apr 9, 2024
abb4b1b
Save in DataSet_2D
drroe Apr 9, 2024
ee913bd
Calculate cxyyx
drroe Apr 9, 2024
d10cc04
Add note
drroe Apr 9, 2024
aa5fdc8
If dataio is already allocated make sure it is freed before being set up
drroe Apr 9, 2024
c1a212f
If DataFile is being reused, make sure sets get readded
drroe Apr 9, 2024
2f6514f
Do matrix normalization
drroe Apr 9, 2024
251dc92
Add function to set all arguments as unmarked so the ArgList can be
drroe Apr 10, 2024
13b0c37
Set output format args
drroe Apr 10, 2024
7ad2f1e
Add some notes, remove old code
drroe Apr 10, 2024
02e4490
Remove extended char
drroe Apr 10, 2024
0021942
Remove old code
drroe Apr 10, 2024
ce602aa
Add mean printout
drroe Apr 10, 2024
bb28d92
Calculate mean and eigenvalues of C0
drroe Apr 10, 2024
e8c6b1a
Create matrix L
drroe Apr 10, 2024
f76e7a4
Implement DataSet_2D matrix multiply. Calc L^t x Ct
drroe Apr 10, 2024
a8cd4a8
More correctly referred to as Ltrans
drroe Apr 10, 2024
d637375
Calculate (L^T * Ct) * L
drroe Apr 10, 2024
e1c0a37
Add symmetric check in same manner as numpy.allclose
drroe Apr 10, 2024
1991aa4
Move matrix symmetric check into DataSet_2D
drroe Apr 10, 2024
30ee295
Fix up depends in DataSet_Modes. Start adding general eigenvalue solve.
drroe Apr 10, 2024
d981df1
Start thinking about how to implement the general eigenvalue calc
drroe Apr 11, 2024
30d4650
Try calculating eigenvals/eigenvecs of Ct trans
drroe Apr 12, 2024
6d5b221
More debug printing
drroe Apr 12, 2024
a2f3ffb
Print eigenvectors to file function. Start filtering out bad eigenvalues
drroe Apr 12, 2024
7bafa7f
Filter out eigenvectors that are too small
drroe Apr 12, 2024
0e62c5d
Enforce canonical eigenvector signs.
drroe Apr 12, 2024
6dbfa8e
Start sort by abs(eigenvalue)
drroe Apr 12, 2024
ffb118a
Sort by absolute value of eigenvectors
drroe Apr 12, 2024
aa4359e
Put function tomodes
drroe Apr 13, 2024
c4e8a3d
Add function to get transpose of incoming DataSet_2D
drroe Apr 13, 2024
2d52fb3
Calculate matR
drroe Apr 15, 2024
86daeb6
Change eigenvector signs of the matR matrix
drroe Apr 15, 2024
b2bd607
Will likely just leave eigenvector sign function in the TICA analysis
drroe Apr 15, 2024
8464a92
Keep sign functionality in tica
drroe Apr 15, 2024
79ed4a0
Add note
drroe Apr 15, 2024
d3b2d86
Add Multiply_M1transpose
drroe Apr 15, 2024
1008e7a
Use DataSet_double directly
drroe Apr 15, 2024
2660574
Add note
drroe Apr 15, 2024
c19bace
Add map options
drroe Apr 15, 2024
649ae9b
Add new debug function for printing matrix
drroe Apr 15, 2024
d404872
Use debug print function
drroe Apr 15, 2024
0ae8c8f
Use debug print function
drroe Apr 15, 2024
6210e30
Use debug print
drroe Apr 15, 2024
f8224cd
Use debug print function
drroe Apr 15, 2024
3474445
Use debug print
drroe Apr 15, 2024
a9770a8
Use debug print
drroe Apr 15, 2024
58bbb24
Start exploring using matrix identity to simplify the final calc
drroe Apr 15, 2024
fd90bc9
Add canonical evec sign function back to modes data set. Use matrix
drroe Apr 15, 2024
fd203f0
Save TICA modes set
drroe Apr 15, 2024
ef0e08e
Do kinetic map, add out keyword
drroe Apr 15, 2024
c8c68d6
Ensure avg coords are set for TICA modes
Apr 16, 2024
cebf3b4
If precision of file is set/reset, indicate file needs to be written
Apr 16, 2024
2a90dff
Add cumulative variance calculation
Apr 16, 2024
36e6752
Ensure multiple 'data' arguments append sets. Change default precision
drroe Apr 17, 2024
b12243d
Add TICA test with data sets
drroe Apr 17, 2024
bbfbb15
Enable TICA test
drroe Apr 17, 2024
6fffb8b
Start new function to calculate matrices in a single pass
drroe Apr 18, 2024
b0897f9
Change var
drroe Apr 18, 2024
80234d9
Do XXYY matrix
drroe Apr 18, 2024
0f2d864
Further simplify the calculation
drroe Apr 18, 2024
dc2368e
Slight reorganize
drroe Apr 18, 2024
0eae1e0
Calculate means in a single pass
Apr 18, 2024
4104d96
Reorganize new functions into a separate umbrella function
Apr 18, 2024
a4bb73c
Normalize matrices in new function
Apr 18, 2024
e1e5672
Put the TICA modes calculation in its own function
Apr 18, 2024
6667d72
Switch to the new function
Apr 18, 2024
72fde99
Put all the debug print functions in the same location
Apr 18, 2024
acd3661
Reorganize so that old functions are all grouped together
Apr 18, 2024
ac28bf0
Add sum for periodic sets
Apr 18, 2024
9808dea
Start COORDS set sum calc
Apr 18, 2024
e9ebeec
Add sum for COORDS sets
Apr 18, 2024
2c4e1c1
Check if data sets are periodic
Apr 18, 2024
8008e77
Start function for periodic sets
drroe Apr 19, 2024
f44665e
Add new matrix mode, DATACOVAR
drroe Apr 19, 2024
d973105
Enable projections for 1D data sets. Change tica modes cumulative
drroe Apr 19, 2024
ebef637
X axis label is now modes
drroe Apr 19, 2024
855f23d
Add projection test for tica modes
drroe Apr 19, 2024
9693f54
Add different calc types. Start handling COORDS calc
drroe Apr 22, 2024
aee209a
Potentially use less memory when processing coords
drroe Apr 22, 2024
3342126
Add version of UpdateElement that uses 1D index
drroe Apr 22, 2024
4acaa02
Some refactoring...
drroe Apr 22, 2024
7790fc3
Start function to create matrices from coords set
drroe Apr 22, 2024
e7a85a7
Finish coords
drroe Apr 23, 2024
ad9d2de
Finish periodic sets tica, still needs testing
drroe Apr 23, 2024
e711ec4
Hide some debug info
drroe Apr 23, 2024
c5d9c75
Add test for tica with coordinates
drroe Apr 23, 2024
d6a82c5
Improve help text
drroe Apr 23, 2024
8fbd289
Convert dihedral sets to cos/sin pairs and use the 1D matrix create
drroe Apr 23, 2024
0bab903
Add tica dihedrals test
drroe Apr 23, 2024
7de0179
Convert periodic sets to cos/sin form before doing the sum (mean) calc
drroe Apr 23, 2024
a9a24b0
Remove some old code
drroe Apr 23, 2024
0af0d3c
No mass-weighting yet. Remove setsArePeriodic class var, superseded by
drroe Apr 23, 2024
5a961cd
Change default lag to 10
drroe Apr 23, 2024
3b4e123
Hide debug info
drroe Apr 23, 2024
7652472
Hide more debug info
drroe Apr 23, 2024
20d472d
Add progress bars. Clean up output.
drroe Apr 23, 2024
4b25dc9
Allow debugc0/ct but ignore
drroe Apr 23, 2024
f6c82c0
Start projection analysis
drroe Apr 23, 2024
bbd6c49
Start copying keywords from project action
drroe Apr 23, 2024
4699e83
Add some checks
drroe Apr 23, 2024
2b81be8
Add output datasets
drroe Apr 23, 2024
5a2a618
Add actual projection
drroe Apr 23, 2024
0f20564
Add projectdata command.
drroe Apr 23, 2024
eb2e017
Improve help text
drroe Apr 24, 2024
4cef57e
Add by atom min/max test
drroe Apr 24, 2024
de6b86e
Add residue offset for byres. Hide debug info
drroe Apr 24, 2024
87e144d
Add warning for byatom mindist with only one mask. Fix output message
drroe Apr 24, 2024
fa825f9
Add byatom single mask tests
drroe Apr 24, 2024
f147a80
Add by residue 1 mask tests
drroe Apr 24, 2024
2bcc0b7
Change byres test to use imaging and fewer residues
drroe Apr 24, 2024
c67b22b
Change aspect so it1 num comes first
drroe Apr 24, 2024
7f7d0a2
Check if entity numbers overlap when two masks specified. Correct offset
drroe Apr 24, 2024
b64df8e
Add byres with 2 masks test
drroe Apr 24, 2024
7637653
Test save for bymol with 2 masks
drroe Apr 24, 2024
09c0076
Add bymol with 1 mask test
drroe Apr 24, 2024
aad41dd
Hide some debug info
drroe Apr 24, 2024
89dd83c
Add manual entry for min/max distance
drroe Apr 24, 2024
b110f1e
Start TICA manual entry
drroe Apr 24, 2024
2582262
Finish TICA manual entry
drroe Apr 24, 2024
058cfe2
Add projectdata manual entry
drroe Apr 24, 2024
4e71e0c
Test using projectdata instead
drroe Apr 24, 2024
8bb840b
Add commute map
drroe Apr 25, 2024
01ba84c
Simplify commute map
drroe Apr 25, 2024
2e49a61
Remove debug code
drroe Apr 25, 2024
bec1cb6
Add commute map test.
drroe Apr 25, 2024
a33036a
Add commute map tica reference
drroe Apr 25, 2024
b1676b9
Have manual text match help entry
drroe Apr 25, 2024
189b0c6
Add cross references for projection/projectdata
drroe Apr 25, 2024
3c6ee8e
Revision bump to 6.24.1 for tica, maxdist/mindist, and projectdata
drroe Apr 25, 2024
7633e0b
Properly cast Nselected to unsigned int before multiplying.
drroe Apr 25, 2024
d14258b
Hopefully really fix the codeql multiply warnings.
drroe Apr 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions doc/cpptraj.bib
Original file line number Diff line number Diff line change
Expand Up @@ -444,3 +444,29 @@ @article{Roe2022a
title = {{ Quantifying the Effects of Lossy Compression on Energies Calculated from Molecular Dynamics Trajectories}},
year = {2022}
}

@article{Perez2013,
author = {P{\'e}rez-Hern{\'a}ndez, Guillermo and Paul, Fabian and Giorgino, Toni and De Fabritiis, Gianni and No{\'e}, Frank},
title = "{Identification of slow molecular order parameters for Markov model construction}",
journal = {The Journal of Chemical Physics},
volume = {139},
number = {1},
pages = {015102},
year = {2013},
month = {07},
issn = {0021-9606},
doi = {10.1063/1.4811489},
url = {https://doi.org/10.1063/1.4811489},
}

@article{Noe2016,
author = {No{\'e}, Frank and Banisch, Ralf and Clementi, Cecilia},
title = {Commute Maps: Separating Slowly Mixing Molecular Configurations for Kinetic Modeling},
journal = {Journal of Chemical Theory and Computation},
volume = {12},
number = {11},
pages = {5620-5630},
year = {2016},
doi = {10.1021/acs.jctc.6b00762},
URL = { https://doi.org/10.1021/acs.jctc.6b00762 },
}
Loading
Loading