Skip to main content

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.

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
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 with AdvOptProgram = 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

sfris-1.0.0.tar.gz (54.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sfris-1.0.0-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

Details for the file sfris-1.0.0.tar.gz.

File metadata

  • Download URL: sfris-1.0.0.tar.gz
  • Upload date:
  • Size: 54.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sfris-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4f2f68775311c492b6c6aafb7022415a1f0590422c45546d8f21ddf9c793a8c1
MD5 4fc6b52625b680876092ab00c6adead7
BLAKE2b-256 4cb01d83f51c3d377fa167b8a4cbc903f96d27ed795061843cc9dcb04bdc856e

See more details on using hashes here.

File details

Details for the file sfris-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sfris-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 56.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sfris-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 46727ee31f27cc8f50213e59f2a69d16ad6ce8fff5c7c2e094fad155d76578af
MD5 b42fa7eeb10f1792f378a7b7255a8c3d
BLAKE2b-256 90f0f59786b665c5b6018da1911d0973c02cbdde7ea38b16eb06440e99d254d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page