Supported OS: Primarily Linux, likely compatible with macOS, and limited functionality on Windows
SIRAH-Tools-GUI is a graphical user interface designed to streamline multiple analysis steps for molecular simulations carried out with the SIRAH force field. It consolidates several functionalities—from secondary structure analysis to contact mapping and backmapping—into a single, user-friendly platform, see SIRAH Tools GUI documentation for details.
Feedback and contributions are encouraged.
-
Loading and Managing Files:
Easily load simulation trajectories. -
Analysis of Secondary Structure (SS):
Utilize built-in TCL scripts to classify and visualize secondary structure content. Generate SS profiles and time-series plots to understand conformational changes. -
Contacts Analysis:
Determine inter-residue and inter-molecular contacts during simulations.- Contact Maps and Matrices: Generate 2D matrices to visualize residue contacts over time.
- Contacts by Frame: Track how contacts evolve frame-by-frame.
-
Backmapping:
Reconstruct all-atom structures from coarse-grained (CG) simulations. This feature simplifies the transition from CG to atomistic representations. -
General Analysis Tools:
A suite of utilities are available for quick access to common analysis methods (RMSD, RMSF, SASA, Rg, RDF). -
Plots and Figures:
Easily create a variety of plots (e.g., percentage of SS elements, native contacts, contact matrices).
Export high-quality figures (PNG, PDF) for publications or presentations. -
Integration with VMD:
The application leverages TCL scripts that work seamlessly with VMD, enabling advanced visualization and analysis.
-
Operating System:
- Linux: Fully supported.
- macOS: Expected to work normally but no tested.
- Windows: Some functionalities (especially AMBER-related tasks and ASCII-formatted trajectory processing) may be limited.
-
Dependencies:
All Python dependencies are included inenv_sirah_tools.yml
. You will need Conda to create and manage the environment.
-
Clone the Repository:
git clone https://github.com/SIRAHFF/SIRAH-Tools-GUI.git
cd SIRAH-Tools-GUI/
-
Create the Conda Environment:
conda env create -f env_sirah_tools.yml
-
Activate the Environment:
conda activate sirah-gui
-
Run the aplication:
python sirah-tools-gui.py
The GUI should launch, allowing you to access all the features.
To simplify usage, add an alias in your shell configuration file (e.g., ~/.bashrc
or ~/.zshrc
):
alias sirah-gui="conda activate sirah-gui && python /path/to/SIRAH-Tools-GUI/sirah-tools-gui.py"
Be sure to change /path/to/SIRAH-Tools-GUI/sirah-tools-gui.py to the right path on your computer.
After reloading your shell, simply run:
sirah-gui
SIRAH-Tools-GUI relies on Tcl scripts that are invoked via VMD in text mode. However, VMD can be installed using either the Bourne shell (sh
) or C shell (csh
), depending on the system environment and installation method. This poses a compatibility issue:
SIRAH-Tools-GUI expects VMD to be installed using Bourne shell (sh
), and may fail if the vmd
executable points to a C shell installation.
If you encounter the error shown in the figure below, it may be due to this shell mismatch.
To identify which shell your VMD installation uses, run the following command:
head -1 $(which vmd)
-
If the output is:
#!/bin/csh
then your VMD uses C shell — ❌ incompatible
-
If the output is:
#!/bin/sh
then your VMD uses Bourne shell — ✅ compatible.
If your current VMD installation uses csh
, you can force a reinstallation with sh
by temporarily disabling csh
-based alternatives:
-
Configure VMD as usual:
./configure
-
Temporarily disable
csh
alternatives (as root):sudo chmod -x /bin/csh /bin/tcsh 2>/dev/null
-
Proceed with installation:
sudo make install
-
Restore shell permissions (optional but recommended):
sudo chmod +x /bin/csh /bin/tcsh 2>/dev/null
⚠️ Note: The exact paths to shells may vary by distribution. Adjust/bin/csh
and/bin/tcsh
accordingly if they are located elsewhere on your system.
If needed, you can contact the developers or open an issue with a screenshot of your terminal and error logs to help troubleshoot further.
Some analyses that rely on AMBER tools (e.g., LEaP or cpptraj) or ASCII-formatted (CRD) trajectories may not function as intended on Windows.
Thank you for your interest in contributing to SIRAH-Tools-GUI, a Python-based GUI toolkit for analysing and visualising coarse-grained molecular-dynamics trajectories with the SIRAH force field. This guide explains how to contribute effectively while keeping the codebase clean and maintainable.
Whether you are reporting a bug, proposing an enhancement, or planning a large new feature, always open a new issue first in the GitHub Issue Tracker. This allows the community and developers to:
- Confirm that the issue has not already been addressed.
- Discuss design choices and possible approaches.
- Coordinate efforts so work is not duplicated.
Best practice: For major modifications, describe your proposal in an issue before writing code. This collaborative design step reduces re-work and makes it easier to align with the project’s standards.
After implementing your solution, submit a Pull Request (PR) referencing that issue. Even if you have push rights, opening a PR lets automated checks run and gives reviewers a clear change history before merging.
Please include in every issue:
- Operating system, Python version, and environment details.
- Steps to reproduce the problem (if applicable).
- Screenshots or full error messages for GUI or traceback errors.
Before contributing, ensure that:
- You have working knowledge of Python 3.9+.
- You are comfortable with Git and GitHub workflows.
- You have installed all project dependencies.
We recommend Conda for environment management:
git clone https://github.com/SIRAHFF/SIRAH-Tools-GUI.git
cd SIRAH-Tools-GUI
conda env create -f environment.yml
conda activate sirah-gui
Take a moment to familiarise yourself with this structure before contributing.
The main source code is located in the root directory and includes:
- GUI logic in
sirah-tools-gui.py
, which initializes the interface and layout. - Modular tabs and utilities in
modules/
, including:analysis_tab.py
,ss_analysis.py
,contacts_tab.py
,load_files_tab.py
,backmapping_tab.py
about_tab.py
,utilities.py
,utils.py
- Plotting scripts in
modules/plots/
:plot_percentage.py
,contacts_by_frame.py
,matrix_contacts.py
,native_contacts.py
,ss_plot.py
- TCL scripts in
TCL/
used for advanced molecular analysis in VMD:sirah_analysis.tcl
,sirah_vmdtk.tcl
,sirah_ss.tcl
,contacts_distance.tcl
,backmapping.tcl
- Images and visual assets in
img/
:SIRAH-logo.png
,sirahtools-logo.png
│ sirah-tools-gui.py
├───modules
│ └───py files modules
│ └───plots
│ └───py files for plotting
│───TCL
│ └───tcl files for VMD
│
│───img
│ └───png logos
-
Fork the repository and clone your fork:
git clone https://github.com/YOUR-USERNAME/SIRAH-Tools-GUI.git cd SIRAH-Tools-GUI
-
Create a feature branch:
git checkout -b feature-add-export-option
-
Implement your changes, keeping commits focused and modular.
-
Test your contribution locally.
-
Commit with a descriptive message:
git commit -m "Add: export DPI and format options to Ramachandran plot"
-
Push your branch and open a Pull Request:
git push origin feature-add-export-option
-
Reference the related issue in your PR description and provide a clear summary of your changes.
We adhere strictly to PEP 8 and PEP 257.
- Docstrings are required for all public functions and classes.
- Inline comments must clarify any complex logic.
🧪 Testing & Validation
Although a formal test suite is not yet in place, please:
- Manually validate GUI behaviour and output.
- Provide minimal example scripts or sample data when possible.
- Test on multiple platforms (Linux, macOS, Windows) if feasible.
If you fix a bug, document how you verified the fix or include a reproducible test case.
All contributors are expected to behave respectfully. SIRAH-Tools-GUI is a collaborative academic project—help us maintain a welcoming, inclusive environment for everyone.
By submitting code to this repository you agree that it be released under the MIT License, consistent with the rest of the project.