Repository navigation
Releases: Arifmaulanaazis/vera
Release list
1.1.2
v1.1.2 ( 2026-06-02)
This patch release improves VERA's developer-facing maintainability by organizing each built-in workflow node into its own file while keeping the existing node library and workflow behavior unchanged.
Highlights
- One-node-per-file layout makes node implementations easier to browse and maintain
- Category packages group node files under focused folders
- Compatibility wrappers preserve imports such as
nodes.plot_nodes - Data-driven registry keeps built-in node loading centralized and easier to extend
Added
Developer Experience
-
Modular node packages (
nodes/)
Each concrete built-in workflow node class now lives in its own file under its category folder.
Shared imports, helper functions, and internal base classes remain in each package'scommon.py.- 110 split node files
- 18 node category packages
- Compatibility wrappers for the previous
nodes.*_nodesmodule paths
Changed
- Reorganized 110 built-in node classes into 18 category packages without changing node types, ports, execution semantics, or
.vswworkflow compatibility. - Simplified
NodeFactoryregistration into a data-driven built-in registry while preserving plugin loading. - Updated README project structure and technical counts to describe the new modular node layout.
Fixed
- FloatingNodePicker now uses external plugin
icon_relpathmetadata, so plugin nodes show the same custom icons in the floating compatible-node picker as they do in the main toolbox.
Release Summary
- 0 new nodes added
- 0 new categories introduced
- 110 node implementations split into individual files
- Existing workflows and import paths remain compatible
1.1.1
v1.1.1 ( 2026-04-20)
This patch release resolves six stability issues across node execution, data handling, and error reporting — improving robustness in headless environments, multi-index DataFrames, and error-path behaviors throughout the workflow engine.
Highlights
- Headless/validation mode compatibility fix for
SelectColumnsNode - StackedBarPlotNode and PairPlotNode now always produce valid PNG output
- Corrected silent data corruption in
_coerce_number()zero-vs-error ambiguity - PythonScriptNode now warns when a script finishes without populating
output
Fixed
Nodes
- SelectColumnsNode (
select_columns)
Missing_lightweight_constructionguard in__init__caused Qt widget creation to run in headless/validation mode. All Qt attributes are now initialised toNoneand the constructor returns early when no display is available.
- StackedBarPlotNode (
plot_stacked_bar)
Calling_finish_png()without an active matplotlib figure when the input table wasNoneraised aValueError. The node now creates a blank "No data" figure before saving so the output port always receives valid PNG bytes.
- PairPlotNode (
plot_pairplot)
Returning rawb""on missing data or seaborn errors caused downstreamimage_viewnodes to crash on empty bytes. All error paths now render a "No data" / "Unable to render" placeholder PNG instead.
Data Handling
-
_to_rows()(data_mod_nodes)
DataFrame.to_dict(orient="records")on a MultiIndex DataFrame produced tuple column keys that downstream filter and select nodes could not match. Areset_index()call is now applied before conversion to flatten multi-level indices into plain columns. -
_coerce_number()(data_mod_nodes)
All failure paths previously returned(False, 0.0), making it impossible to distinguish a coercion error from a legitimate zero value. Failure paths now return(False, float("nan"))so callers that skip the boolean check cannot silently treat0.0as a valid number.
Scripting
- PythonScriptNode (
python_script)
Scripts that never wrote tooutputproduced silentNoneresults with no indication of the problem.execute()now emits a logger warning when the script finishes without populatingoutput["result"]oroutput["result2"].
Release Summary
- 6 bug fixes across nodes, data handling, and scripting
- Improved stability in headless and validation-mode environments
- Eliminated silent data corruption in number coercion
- All plot nodes now guarantee valid PNG output on error paths
1.1.0
v1.1.0 ( 2026-04-20)
This release delivers a significant expansion of VERA’s capabilities with the introduction of a dedicated Cheminformatics toolkit, integrated Python scripting, and new workflow utilities. These additions enable more flexible molecular analysis, custom logic execution, and improved workflow documentation directly within the canvas.
Highlights
- New Cheminformatics category for molecular analysis
- Built-in Python scripting support within workflows
- New utility tools for better workflow organization
- Expanded node library and toolbox structure
Added
Molecular Input
- SMILES Input Node (
smiles_input)
Enter SMILES strings directly on the canvas without requiring file-based input.
Supports one molecule per line with optional naming. Invalid entries are safely skipped with warnings.
Cheminformatics (New Category)
-
Mol Descriptor Node (
mol_descriptor)
Compute RDKit-based molecular descriptors using three presets:lipinskiphysicochemicalall(~200 descriptors)
Outputs results as a pandas DataFrame.
-
Mol Fingerprint Node (
mol_fingerprint)
Generate molecular fingerprints with support for:- Morgan (ECFP)
- MACCS Keys
- RDKit
- Topological Torsion
- Atom Pair
Outputs a bit-vector DataFrame (bit_0,bit_1, …).
-
SMARTS Filter Node (
smarts_filter)
Filter molecules using SMARTS substructure queries.
Providesmatchedandunmatchedoutputs with validation at workflow level.
Scripting (New Category)
-
Python Script Node (
python_script)
Execute custom Python code directly within workflows.- Access inputs via
inputsdictionary - Define outputs via
outputdictionary - Includes syntax validation prior to execution
- Provides two output channels:
resultandresult2
- Access inputs via
Utilities (New Category)
-
Note Node (
note)
Add inline documentation to workflows using configurable sticky notes.- छह color options
- Non-executable (excluded from DAG processing)
- Persisted within
.vswworkflow files
Changed
-
Reorganized
smiles_inputunder Molecular Input/Output -
Introduced new toolbox sections:
- Cheminformatics
- Scripting
- Utilities
-
Increased built-in nodes from 106 → 112
-
Expanded functional categories from 13 → 16
-
Updated README to reflect new structure and technical specifications
Removed
- Removed unused
admet_nodes.pyreference from README to improve clarity
Release Summary
- 6 new nodes added
- 3 new categories introduced
- Enhanced extensibility via scripting
- Expanded molecular analysis capabilities
1.0.0
VERA
Virtual Execution and Reaction Architecture
An open-source, extensible, desktop-native visual workflow platform for integrated computational chemistry and bioinformatics research.
Introduction
Modern computational chemistry and computer-aided drug design (CADD) rely on an increasingly complex ecosystem of specialized software tools. A typical structure-based virtual screening (SBVS) campaign requires protein structure retrieval and preparation, ligand library curation, molecular docking, post-docking analysis, molecular dynamics validation, and statistical visualization each involving distinct file formats (PDB, PDBQT, SDF, MOL2, GRO, TOP, MDP, XVG, XTC, EDR), command-line interfaces, and execution paradigms.
This fragmentation creates three categories of challenges:
- Integration Complexity. Researchers must develop custom glue code to orchestrate data flow between tools, handle file format conversions, and manage error propagation across tool boundaries.
- Reproducibility Deficit. Experimental protocols existing as undocumented scripts with implicit dependencies make computational experiments difficult to reproduce, share, and audit.
- Accessibility Barrier. The steep learning curve of command-line tools excludes domain scientists medicinal chemists, pharmacologists, toxicologists who possess deep biological intuition but lack programming proficiency.
VERA addresses these challenges by providing a desktop-native, visually rich workflow environment that deeply integrates the most widely used computational chemistry engines into a coherent, type-safe, node-based programming model.
Installation
Pre-built Installer (Recommended)
- Download the installer from the Releases page
- Run
VERA-Setup-x64.exe - Follow the installation wizard
- Launch VERA from desktop or Start menu
The installer bundles all dependencies and scientific engines.
From Source
Follow these steps to run VERA directly from the source code.
1. Clone the Repository
git clone https://github.com/Arifmaulanaazis/vera.git
cd vera2. Create and Activate a Virtual Environment
# Create virtual environment
python -m venv .venv
# Activate (PowerShell)
.venv\Scripts\Activate.ps1
# Or activate (Command Prompt)
.venv\Scripts\activate.bat3. Install Python Dependencies
pip install -r requirements.txt4. Compile Qt Resources
python build_resources.py5. Set Up GROMACS (Required for MD Nodes)
Important: GROMACS binaries are not included in this repository because they exceed Git's size limits. You must download and place them manually. See the Setting Up GROMACS section below.
6. Launch VERA
python main.pySetting Up GROMACS
GROMACS is required for the Molecular Dynamics nodes. The pre-built Windows executables are distributed separately at:
🔗 https://github.com/Arifmaulanaazis/Gromacs-Prebuild-Windows
Releases are available from GROMACS 2025.1 through 2026.1 and will continue to be updated with new versions.
Download and Installation Steps
-
Go to the Releases page of the GROMACS pre-build repository.
-
Download the archive for the version and build type you need:
gromacs_2025.1_cpu.zip— CPU-only buildgromacs_2025.1_cuda.zip— CUDA-accelerated build (requires NVIDIA GPU)- (and so on for newer versions)
-
Extract the contents into the exact folder path matching the version inside this repository:
vera/ └── engine/ └── gromacs/ ├── gromacs_2025.1_cpu/ ← extract CPU archive here │ ├── bin/ │ ├── lib/ │ ├── share/ │ └── GMXRC.bat ├── gromacs_2025.1_cuda/ ← extract CUDA archive here │ ├── bin/ │ ├── lib/ │ ├── share/ │ └── GMXRC.bat ├── gromacs_2025.2_cpu/ ├── gromacs_2025.2_cuda/ └── ...⚠️ The folder names must match exactly (e.g.,gromacs_2025.1_cuda) because VERA uses these paths to locate thegmxexecutable at runtime. -
Verify the installation by checking that the executable exists, for example:
engine\gromacs\gromacs_2025.1_cuda\bin\gmx.exe
Available Versions
| Version | CPU Build | CUDA Build | Notes |
|---|---|---|---|
| 2025.1 | ✅ | ✅ | First available pre-build |
| 2025.2 | ✅ | ✅ | Maintenance release |
| 2026.1 | ✅ | ✅ | Latest stable |
| future | ✅ | ✅ | Added as upstream releases |
Note: If you only plan to run CPU-based MD simulations, the CPU build is sufficient. Use the CUDA build to enable GPU acceleration (
-nb gpu -bonded gpu -pme gpu).
Project Structure
vera/
├── main.py # Application entry point
├── vera.py # Thin launcher (calls main.py)
├── requirements.txt # Python dependencies
├── build_resources.py # Qt resource compiler script
├── vera.ico # Application icon
├── vera.png # VERA logo
├── LICENSE # MIT License
├── README.md # This file
├── CONTRIBUTING.md # Contribution guidelines
│
├── core/ # Core UI and workflow components
│ ├── application.py # VERAApplication — main window orchestrator
│ ├── canvas.py # WorkflowCanvas — QGraphicsView-based editor
│ ├── nodes.py # BaseNode — abstract node base class
│ ├── toolbox.py # NodeToolbox — drag-and-drop palette
│ ├── properties.py # Properties panel
│ ├── port_types.py # PortTypes — type system definitions
│ └── floating_controls.py # Run/Stop/Pause floating toolbar
│
├── backend/
│ └── workflow_manager.py # WorkflowManager — DAG execution engine
│
├── nodes/ # All built-in node implementations
│ ├── node_factory.py # NodeFactory — registry and loader
│ ├── docking_nodes.py # AutoDock Vina nodes
│ ├── md_nodes.py # GROMACS molecular dynamics nodes
│ ├── io_nodes.py # File I/O nodes (SDF, MOL, PDB, CSV, etc.)
│ ├── data_mod_nodes.py # DataFrame manipulation nodes
│ ├── visualization_nodes.py # Plotting and 3D viewer nodes
│ ├── ml_nodes.py # Machine learning nodes (sklearn)
│ ├── admet_nodes.py # ADMET/toxicity prediction nodes
│ └── ... # Other node modules by category
│
├── UI/ # Qt dialogs and UI components
├── utils/ # Logging, theming, external tool helpers
├── theme/ # QSS stylesheets and icon assets
├── plugins/ # Plugin framework and documentation
├── web/ # NGL.js 3D viewer HTML
├── example/ # Pre-built .vsw workflow files
├── assets/ # Qt resource manifests
│
├── engine/ # Bundled external computational engines
│ ├── gromacs/ # GROMACS builds (contents downloaded separately)
│ │ ├── gromacs_2025.1_cpu/ # ← Place CPU 2025.1 build here
│ │ ├── gromacs_2025.1_cuda/ # ← Place CUDA 2025.1 build here
│ │ ├── gromacs_2025.2_cpu/ # ← Place CPU 2025.2 build here
│ │ ├── gromacs_2025.2_cuda/ # ← Place CUDA 2025.2 build here
│ │ └── gromacs_2026.1_*/ # ← And so on for newer versions
│ ├── openbabel/ # OpenBabel binary (included)
│ ├── vina/ # AutoDock Vina CPU binary (included)
│ ├── vina_gpu/ # Vina-GPU 2.1 binary (included)
│ └── vina_split/ # Vina split utility (included)
│
├── AutoDockTools/ # AutoDockTools Python library
├── MolKit/ # MolKit molecular modelling library
├── PyBabel/ # PyBabel utility library
└── mglutil/ # MGLTools utility library
Note on
engine/gromacs/: The GROMACS sub-folders are tracked by Git (so the expected paths exist after cloning), but their contents are.gitignored due to binary size. You must manually download and extract the GROMACS pre-builds from Gromacs-Prebuild-Windows into the matching folder. All other engines (openbabel,vina,vina_gpu,vina_split) are already included in the repository.
