Auto3D

Auto3D module for the Rush Python client.

Auto3D generates 3D conformers from SMILES strings using the AIMNET optimizing engine. It supports configurable conformer counts, convergence thresholds, and isomer/tautomer enumeration.

Usage:

from rush import auto3d

result = auto3d.generate(["CC(C)Cc1ccc(cc1)[C@@H](C)C(=O)O"], k=5).fetch()
print(next(results).stats.e_tot_hartrees)
class rush.auto3d.Result(conformer: TRC, stats: Stats)[source]

Bases: object

Parameters:
conformer: TRC
stats: Stats
class rush.auto3d.ResultPaths(conformer: rush._trc.TRCPaths, stats: pathlib.Path)[source]

Bases: object

Parameters:
  • conformer (TRCPaths)

  • stats (Path)

conformer: TRCPaths
stats: Path
class rush.auto3d.ResultRef(_inputs)[source]

Bases: object

Lightweight reference to Auto3D outputs in the Rush object store.

Supports indexing and iteration over per-input results:

ref = run.collect()
ref[0]  # first input's conformers (list[_ConformerRef]) or Error
len(ref)  # number of inputs

Call fetch() to download and parse into Python dataclasses, or save() to download to local files.

Parameters:

_inputs (list[list[_ConformerRef] | Error])

classmethod from_raw_output(raw)[source]

Parse raw collect_run output into a ResultRef.

The raw output from collect_run is a list[Any] where each element is EITHER a string (error) OR a list of (trc_objs, stats) tuples (conformers), possibly wrapped in Ok/Err. We unwrap and parse into typed refs.

Parameters:

raw (Any)

Return type:

ResultRef

fetch()[source]

Download output files and parse into Result objects.

Each input SMILES either succeeds (returning an iterator of conformer Result objects) or fails (returning an Error).

Returns:

either an iterator over fetched conformers or an Error for that input.

Return type:

One item per input

save()[source]

Save Auto3D outputs into the workspace.

Each successful input yields an iterator of conformers. Every conformer is saved as three TRC component files (topology, residues, chains) plus a JSON file containing the associated stats.

Returns:

either an iterator over saved conformers or an Error for that input.

Return type:

One item per input

class rush.auto3d.Stats(f_max: float, converged: bool, e_rel_kcal_mol: float, e_tot_hartrees: float)[source]

Bases: object

Parameters:
  • f_max (float)

  • converged (bool)

  • e_rel_kcal_mol (float)

  • e_tot_hartrees (float)

converged: bool
e_rel_kcal_mol: float
e_tot_hartrees: float
f_max: float
rush.auto3d.generate(smis, k=1, batchsize_atoms=1024, capacity=40, convergence_threshold=0.003, enumerate_isomer=True, enumerate_tautomer=False, max_confs=None, opt_steps=5000, patience=1000, threshold=0.3, run_spec=RunSpec(), run_opts=RunOpts())[source]

Submit an Auto3D conformer generation job for a list of SMILES strings.

Returns a RushRun handle. Call .collect() to wait for the result ref, then .fetch() or .save() to retrieve outputs.

Parameters:
  • smis (list[str])

  • k (int)

  • batchsize_atoms (int)

  • capacity (int)

  • convergence_threshold (float)

  • enumerate_isomer (bool)

  • enumerate_tautomer (bool)

  • max_confs (int | None)

  • opt_steps (int)

  • patience (int)

  • threshold (float)

  • run_spec (RunSpec)

  • run_opts (RunOpts)

Return type:

RushRun[ResultRef]