https://github.com/bio-pnpi/gromacs-pyapi
Gromacs Python API bindings for analysis tools
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: acs.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Keywords
gromacs
python
trajectory-analysis
Last synced: 6 months ago
·
JSON representation
Repository
Gromacs Python API bindings for analysis tools
Basic Info
- Host: GitHub
- Owner: bio-pnpi
- License: lgpl-2.1
- Language: CMake
- Default Branch: master
- Size: 70.3 KB
Statistics
- Stars: 3
- Watchers: 5
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
gromacs
python
trajectory-analysis
Created almost 9 years ago
· Last pushed over 8 years ago
https://github.com/bio-pnpi/gromacs-pyapi/blob/master/
GROMACS Python API project ========================== This project provides Python wrappers for Gromacs trajectory analysis [framework][trjan]. You can find an example tool written with this framework in `examples/example_pyapi.py`. We would be very grateful for any feedback at this very alpha stage of the project. Building and installing ----------------------- gromacs-pyapi has following dependencies: * Gromacs (tested with 2016.x branch) * CMake * [SIP][sip] (confirmed to work with 4.19) These should be present in repositories of any modern Linux distro. To build do the following: ```console $ mkdir build $ cd build $ cmake .. -DCMAKE_INSTALL_PREFIX=~/.local $ make $ make install ``` Of course, you can choose any install location you like. By default, the bindings will be built with currently active Python version. Both Python 2 and Python 3 are supported. Usage -------- To use analysis framework, you need to subclass `gromacs.TrajectoryAnalysis.TrajectoryAnalysisModule` and override all virtual methods as stated in Gromacs documentation. To run the tool, provide an instance of your module to `TrajectoryAnalysis.TrajectoryAnalysisCommandLineRunner.runAsMain` function. All this boilerplate code can be copied from the example. When run, the script will behave exactly like any other `gmx` tool, accepting the same set of command-line options. Module specific options can be provided in `initOptions` method with use of `gromacs.Options.PyOptionsHolder` class. This class is needed to overcome impossibilities to directly wrap gromacs `Options` framework in Python. `PyOptionHolder` class has several static methods: * `doubleOption` * `integerOption` * `stringOption` * `booleanOption` * `selectionOption` * `fileNameOption` All of these methods accept three arguments: `name`, `count` and `default`. Only name is mandatory, `count` is 1 by default. If `count` is zero, the option will accept an unlimited number of values. If `count` is greater than zero, the option will accept exactly `count` values. You should store an instance of `PyOptionsHolder` class in your module's instance field and later access options values by name with `[]` operator. In other words, this class will behave as a dictionary. This option framework may change in the future. NumPy ---------- All data sent from C++ side is not copied into Python memory. Instead, a memory view of some sort is returned. For topology, frames and selections all coordinate, velocity, etc. vectors are provided as NumPy arrays directly on top of C++ arrays allocated by Gromacs. This means that actual references to these arrays are only valid during current fuction call, e.g. `analyzeFrame`. If you try to store an array and use it later, you may get a segmentation fault or you may access not the array you were expecting, because of memory re-writing. If you need to store this data for later use, allocate your own array and make a copy. [trjan]: http://manual.gromacs.org/documentation/2016.3/doxygen/html-user/page_analysisframework.xhtml [sip]: https://www.riverbankcomputing.com/software/sip/intro
Owner
- Name: bio-pnpi
- Login: bio-pnpi
- Kind: organization
- Location: Russian Federation
- Repositories: 1
- Profile: https://github.com/bio-pnpi