Set torsions in a BB.ΒΆ

This is a simple script for finding conformers in an ensemble with a particular torsion.

We can scan over a torsion.

import stk
import bbprepared

bb = stk.BuildingBlock(smiles="C1=CC=NC(=C1)C2=CC=CC=N2")

selector = bbprepared.selectors.BySmartsSelector(
    smarts="[#6][#7][#6][#6][#7][#6]",
    selected_indices=(1, 2, 3, 4),
)
generator = bbprepared.generators.TorsionScanner(
    target_torsions=bbprepared.generators.TorsionRange(
        smarts="[#7][#6][#6][#7]",
        expected_num_atoms=4,
        scanned_ids=(0, 1, 2, 3),
        scanned_range=range(0, 362, 20),
    ),
)
ensemble = generator.generate_conformers(bb)

Then we can select specific torsions.

target1 = 120
process1 = bbprepared.TargetTorsion(
    ensemble=ensemble,
    selector=selector,
    target_value=target1,
)
molecule1 = process1.get_best()

target2 = 60
process2 = bbprepared.TargetTorsion(
    ensemble=ensemble,
    selector=selector,
    target_value=target2,
)
molecule2 = process2.get_best()