Skip to content

Added a Linear TS search job adapter#695

Open
alongd wants to merge 35 commits intomainfrom
linear_ts
Open

Added a Linear TS search job adapter#695
alongd wants to merge 35 commits intomainfrom
linear_ts

Conversation

@alongd
Copy link
Copy Markdown
Member

@alongd alongd commented Aug 21, 2023

Adds a new Linear TS search adapter that builds TS guesses from atom-mapped reactants and products via Z-matrix chimera construction with Hammond-biased weighting. The adapter is incore-only, plugs into ARC's scheduler like heuristics/autotst_ts, and delegates heavy geometry work to a new linear_utils/ subpackage (5 modules). Currently implemented for isomerization/unimolecular reactions.

The PR also carries supporting additions to arc/species/zmat.py (anchors, smart-anchor detection, zmat re-indexing helpers), arc/species/converter.py (atom-map reordering), arc/reaction/reaction.py (is_unimolecular, refined is_isomerization), and a biradical-preservation fix in arc/species/species.py. CI was hardened: pinned action, -n 4 --dist worksteal for stability, and obabel test made self-contained.

Comment thread arc/job/adapters/ts/linear.py Fixed
Comment thread arc/job/adapters/ts/linear.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
@codecov
Copy link
Copy Markdown

codecov Bot commented Aug 22, 2023

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.04%. Comparing base (70dab25) to head (dd5644c).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #695      +/-   ##
==========================================
+ Coverage   60.48%   62.04%   +1.55%     
==========================================
  Files         102      112      +10     
  Lines       31102    38152    +7050     
  Branches     8104     9995    +1891     
==========================================
+ Hits        18813    23671    +4858     
- Misses       9952    11572    +1620     
- Partials     2337     2909     +572     
Flag Coverage Δ
functionaltests 62.04% <ø> (+1.55%) ⬆️
unittests 62.04% <ø> (+1.55%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread arc/species/species.py Fixed
Comment thread arc/rmgdb.py Fixed
@alongd alongd force-pushed the linear_ts branch 5 times, most recently from 8825e9f to cbec920 Compare May 15, 2024 07:02
@alongd alongd marked this pull request as ready for review May 15, 2024 09:26
Comment thread arc/job/adapters/ts/linear.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/job/adapters/ts/linear.py Fixed
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Comment thread arc/job/adapters/ts/linear_test.py Fixed
Comment thread arc/species/zmat.py Fixed
Comment thread arc/species/zmat.py Fixed
Comment thread arc/species/zmat.py Fixed
@alongd alongd force-pushed the linear_ts branch 2 times, most recently from 908773e to 0acc5d4 Compare March 23, 2026 21:26
alongd added 29 commits April 22, 2026 06:19
All important tests are in the legacy CI, some extra tests marked as `@pytest.mark.slow` will run through this routine instead of slowing down each new PR
Also fixed the is_isomerization() method
Also testing the atom_order arg
And updated update_zmat_by_xyz()
added the linear adapter families
So that parallel execution of tests on CI won't run w/o job.execute()
When an ARCSpecies is constructed with both an adjlist (or SMILES) and xyz, mol_from_xyz re-perceives the molecule from the 3D geometry. Previously, perceive_molecule_from_xyz was called with n_radicals=None (the default) even when the existing mol carried radical information. For singlet biradicals this caused the perception to produce a closed-shell molecule with lone pairs instead of radical centers, which then replaced the original mol and broke downstream family detection (e.g.,  Intra_Disproportionation was not identified).

Now, when self.mol already has radical electrons and the user did not explicitly set number_of_radicals, the radical count is derived from self.mol and forwarded to perceive_molecule_from_xyz and is_mol_valid.
To read additional types of RMG-database families
get_entries_label_with_parentheses, TestSplitEntries
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants