Copyright | Phillip Seeber 2021 |
---|---|

License | AGPL-3 |

Maintainer | phillip.seeber@googlemail.com |

Stability | experimental |

Portability | POSIX, Windows |

Safe Haskell | None |

Language | Haskell2010 |

This module implements routines to work with simple molden style XYZ trajectories. This includes parsers as well as functions to obtain structural features in internal coordinates.

For an introduction into PCA see https://www.cs.cmu.edu/~elaw/papers/pca.pdf.

Diherdrals require a special metric, see https://onlinelibrary.wiley.com/doi/full/10.1002/prot.20310).

## Synopsis

- data Molecule
- type Trajectory = Seq Molecule
- xyz :: Parser Molecule
- trajectory :: Parser Trajectory
- data B = B Int Int
- data A = A Int Int Int
- data D = D Int Int Int Int
- data Feature
- getFeatures :: (MonadThrow m, Traversable f) => f Feature -> Trajectory -> m (Matrix DL Double)

# Documentation

type Trajectory = Seq Molecule Source #

trajectory :: Parser Trajectory Source #

Parser for trajectories in XYZ format as produced by CREST.

Selection of a dihedral angle between four atoms. Rotation around the central two.

D Int Int Int Int |

getFeatures :: (MonadThrow m, Traversable f) => f Feature -> Trajectory -> m (Matrix DL Double) Source #

Obtains the feature matrix \(\mathbf{X}\) for a principal component analysis. Given \(m\) features to analyse in \(n\) measurements, \(\mathbf{X}\) will be a \(m \times n\) matrix.