Esempio n. 1
0
    def test_all_chem_descriptors(self):
        """Test _all_chem_descriptors() method"""
        class MockObject(object):
            pass

        d1 = ihm.ChemDescriptor("d1")
        d2 = ihm.ChemDescriptor("d2")
        d3 = ihm.ChemDescriptor("d3")
        d4 = ihm.ChemDescriptor("d4")

        s = ihm.System()
        f = ihm.flr.FLRData()
        s.flr_data.append(f)
        r1 = MockObject()
        r2 = MockObject()
        r2.linker = None
        r3 = MockObject()
        r2.linker = d3
        s.restraints.extend((r1, r2))

        r2.feature = None
        s.orphan_chem_descriptors.extend((d1, d2, d1))

        # FLR chemical descriptors
        conj = ihm.flr.PolyProbeConjugate(sample_probe=None,
                                          chem_descriptor=d4,
                                          ambiguous_stoichiometry=False)
        f.poly_probe_conjugates.append(conj)

        # duplicates should not be filtered
        self.assertEqual(list(s._all_chem_descriptors()), [d1, d2, d1, d3, d4])
Esempio n. 2
0
 def test_chem_descriptor(self):
     """Test ChemDescriptor class"""
     d1 = ihm.ChemDescriptor('EDC', chemical_name='test-EDC',
             chem_comp_id='test-chem-comp',
             common_name='test-common-EDC', smiles='CCN=C=NCCCN(C)C')
     self.assertEqual(d1.auth_name, 'EDC')
     self.assertEqual(d1.chem_comp_id, 'test-chem-comp')
     self.assertEqual(d1.chemical_name, 'test-EDC')
     self.assertEqual(d1.common_name, 'test-common-EDC')
     self.assertEqual(d1.smiles, 'CCN=C=NCCCN(C)C')
     self.assertIsNone(d1.inchi)
     self.assertIsNone(d1.inchi_key)
Esempio n. 3
0
"""Chemical descriptors of commonly-used cross-linkers.

   Each of these is an instance of the :class:`ihm.ChemDescriptor` class,
   and so can be used anywhere these objects are required, generally for
   :class:`ihm.restraint.CrossLinkRestraint`.
"""

import ihm

dss = ihm.ChemDescriptor('DSS', chemical_name='disuccinimidyl suberate',
              smiles='C1CC(=O)N(C1=O)OC(=O)CCCCCCC(=O)ON2C(=O)CCC2=O',
              inchi='1S/C16H20N2O8/c19-11-7-8-12(20)17(11)25-15(23)5-'
                    '3-1-2-4-6-16(24)26-18-13(21)9-10-14(18)22/h1-10H2',
              inchi_key='ZWIBGKZDAWNIFC-UHFFFAOYSA-N')

dsg = ihm.ChemDescriptor('DSG', chemical_name='disuccinimidyl glutarate',
              smiles='C1CC(=O)N(C1=O)OC(=O)CCCC(=O)ON2C(=O)CCC2=O',
              inchi='1S/C13H14N2O8/c16-8-4-5-9(17)14(8)22-12(20)2-1-3-'
                    '13(21)23-15-10(18)6-7-11(15)19/h1-7H2',
              inchi_key='LNQHREYHFRFJAU-UHFFFAOYSA-N')

bs3 = ihm.ChemDescriptor('BS3', chemical_name='bissulfosuccinimidyl suberate',
              smiles='C1C(C(=O)N(C1=O)OC(=O)CCCCCCC(=O)ON2C(=O)CC(C2=O)S(=O)'
                     '(=O)O)S(=O)(=O)O',
              inchi='1S/C16H20N2O14S2/c19-11-7-9(33(25,26)27)15(23)17(11)31'
                    '-13(21)5-3-1-2-4-6-14(22)32-18-12(20)8-10(16(18)24)'
                    '34(28,29)30/h9-10H,1-8H2,(H,25,26,27)(H,28,29,30)',
              inchi_key='VYLDEYYOISNGST-UHFFFAOYSA-N')

dsso = ihm.ChemDescriptor('DSSO', chemical_name='disuccinimidyl sulfoxide',
              smiles='O=C(CCS(CCC(ON1C(CCC1=O)=O)=O)=O)ON2C(CCC2=O)=O',
Esempio n. 4
0
"""Chemical descriptors of commonly-used cross-linkers.

   Each of these is an instance of the :class:`ihm.ChemDescriptor` class,
   and so can be used anywhere these objects are required, generally for
   :class:`ihm.restraint.CrossLinkRestraint`.
"""

import ihm

dss = ihm.ChemDescriptor(
    'DSS',
    chemical_name='disuccinimidyl suberate',
    smiles='C1CC(=O)N(C1=O)OC(=O)CCCCCCC(=O)ON2C(=O)CCC2=O',
    inchi='1S/C16H20N2O8/c19-11-7-8-12(20)17(11)25-15(23)5-'
    '3-1-2-4-6-16(24)26-18-13(21)9-10-14(18)22/h1-10H2',
    inchi_key='ZWIBGKZDAWNIFC-UHFFFAOYSA-N')

bs3 = ihm.ChemDescriptor(
    'BS3',
    chemical_name='bissulfosuccinimidyl suberate',
    smiles='C1C(C(=O)N(C1=O)OC(=O)CCCCCCC(=O)ON2C(=O)CC(C2=O)S(=O)'
    '(=O)O)S(=O)(=O)O',
    inchi='1S/C16H20N2O14S2/c19-11-7-9(33(25,26)27)15(23)17(11)31'
    '-13(21)5-3-1-2-4-6-14(22)32-18-12(20)8-10(16(18)24)'
    '34(28,29)30/h9-10H,1-8H2,(H,25,26,27)(H,28,29,30)',
    inchi_key='VYLDEYYOISNGST-UHFFFAOYSA-N')

dsso = ihm.ChemDescriptor(
    'DSSO',
    chemical_name='disuccinimidyl sulfoxide',
    smiles='O=C(CCS(CCC(ON1C(CCC1=O)=O)=O)=O)ON2C(CCC2=O)=O',