コード例 #1
0
    def test_software_dumper(self):
        """Test SoftwareDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        IMP.core.add_imp_provenance(h)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")

        dumper = ihm.dumper._SoftwareDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        # Ignore line breaks, since these will be placed differently depending
        # on how long the version number is
        self.assertEqual(out.replace('\n', ' '), ("""#
loop_
_software.pdbx_ordinal
_software.name
_software.classification
_software.description
_software.version
_software.type
_software.location
1 'Integrative Modeling Platform (IMP)' 'integrative model building' .
%s program https://integrativemodeling.org
#
""" % IMP.get_module_version()).replace('\n', ' '))
コード例 #2
0
    def test_ensemble_info(self):
        """Test EnsembleDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        e = IMP.mmcif.Ensemble(state, "cluster 1")
        e.add_model([h], [], "model1")
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._EnsembleDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_ensemble_info.ensemble_id
_ihm_ensemble_info.ensemble_name
_ihm_ensemble_info.post_process_id
_ihm_ensemble_info.model_group_id
_ihm_ensemble_info.ensemble_clustering_method
_ihm_ensemble_info.ensemble_clustering_feature
_ihm_ensemble_info.num_ensemble_models
_ihm_ensemble_info.num_ensemble_models_deposited
_ihm_ensemble_info.ensemble_precision_value
_ihm_ensemble_info.ensemble_file_id
1 'cluster 1' . 1 . . 1 1 . .
#
""")
コード例 #3
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_ensemble_info(self):
        """Test EnsembleDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        e = IMP.mmcif.Ensemble(state, "cluster 1")
        e.add_model([h], [], "model1")
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._EnsembleDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_ensemble_info.ensemble_id
_ihm_ensemble_info.ensemble_name
_ihm_ensemble_info.post_process_id
_ihm_ensemble_info.model_group_id
_ihm_ensemble_info.ensemble_clustering_method
_ihm_ensemble_info.ensemble_clustering_feature
_ihm_ensemble_info.num_ensemble_models
_ihm_ensemble_info.num_ensemble_models_deposited
_ihm_ensemble_info.ensemble_precision_value
_ihm_ensemble_info.ensemble_file_id
1 'cluster 1' . 1 . . 1 1 . .
#
""")
コード例 #4
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_software_dumper(self):
        """Test SoftwareDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        IMP.core.add_imp_provenance(h)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")

        dumper = ihm.dumper._SoftwareDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        # Ignore line breaks, since these will be placed differently depending
        # on how long the version number is
        self.assertEqual(out.replace('\n', ' '), ("""#
loop_
_software.pdbx_ordinal
_software.name
_software.classification
_software.description
_software.version
_software.type
_software.location
1 'Integrative Modeling Platform (IMP)' 'integrative model building' .
%s program https://integrativemodeling.org
#
""" % IMP.get_module_version()).replace('\n', ' '))
コード例 #5
0
    def test_modeling_protocol(self):
        """Test ProtocolDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model_with_protocol(system)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")

        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)  # Assign assembly IDs

        dumper = ihm.dumper._ProtocolDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_modeling_protocol.id
_ihm_modeling_protocol.protocol_name
_ihm_modeling_protocol.num_steps
1 . 1
2 . 1
#
#
loop_
_ihm_modeling_protocol_details.id
_ihm_modeling_protocol_details.protocol_id
_ihm_modeling_protocol_details.step_id
_ihm_modeling_protocol_details.struct_assembly_id
_ihm_modeling_protocol_details.dataset_group_id
_ihm_modeling_protocol_details.struct_assembly_description
_ihm_modeling_protocol_details.step_name
_ihm_modeling_protocol_details.step_method
_ihm_modeling_protocol_details.num_models_begin
_ihm_modeling_protocol_details.num_models_end
_ihm_modeling_protocol_details.multi_scale_flag
_ihm_modeling_protocol_details.multi_state_flag
_ihm_modeling_protocol_details.ordered_flag
_ihm_modeling_protocol_details.software_id
_ihm_modeling_protocol_details.script_file_id
_ihm_modeling_protocol_details.description
1 1 1 2 . 'All components modeled by IMP' Sampling 'Monte Carlo' 0 500 YES NO NO
. . .
2 2 1 2 . 'All components modeled by IMP' Sampling
'Replica exchange Molecular Dynamics' 400 2000 YES NO NO . . .
#
""")
コード例 #6
0
    def test_em3d_dumper(self):
        """Test EM3DDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        em_filename = self.get_input_file_name('test.gmm.txt')
        r = MockGaussianEMRestraint(state.model, em_filename)
        r.set_was_used(True)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [r], "model1")
        # Assign dataset ID (=2 since the gmm is derived from an MRC)
        self._assign_dataset_ids(system)
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._EM3DDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_3dem_restraint.ordinal_id
_ihm_3dem_restraint.dataset_list_id
_ihm_3dem_restraint.fitting_method
_ihm_3dem_restraint.fitting_method_citation_id
_ihm_3dem_restraint.struct_assembly_id
_ihm_3dem_restraint.number_of_gaussians
_ihm_3dem_restraint.model_id
_ihm_3dem_restraint.cross_correlation_coefficient
1 2 'Gaussian mixture model' . 1 20 1 0.400
#
""")
コード例 #7
0
    def test_model_list(self):
        """Test ModelListDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        e = IMP.mmcif.Ensemble(state, "cluster 1")
        e.add_model([h], [], "model1")
        e.add_model([h], [], "model2")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._ModelRepresentationDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_model_list.ordinal_id
_ihm_model_list.model_id
_ihm_model_list.model_group_id
_ihm_model_list.model_name
_ihm_model_list.model_group_name
_ihm_model_list.assembly_id
_ihm_model_list.protocol_id
_ihm_model_list.representation_id
1 1 1 model1 'cluster 1' 1 . 1
2 2 1 model2 'cluster 1' 1 . 1
#
""")
コード例 #8
0
    def test_post_process(self):
        """Test PostProcessDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model_with_protocol(system)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ProtocolDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._PostProcessDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_modeling_post_process.id
_ihm_modeling_post_process.protocol_id
_ihm_modeling_post_process.analysis_id
_ihm_modeling_post_process.step_id
_ihm_modeling_post_process.type
_ihm_modeling_post_process.feature
_ihm_modeling_post_process.num_models_begin
_ihm_modeling_post_process.num_models_end
_ihm_modeling_post_process.struct_assembly_id
_ihm_modeling_post_process.dataset_group_id
_ihm_modeling_post_process.software_id
_ihm_modeling_post_process.script_file_id
1 1 1 1 filter energy/score 500 400 1 . . .
2 2 1 1 cluster RMSD 2000 2000 1 . . .
#
""")
コード例 #9
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_em3d_dumper(self):
        """Test EM3DDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        em_filename = self.get_input_file_name('test.gmm.txt')
        r = MockGaussianEMRestraint(state.model, em_filename)
        r.set_was_used(True)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [r], "model1")
        # Assign dataset ID (=2 since the gmm is derived from an MRC)
        self._assign_dataset_ids(system)
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._EM3DDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_3dem_restraint.ordinal_id
_ihm_3dem_restraint.dataset_list_id
_ihm_3dem_restraint.fitting_method
_ihm_3dem_restraint.fitting_method_citation_id
_ihm_3dem_restraint.struct_assembly_id
_ihm_3dem_restraint.number_of_gaussians
_ihm_3dem_restraint.model_id
_ihm_3dem_restraint.cross_correlation_coefficient
1 2 'Gaussian mixture model' . 1 20 1 0.400
#
""")
コード例 #10
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_model_list(self):
        """Test ModelListDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system)
        e = IMP.mmcif.Ensemble(state, "cluster 1")
        e.add_model([h], [], "model1")
        e.add_model([h], [], "model2")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._ModelRepresentationDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_model_list.ordinal_id
_ihm_model_list.model_id
_ihm_model_list.model_group_id
_ihm_model_list.model_name
_ihm_model_list.model_group_name
_ihm_model_list.assembly_id
_ihm_model_list.protocol_id
_ihm_model_list.representation_id
1 1 1 model1 'cluster 1' 1 . 1
2 2 1 model2 'cluster 1' 1 . 1
#
""")
コード例 #11
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_post_process(self):
        """Test PostProcessDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model_with_protocol(system)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ProtocolDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._PostProcessDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_modeling_post_process.id
_ihm_modeling_post_process.protocol_id
_ihm_modeling_post_process.analysis_id
_ihm_modeling_post_process.step_id
_ihm_modeling_post_process.type
_ihm_modeling_post_process.feature
_ihm_modeling_post_process.num_models_begin
_ihm_modeling_post_process.num_models_end
_ihm_modeling_post_process.struct_assembly_id
_ihm_modeling_post_process.dataset_group_id
_ihm_modeling_post_process.software_id
_ihm_modeling_post_process.script_file_id
1 1 1 1 filter energy/score 500 400 1 . . .
2 2 1 1 cluster RMSD 2000 2000 1 . . .
#
""")
コード例 #12
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_modeling_protocol(self):
        """Test ProtocolDumper"""
        system = IMP.mmcif.System()
        h, state = self.make_model_with_protocol(system)
        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")

        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system) # Assign assembly IDs

        dumper = ihm.dumper._ProtocolDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_modeling_protocol.ordinal_id
_ihm_modeling_protocol.protocol_id
_ihm_modeling_protocol.step_id
_ihm_modeling_protocol.struct_assembly_id
_ihm_modeling_protocol.dataset_group_id
_ihm_modeling_protocol.struct_assembly_description
_ihm_modeling_protocol.protocol_name
_ihm_modeling_protocol.step_name
_ihm_modeling_protocol.step_method
_ihm_modeling_protocol.num_models_begin
_ihm_modeling_protocol.num_models_end
_ihm_modeling_protocol.multi_scale_flag
_ihm_modeling_protocol.multi_state_flag
_ihm_modeling_protocol.ordered_flag
_ihm_modeling_protocol.software_id
_ihm_modeling_protocol.script_file_id
1 1 1 1 . 'All known components & All components modeled by IMP' . Sampling
'Monte Carlo' 0 500 YES NO NO . .
2 2 1 1 . 'All known components & All components modeled by IMP' . Sampling
'Replica exchange Molecular Dynamics' 400 2000 YES NO NO . .
#
""")
コード例 #13
0
    def test_site_dumper_spheres_only(self):
        """Test SiteDumper, spheres only"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system, [("foo", "A", 'A'),
                                            ("bar", "AA", "B")])
        m = state.model

        # Add coordinates
        chains = IMP.atom.get_by_type(h, IMP.atom.CHAIN_TYPE)
        pres = IMP.atom.Hierarchy.setup_particle(IMP.Particle(m))
        res = IMP.atom.Residue.setup_particle(pres, IMP.atom.ALA, 1)
        xyzr = IMP.core.XYZR.setup_particle(pres)
        xyzr.set_coordinates(IMP.algebra.Vector3D(1, 2, 3))
        xyzr.set_radius(4.2)

        chains[0].add_child(pres)

        pfrag = IMP.atom.Hierarchy.setup_particle(IMP.Particle(m))
        frag = IMP.atom.Fragment.setup_particle(pfrag, [1, 2])
        xyzr = IMP.core.XYZR.setup_particle(pfrag)
        xyzr.set_coordinates(IMP.algebra.Vector3D(4, 5, 6))
        xyzr.set_radius(9.2)
        chains[1].add_child(pfrag)

        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelRepresentationDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(
            out, """#
loop_
_ihm_model_list.ordinal_id
_ihm_model_list.model_id
_ihm_model_list.model_group_id
_ihm_model_list.model_name
_ihm_model_list.model_group_name
_ihm_model_list.assembly_id
_ihm_model_list.protocol_id
_ihm_model_list.representation_id
1 1 1 model1 'cluster 1' 1 . 1
#
#
loop_
_ihm_sphere_obj_site.ordinal_id
_ihm_sphere_obj_site.entity_id
_ihm_sphere_obj_site.seq_id_begin
_ihm_sphere_obj_site.seq_id_end
_ihm_sphere_obj_site.asym_id
_ihm_sphere_obj_site.Cartn_x
_ihm_sphere_obj_site.Cartn_y
_ihm_sphere_obj_site.Cartn_z
_ihm_sphere_obj_site.object_radius
_ihm_sphere_obj_site.rmsf
_ihm_sphere_obj_site.model_id
1 1 1 1 A 1.000 2.000 3.000 4.200 . 1
2 2 1 2 B 4.000 5.000 6.000 9.200 . 1
#
""")
コード例 #14
0
ファイル: test_dumper.py プロジェクト: salilab/imp
    def test_site_dumper_spheres_only(self):
        """Test SiteDumper, spheres only"""
        system = IMP.mmcif.System()
        h, state = self.make_model(system, [("foo", "A", 'A'),
                                            ("bar", "AA", "B")])
        m = state.model

        # Add coordinates
        chains = IMP.atom.get_by_type(h, IMP.atom.CHAIN_TYPE)
        pres = IMP.atom.Hierarchy.setup_particle(IMP.Particle(m))
        res = IMP.atom.Residue.setup_particle(pres, IMP.atom.ALA, 1)
        xyzr = IMP.core.XYZR.setup_particle(pres)
        xyzr.set_coordinates(IMP.algebra.Vector3D(1,2,3))
        xyzr.set_radius(4.2)

        chains[0].add_child(pres)

        pfrag = IMP.atom.Hierarchy.setup_particle(IMP.Particle(m))
        frag = IMP.atom.Fragment.setup_particle(pfrag, [1,2])
        xyzr = IMP.core.XYZR.setup_particle(pfrag)
        xyzr.set_coordinates(IMP.algebra.Vector3D(4,5,6))
        xyzr.set_radius(9.2)
        chains[1].add_child(pfrag)

        IMP.mmcif.Ensemble(state, "cluster 1").add_model([h], [], "model1")
        self._assign_entity_ids(system)
        self._assign_asym_ids(system)
        dumper = ihm.dumper._AssemblyDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelRepresentationDumper()
        dumper.finalize(system.system)
        dumper = ihm.dumper._ModelDumper()
        dumper.finalize(system.system)
        out = _get_dumper_output(dumper, system.system)
        self.assertEqual(out, """#
loop_
_ihm_model_list.ordinal_id
_ihm_model_list.model_id
_ihm_model_list.model_group_id
_ihm_model_list.model_name
_ihm_model_list.model_group_name
_ihm_model_list.assembly_id
_ihm_model_list.protocol_id
_ihm_model_list.representation_id
1 1 1 model1 'cluster 1' 1 . 1
#
#
loop_
_ihm_sphere_obj_site.ordinal_id
_ihm_sphere_obj_site.entity_id
_ihm_sphere_obj_site.seq_id_begin
_ihm_sphere_obj_site.seq_id_end
_ihm_sphere_obj_site.asym_id
_ihm_sphere_obj_site.Cartn_x
_ihm_sphere_obj_site.Cartn_y
_ihm_sphere_obj_site.Cartn_z
_ihm_sphere_obj_site.object_radius
_ihm_sphere_obj_site.rmsf
_ihm_sphere_obj_site.model_id
1 1 1 1 A 1.000 2.000 3.000 4.200 . 1
2 2 1 2 B 4.000 5.000 6.000 9.200 . 1
#
""")