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
# 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 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.3.tar.gz (610.5 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.3-py3-none-any.whl (609.5 kB view details)

Uploaded Python 3

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

Hashes for sfris-1.0.3.tar.gz
Algorithm Hash digest
SHA256 56ec7cd7e2da441fce8407d112c12e4858d02ff4221732f1416af27eab7cd12b
MD5 de931500dc78ec7fd6f49de550da54d3
BLAKE2b-256 04e4158ad75b331aecaaf2ae7ef6876923e89bfa05bc102a1640487277e53af5

See more details on using hashes here.

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

Hashes for sfris-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 89d3d4db1caec77c51ee8d76e7e1a0b08de6ebd7b035a2020e48f7f7fa01852a
MD5 c90f757b146e34fdd43828e3bc46c149
BLAKE2b-256 38b07661ca6a3831080c98706e062eadb8b3470adf865a4c751f7cb6f9fb0ce5

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