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.1.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.1-py3-none-any.whl (56.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sfris-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 e3c9c071c05582c85a6f8326b05fad8392e5eef009c3eed688e8a18f8be9cd94
MD5 5304264512cb774c91d7bbd8d31b0d36
BLAKE2b-256 49822084715f2964d5b7fe71b0427b63441af201bc1cfeb89ac6ad0ebd197fa3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sfris-1.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 81cd46ff9df09993761919a99a2a205d3bb45b757d1ab66249079a381d0c0a66
MD5 1665f83d65729ac37afbecabbebfc5ee
BLAKE2b-256 c21bde682e21962773c753d4ca62e0231096bbe003163a7ef0f4cc412751c71c

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