Obtain aligned eigenvectors from nma modes
Hi,
My objective is to obtain the eigenvectors of the first three non-trivial modes. I assume that these are stored in the modes$U.subspace attribute. First, I'd like to ask if this assumption is correct and second what is the exact R syntax to obtain the vectors separately and all three together. As my competence with R is rather rudimentary, I'd be most grateful for any suggestions.
Many thanks in advance
Comments (2)
-
-
reporter Thank you very much. I would be grateful for some additional clarifications.
Starting with the simplest case. Assume that the length of a protein is 125 amino acids. The GNM non-trivial modes are 137. The matrix dimension dim(modes1$U) is 125 x 137. First question: How does one slice out, for example, mode 2 (1st non-trivial) mode of the protein?
Moving to the more difficult question, involving an ensemble of proteins. In my example:
modes2 <- gnm(pdbs)
Details of Scheduled Calculation:
... 17 input structures
... storing 96 eigenvectors for each structure
... dimension of x$U.subspace: ( 97x96x17 )
... coordinate superposition prior to NM calculation
... aligned eigenvectors (gap containing positions removed)
... estimated memory usage of final 'eGNM' object: 1.2 MbSecond question. Using your suggestion
modes$U.subspace[, 2, 1]
I obtain a 292x2 array. What does this array represent?Final question. I’m trying to obtain the line shapes of the first three non-trivial modes. Something like the attached screenshot. Maybe, I’m going around the wrong way trying to slice out the eigenvectors for the modes$U object.
Thanks again for your attention
- Log in to comment
If you are using
nma.pdbs()
, yes, your assumption is correct.
Note that ‘modes$U.subspace’ is a 3D array, with each “slice” along the 3rd dimension representing eigenvectors of each structure (columns of that “slice” are the first, second, etc. eigenvector).
So, for example, if you want to access the second eigenvector of the first structure, use
modes$U.subspace[, 2, 1]
. Or, if you want the first 3 vectors of the second structure, usemodes$U.subspace[, 1:3, 2]
.
Also note that the vectors are aligned according to the sequence alignment. So, if your sequences have gaps, the corresponding position in the vector will be shown as NA.
For single PDB NMA (called by
nma.pdb()
), the vectors are stored in ‘modes$U’, and it is a matrix and so much easier to understand.