Systematic Fragmentation-Recombination Isomer Search: automated constitutional isomer generation
Project description
SFRIS
Systematic Fragmentation-Recombination Isomer Search
SFRIS is a computational chemistry tool for automated constitutional isomer generation. It systematically dissects molecular bonds according to priority rules, places fragments in 3D space via Fibonacci sphere sampling, and refines candidates through a multi-level optimization pipeline.
- Author: Dapeng Zhang (ORCID)
- License: MIT
- Homepage: https://halsten.pcmq.net/sfris
Installation
pip install sfris
External dependencies
SFRIS requires at least one of the following quantum chemistry programs (not included):
| Program | Role | Notes |
|---|---|---|
| xTB | Block 1 (semi-empirical screening) | Required |
| ORCA | Block 2 (DFT refinement) | Optional |
| Psi4 | Block 2 (DFT refinement) | Alternative to ORCA |
| Gaussian | Block 2 (DFT refinement) | Alternative to ORCA |
Quick start
1. Configure software paths (once per machine)
sfris config init
Edit ~/.config/sfris/config with your paths:
[settings]
XtbPath = /path/to/xtb
OrcaPath = /path/to/orca
# Psi4Path = /path/to/psi4
# GaussianPath = /path/to/gaussian
NProc = 8
ScratchDir = /tmp/sfris_scratch
2. Get an example and run
sfris example CH4O
sfris run CH4O.inp &
Results are written to the ISOMER/ directory as individual .xyz files, sorted by energy. Progress is logged in SFRIS.run.
Usage
sfris run <input_file> # Run full search (background-safe)
sfris test <input_file> # Test backend connectivity
sfris <input_file> # Initialize and validate input
sfris config # Show current config
sfris config init # Create default config file
sfris example # List example molecules
sfris example <name> # Copy example to current directory
Input file format
# Comment
0 1
C 0.000 0.000 0.000
O 1.200 0.000 0.000
H -0.540 0.940 0.000
H -0.540 -0.940 0.000
Parameters
[CUT]
CutControl = 3, 0.4
[SEARCH]
ConvergenceRounds = 30, auto, auto
[CLUSTER]
MirrorCheck = true
[FILTER]
ScanLimit = 150
AdvOptFilter = 50
[ADVOPT]
[NMA]
[]
The [] end marker is required. Machine-specific settings (paths, nproc) are read from the config file and do not need to be specified in the input.
Block control
- Block 1 only (xTB screening): omit
[ADVOPT]from the input file. - Block 1 + Block 2 (DFT refinement): add
[ADVOPT]. The DFT program is auto-detected from config paths, or set explicitly withAdvOptProgram = orca. - Frequency analysis: add
[NMA](requires[ADVOPT]).
Method specification
Methods are written as Functional-Dispersion/Basis:
AdvOptMethod = B3LYP-D3(BJ)/def2-TZVP
AdvOptMethod = PBE0-D3BJ/6-311+G(d,p)
AdvOptMethod = wB97X-D3/cc-pVTZ
AdvOptMethod = M06-2X/aug-cc-pVDZ
SFRIS automatically translates method strings into the correct syntax for each backend (ORCA, Psi4, Gaussian). Pople, Dunning, and Karlsruhe basis sets are all supported.
How it works
SFRIS operates in two blocks:
- Block 1: Molecular bonds are systematically cut according to priority rules. Fragments are recombined by placement on a Fibonacci sphere, then screened and optimized at the GFN2-xTB level with triple-gate deduplication (energy, RMSD, graph isomorphism).
- Block 2 (optional): Unique isomers from Block 1 are re-optimized at the DFT level with a second round of deduplication.
Stopping and resuming
SFRIS supports graceful interruption. To stop a running calculation:
touch CH4O.STOP
SFRIS will save a checkpoint and exit at the next safe point. To resume:
sfris run CH4O.inp &
The calculation continues from where it stopped.
Supported elements
C, H, N, O, S, P, F, Cl, Br
Citation
If you use SFRIS in your research, please cite:
Zhang, D. (2026). SFRIS: Systematic Fragmentation and Recombination for Automated Constitutional Isomer Generation. doi: forthcoming
See also CITATION.cff for machine-readable citation metadata.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sfris-1.0.3.tar.gz.
File metadata
- Download URL: sfris-1.0.3.tar.gz
- Upload date:
- Size: 610.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
56ec7cd7e2da441fce8407d112c12e4858d02ff4221732f1416af27eab7cd12b
|
|
| MD5 |
de931500dc78ec7fd6f49de550da54d3
|
|
| BLAKE2b-256 |
04e4158ad75b331aecaaf2ae7ef6876923e89bfa05bc102a1640487277e53af5
|
File details
Details for the file sfris-1.0.3-py3-none-any.whl.
File metadata
- Download URL: sfris-1.0.3-py3-none-any.whl
- Upload date:
- Size: 609.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89d3d4db1caec77c51ee8d76e7e1a0b08de6ebd7b035a2020e48f7f7fa01852a
|
|
| MD5 |
c90f757b146e34fdd43828e3bc46c149
|
|
| BLAKE2b-256 |
38b07661ca6a3831080c98706e062eadb8b3470adf865a4c751f7cb6f9fb0ce5
|