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])
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)
"""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',
"""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',