Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ MolDscript is a Python workflow that converts Density Functional Theory (DFT) an
- Parse optimization, single-point, NBO, NMR, charge, FMO, and Fukui calculations without manual file editing.
- Match conformer ensembles, apply SMARTS-based substructure filters, and compute DBSTEP buried volumes on demand.
- Generate ensembles (Boltzmann weighted, min/mnax within population windows, lowest-energy snapshots) in a single run.
- Emit descriptor CSVs alongside module logs (`MOLDSCRIPT_*.dat`) for traceability.
- Emit descriptor CSVs alongside a single run audit log (`MOLDSCRIPT.dat`) for traceability.

## Installation
```shell
Expand Down Expand Up @@ -38,21 +38,23 @@ Prefer storing options in a key:value text file? Use `--varfile inputs.txt`; com
- `--spc PATH` - single-point energies that replace optimization SCF energies.
- `--nbo`, `--nmr`, `--charges`, `--fmo` PATH - add module-specific descriptors; pair with `--suffix_*` to specify filename tokens specific to calculation type (required for proper comformer matching).
- `--fukui_neutral`, `--fukui_reduced`, `--fukui_oxidized` PATH - supply all three charge states for vertical IE/EA and condensed Fukui functions. Again, pair with `--suffix_*` for proper conformer matching.
- `--substructure SMARTS` - limit atom/bond descriptors to a SMARTS match; combine with `--volume` or `--vall` and optional `--radius` list for DBSTEP buried volumes.
- `--boltz`, `--min_max`, `--lowe` - compute Boltzmann-weighted averages, min/max/range tables (using `--cut`), and lowest-energy snapshots. Adjust `--temp` (K) as needed.
- `--output PREFIX` - prepend every generated filename; append a slash to target a directory. Use `--no_mol`, `--no_atom`, `--no_bond`, or `--no_bond_filter` to tailor CSV output.
- `--substructure SMARTS` - limit atom/bond descriptors to a SMARTS match; combine with `--volume` or `--vall` and optional `--radius` list for DBSTEP buried volumes.
- `--boltz`, `--min_max`, `--lowe` - compute Boltzmann-weighted averages, min/max/range tables (using `--cut`), and lowest-energy snapshots. Adjust `--temp` (K) as needed.
- `--output PREFIX` - prepend every generated filename; append a slash to target a directory. Use `--no_mol`, `--no_atom`, `--no_bond`, or `--no_bond_filter` to tailor CSV output.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Document --no_bond_filter separately from CSV toggles.

--no_bond_filter changes bond inclusion criteria; it does not disable CSV output. Keep it separate from --no_mol, --no_atom, and --no_bond, consistent with docs/source/README.rst Lines 165-169.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 43, Update the README option description near the output
PREFIX entry to list --no_mol, --no_atom, and --no_bond as CSV-output toggles,
while documenting --no_bond_filter separately as the bond-inclusion control;
keep the wording consistent with docs/source/README.rst.

- `--workers N` - parse independent quantum output files in parallel. Start with a modest value such as `--workers 4` for large batches, then increase if memory use is acceptable.
- `--write_args arguments.txt` - save the effective options for the current run as a reusable `--varfile`.

## Output Artefacts
- `molecule_level.csv`, `bond_level.csv`, `atom_level.csv` - aligned descriptors per calculation, bond pair, or atom.
- `ensemble_*.csv`, `boltzmann_weights.csv` - created when `--boltz` is enabled.
- `min_max_range_*.csv`, `lowest_energy_*.csv` - created when `--min_max` or `--lowe` are requested.
- `MOLDSCRIPT_*.dat` - per-module logs capturing provenance and CPU-time summaries.
- `MOLDSCRIPT.dat` - a single run log capturing provenance, parsed files, module sections, and CPU-time summaries.

## Documentation
The Read the Docs site (coming soon) will provide the full user guide: [https://moldscript.readthedocs.io](https://moldscript.readthedocs.io)

## Dependencies
Key Python dependencies include `pandas`, `cclib` (latest GitHub version for the most up-to-date package compatability), `dbstep`, `rdkit`, `networkx`, `numpy`, and `periodictable`.
Key Python dependencies include `pandas`, `cclib` (latest GitHub version for the most up-to-date package compatability), `dbstep`, `rdkit`, `networkx`, `numpy`, `periodictable`, `rich`, and `tqdm`.

## Supported Quantum Packages
- Gaussian
Expand Down
6 changes: 3 additions & 3 deletions docs/source/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ Key Capabilities
- Merge descriptors across conformers and calculation types into aligned CSV datasets.
- Restrict analysis to user-defined SMARTS substructures and optionally compute DBSTEP buried volumes.
- Generate ensemble statistics such as Boltzmann-weighted averages, population windows, and lowest-energy snapshots.
- Produce audit logs (``MOLDSCRIPT_*.dat``) alongside descriptor files for reproducibility.
- Produce a single audit log (``MOLDSCRIPT.dat``) alongside descriptor files for reproducibility.

Installation
------------
1. Clone the repository: ``git clone https://github.com/patonlab/molDscript.git``.
2. (Optional) create and activate a dedicated environment.
3. Install the package from the repository root: ``pip install -e .`` (or ``pip install .`` for a standard install).

Required Python dependencies are declared in ``setup.py`` and include ``pandas>=2.0.2``, ``cclib`` (latest from GitHub), ``dbstep``, ``rdkit``, ``networkx``, ``numpy``, and ``periodictable``. Install RDKit and Open Babel via conda-forge when pip wheels are not available:
Required Python dependencies are declared in ``setup.py`` and include ``pandas>=2.0.2``, ``cclib`` (latest from GitHub), ``dbstep``, ``rdkit``, ``networkx``, ``numpy``, ``periodictable``, ``rich``, and ``tqdm``. Install RDKit and Open Babel via conda-forge when pip wheels are not available:

.. code-block:: shell

Expand Down Expand Up @@ -180,7 +180,7 @@ Running molDscript creates the following artefacts in the working directory (or
- ``atom_level.csv`` - atomic descriptors including charges, Fukui indices, NMR shielding, and buried volumes when requested.
- ``boltzmann_weights.csv`` plus ``ensemble_*.csv`` tables when ``--boltz`` is enabled.
- ``min_max_range_*.csv`` tables when ``--min_max`` is enabled and ``lowest_energy_*.csv`` tables when ``--lowe`` is requested.
- Module logs named ``MOLDSCRIPT_<MODULE>.dat`` that document parsing steps and CPU-time summaries.
- ``MOLDSCRIPT.dat`` - a single run log that documents command provenance, parsed files, module sections, and CPU-time summaries.

Each run also reports the cumulative CPU time associated with the parsed quantum chemistry jobs.

Expand Down
Loading