Beispiel #1
0
         stk.Bromo(
             bromine=stk.Br(3),
             atom=stk.C(2),
             bonders=(stk.C(2), ),
             deleters=(stk.Br(3), ),
         ),
         stk.Bromo(
             bromine=stk.Br(6),
             atom=stk.C(5),
             bonders=(stk.C(5), ),
             deleters=(stk.Br(6), ),
         ),
     ),
 ),
 lambda: CaseData(
     factory=stk.IodoFactory(),
     molecule=stk.BuildingBlock('ICC(I)CCI'),
     functional_groups=(
         stk.Iodo(
             iodine=stk.I(0),
             atom=stk.C(1),
             bonders=(stk.C(1), ),
             deleters=(stk.I(0), ),
         ),
         stk.Iodo(
             iodine=stk.I(3),
             atom=stk.C(2),
             bonders=(stk.C(2), ),
             deleters=(stk.I(3), ),
         ),
         stk.Iodo(
Beispiel #2
0
import numpy as np
import pytest

import stk

from .case_data import CaseData

bb1 = stk.BuildingBlock('[C+2][N+]Br', [stk.BromoFactory()])
canonical_bb1 = bb1.with_canonical_atom_ordering()

bb2 = stk.BuildingBlock('IS[O+]', [stk.IodoFactory()])
canonical_bb2 = bb2.with_canonical_atom_ordering()


@pytest.fixture(
    params=(
        lambda: CaseData(
            molecule=stk.BuildingBlock(
                smiles='Br[C+2][N+]Cl',
                functional_groups=[stk.BromoFactory()],
                placer_ids=(0, ),
            ),
            result=stk.BuildingBlock.init(
                atoms=(
                    stk.Cl(0),
                    stk.Br(1),
                    stk.C(2, 2),
                    stk.N(3, 1),
                ),
                bonds=(
                    stk.Bond(stk.Cl(0), stk.N(3, 1), 1),
Beispiel #3
0
     54,
     55,
     56,
     57,
     58,
     59,
     31,
     62,
     63,
 ),
 stk.BuildingBlock(
     smiles=('Br[C+]1[C+]2[N+][C+2]C2(Br)[C+](I)[C+'
             '](I)[C+](Br)[C+]1Br'),
     functional_groups=[
         stk.BromoFactory(),
         stk.IodoFactory(),
         stk.FluoroFactory(),
     ],
 ): (0, 1, 18, 50, 51),
 stk.BuildingBlock(
     smiles=('Br[C+]1[C+]2[S][C+2]C2(Br)[C+](I)[C+]'
             '(I)[C+](Br)[C+]1Br'),
     functional_groups=[
         stk.BromoFactory(),
         stk.IodoFactory(),
         stk.FluoroFactory(),
     ],
 ): (2, 16, 34, 49),
 stk.BuildingBlock(
     smiles=('Br[C+]1[C+]2[S][O]C2(Br)[C+](I)[C+](I'
             ')[C+](Br)[C+]1Br'),
Beispiel #4
0
            functional_groups=(
                stk.Bromo(
                    bromine=stk.Br(0),
                    atom=stk.C(1, 2),
                    bonders=(stk.C(1, 2), ),
                    deleters=(stk.Br(0), ),
                ),
                stk.Bromo(
                    bromine=stk.Br(3),
                    atom=stk.C(2, 2),
                    bonders=(stk.C(2, 2), ),
                    deleters=(stk.Br(3), ),
                ),
            ),
            core_atom_ids=(1, 2),
            placer_ids=(0, 3),
        ),
        lambda: CaseData(
            building_block=stk.BuildingBlock.init_from_molecule(
                molecule=stk.BuildingBlock('Br[C+2][C+2]Br'),
                functional_groups=[stk.IodoFactory()],
            ),
            functional_groups=(),
            core_atom_ids=(0, 1, 2, 3),
            placer_ids=(0, 1, 2, 3),
        ),
    ),
)
def init_from_molecule(request) -> CaseData:
    return request.param()
Beispiel #5
0
def get_case_data_2() -> CaseData:
    bb1 = stk.BuildingBlock('[C+2][N+]Br', [stk.BromoFactory()])
    canonical_bb1 = bb1.with_canonical_atom_ordering()
    bb2 = stk.BuildingBlock('IS[O+]', [stk.IodoFactory()])
    canonical_bb2 = bb2.with_canonical_atom_ordering()

    return CaseData(
        molecule=stk.ConstructedMolecule(
            topology_graph=stk.polymer.Linear(
                building_blocks=(bb1, bb2),
                repeating_unit='AB',
                num_repeating_units=1,
            ),
        ),
        result=stk.ConstructedMolecule.init(
            atoms=(
                stk.C(0, 2),
                stk.O(1, 1),
                stk.N(2, 1),
                stk.S(3),
            ),
            bonds=(
                stk.Bond(stk.C(0, 2), stk.N(2, 1), 1),
                stk.Bond(stk.O(1, 1), stk.S(3), 1),
                stk.Bond(stk.N(2, 1), stk.S(3), 1),
            ),
            position_matrix=np.array([]),
            atom_infos=(
                stk.AtomInfo(
                    atom=stk.C(0, 2),
                    building_block_atom=stk.C(0, 2),
                    building_block=canonical_bb1,
                    building_block_id=0,
                ),
                stk.AtomInfo(
                    atom=stk.O(1, 1),
                    building_block_atom=stk.O(0, 1),
                    building_block=canonical_bb2,
                    building_block_id=1,
                ),
                stk.AtomInfo(
                    atom=stk.N(2, 1),
                    building_block_atom=stk.N(2, 1),
                    building_block=canonical_bb1,
                    building_block_id=0,
                ),
                stk.AtomInfo(
                    atom=stk.S(3),
                    building_block_atom=stk.S(2),
                    building_block=canonical_bb2,
                    building_block_id=1,
                ),
            ),
            bond_infos=(
                stk.BondInfo(
                    bond=stk.Bond(stk.C(0, 2), stk.N(2, 1), 1),
                    building_block=canonical_bb1,
                    building_block_id=0,
                ),
                stk.BondInfo(
                    bond=stk.Bond(stk.O(1, 1), stk.S(3), 1),
                    building_block=canonical_bb2,
                    building_block_id=1,
                ),
                stk.BondInfo(
                    bond=stk.Bond(stk.N(2, 1), stk.S(3), 1),
                    building_block=None,
                    building_block_id=None,
                ),
            ),
            num_building_blocks={
                canonical_bb1: 1,
                canonical_bb2: 1,
            },
        ),
    )