예제 #1
0
def get_case_data_1() -> CaseData:
    return 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),
                stk.Bond(stk.Br(1), stk.C(2, 2), 1),
                stk.Bond(stk.C(2, 2), stk.N(3, 1), 1),
            ),
            position_matrix=np.array([
            ]),
            functional_groups=(
                stk.Bromo(
                    bromine=stk.Br(1),
                    atom=stk.C(2, 2),
                    bonders=(stk.C(2, 2), ),
                    deleters=(stk.Br(1), ),
                ),
            ),
            placer_ids=(1, ),
        )
    )
예제 #2
0
파일: amide.py 프로젝트: zaeemnajeeb/stk
def amide(get_atom_ids):
    a, b, c, d, e, f = get_atom_ids(6)
    return _amide(
        carbon=stk.C(a),
        oxygen=stk.O(b),
        nitrogen=stk.N(c),
        hydrogen1=stk.H(d),
        hydrogen2=stk.H(e),
        atom=stk.C(f),
    )
예제 #3
0
def ring_amine(get_atom_ids):
    a, b, c, d, e, f, g = get_atom_ids(7)
    return _ring_amine(
        nitrogen=stk.N(a),
        hydrogen1=stk.H(b),
        hydrogen2=stk.H(c),
        carbon1=stk.C(d),
        carbon2=stk.C(e),
        hydrogen3=stk.H(f),
        carbon3=stk.C(g),
    )
예제 #4
0
def secondary_amino(get_atom_ids):
    a, b, c, d = get_atom_ids(4)
    return _secondary_amino(stk.N(a), stk.H(b), stk.C(c), stk.C(d))
예제 #5
0
     atom4=stk.C(6),
     bonders=(stk.C(1), ),
     deleters=(stk.C(5), stk.C(6)),
 ),
 stk.Alkyne(
     carbon1=stk.C(0),
     atom1=stk.C(1),
     carbon2=stk.C(2),
     atom2=stk.H(3),
     bonders=(stk.C(0), ),
     deleters=(stk.C(2), stk.H(3)),
 ),
 stk.Amide(
     carbon=stk.C(0),
     oxygen=stk.O(1),
     nitrogen=stk.N(2),
     hydrogen1=stk.H(3),
     hydrogen2=stk.H(4),
     atom=stk.C(5),
     bonders=(stk.C(0), ),
     deleters=(stk.N(2), stk.H(3), stk.H(4)),
 ),
 stk.BoronicAcid(
     boron=stk.B(0),
     oxygen1=stk.O(1),
     hydrogen1=stk.H(2),
     oxygen2=stk.O(3),
     hydrogen2=stk.H(4),
     atom=stk.C(5),
     bonders=(stk.B(0), ),
     deleters=(stk.O(1), stk.H(2), stk.O(3), stk.H(4)),
예제 #6
0
import pytest
import stk

from ..case_data import CaseData


@pytest.fixture(
    scope='session',
    params=(
        lambda: CaseData(
            factory=stk.PrimaryAminoFactory(),
            molecule=stk.BuildingBlock('NCCN'),
            functional_groups=(
                stk.PrimaryAmino(
                    nitrogen=stk.N(0),
                    hydrogen1=stk.H(4),
                    hydrogen2=stk.H(5),
                    atom=stk.C(1),
                    bonders=(stk.N(0), ),
                    deleters=(stk.H(4), stk.H(5)),
                ),
                stk.PrimaryAmino(
                    nitrogen=stk.N(3),
                    hydrogen1=stk.H(10),
                    hydrogen2=stk.H(11),
                    atom=stk.C(2),
                    bonders=(stk.N(3), ),
                    deleters=(stk.H(10), stk.H(11)),
                ),
            ),
        ),
예제 #7
0
import pytest

import stk

from .case_data import CaseData


@pytest.fixture(
    params=(stk.Bond(stk.C(0), stk.N(1), 1), ), )
def bond(request):
    """
    A :class:`.Bond` instance.

    """

    return request.param


@pytest.fixture(
    params=(
        stk.BuildingBlock('NCCN'),
        None,
    ), )
def building_block(request):
    """
    A valid building block for a :class:`.BondInfo`.

    """

    return request.param
예제 #8
0
import pytest

import stk

from ..case_data import CaseData


@pytest.fixture(
    scope='session',
    params=(lambda: CaseData(
        factory=stk.RingAmineFactory(),
        molecule=stk.BuildingBlock('NCC(Br)c1c(Br)cccc1'),
        functional_groups=(stk.RingAmine(
            nitrogen=stk.N(0),
            carbon1=stk.C(1),
            carbon2=stk.C(2),
            carbon3=stk.C(4),
            hydrogen1=stk.H(11),
            hydrogen2=stk.H(12),
            hydrogen3=stk.H(15),
        ), ),
    ), ),
)
def case_data(request) -> CaseData:
    """
    A :class:`.CaseData` instance.

    """

    return request.param()
예제 #9
0

@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),
                    stk.Bond(stk.Br(1), stk.C(2, 2), 1),
                    stk.Bond(stk.C(2, 2), stk.N(3, 1), 1),
                ),
                position_matrix=np.array([
                ]),
                functional_groups=(
                    stk.Bromo(
                        bromine=stk.Br(1),
                        atom=stk.C(2, 2),
                        bonders=(stk.C(2, 2), ),
                        deleters=(stk.Br(1), ),
                    ),
예제 #10
0
파일: conftest.py 프로젝트: zaeemnajeeb/stk
import pytest
import stk

from .case_data import CaseData


@pytest.fixture(
    params=(CaseData(
        molecule=stk.BuildingBlock('NCCN'),
        bonds=(
            stk.Bond(stk.N(0), stk.C(1), 1),
            stk.Bond(stk.C(1), stk.C(2), 1),
            stk.Bond(stk.C(2), stk.N(3), 1),
            stk.Bond(stk.N(0), stk.H(4), 1),
            stk.Bond(stk.N(0), stk.H(5), 1),
            stk.Bond(stk.C(1), stk.H(6), 1),
            stk.Bond(stk.C(1), stk.H(7), 1),
            stk.Bond(stk.C(2), stk.H(8), 1),
            stk.Bond(stk.C(2), stk.H(9), 1),
            stk.Bond(stk.N(3), stk.H(10), 1),
            stk.Bond(stk.N(3), stk.H(11), 1),
        ),
    ), ), )
def case_data(request):
    return request.param
예제 #11
0
def single_atom(get_atom_ids):
    a, = get_atom_ids(1)
    return _single_atom(stk.N(a))
예제 #12
0
파일: conftest.py 프로젝트: zaeemnajeeb/stk
import pytest
import stk

from .case_data import CaseData


@pytest.fixture(
    params=(CaseData(
        molecule=stk.BuildingBlock('NCCN'),
        atoms=(
            stk.N(0),
            stk.C(1),
            stk.C(2),
            stk.N(3),
            stk.H(4),
            stk.H(5),
            stk.H(6),
            stk.H(7),
            stk.H(8),
            stk.H(9),
            stk.H(10),
            stk.H(11),
        ),
    ), ), )
def case_data(request):
    """
    A :class:`.CaseData` instance.

    """

    return request.param
예제 #13
0
import pytest
import stk

from .case_data import CaseData


@pytest.fixture(
    params=(
        stk.Bond(stk.C(0), stk.N(1), 1),
    ),
)
def bond(request):
    """
    A :class:`.Bond` instance.

    """

    return request.param


@pytest.fixture(
    params=(
        stk.BuildingBlock('NCCN'),
        None,
    ),
)
def building_block(request):
    """
    A valid building block for a :class:`.BondInfo`.

    """
예제 #14
0

@pytest.fixture(
    params=(
        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),
                    stk.Bond(stk.Br(1), stk.C(2, 2), 1),
                    stk.Bond(stk.C(2, 2), stk.N(3, 1), 1),
                ),
                position_matrix=np.array([
                ]),
                functional_groups=(
                    stk.Bromo(
                        bromine=stk.Br(1),
                        atom=stk.C(2, 2),
                        bonders=(stk.C(2, 2), ),
                        deleters=(stk.Br(1), ),
                    ),
예제 #15
0
def primary_amino(get_atom_ids):
    a, b, c, d = get_atom_ids(4)
    return _primary_amino(stk.N(a), stk.H(b), stk.H(c), stk.C(d))
예제 #16
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,
            },
        ),
    )