From f85e929819b90f0d4f586ce51e423581a9369e07 Mon Sep 17 00:00:00 2001 From: Tobias Schmidt <tobias.schmidt@unibas.ch> Date: Fri, 1 Jul 2011 15:51:37 +0200 Subject: [PATCH] fixed wrong CHARMM dialect TER field, added test case (BZDNG-277) --- modules/io/src/mol/pdb_writer.cc | 2 +- modules/io/tests/test_io_pdb.cc | 22 +++++++++++++++++++ modules/io/tests/testfiles/pdb/charmm_ter.pdb | 4 ++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 modules/io/tests/testfiles/pdb/charmm_ter.pdb diff --git a/modules/io/src/mol/pdb_writer.cc b/modules/io/src/mol/pdb_writer.cc index 45115e9a7..249aacbb4 100644 --- a/modules/io/src/mol/pdb_writer.cc +++ b/modules/io/src/mol/pdb_writer.cc @@ -254,7 +254,7 @@ public: line_(0, 6)=StringRef("TER ", 6); line_( 6, 5)=fmt::LPaddedInt(counter_); line_(17, 3)=fmt::LPadded(res.GetKey()); - if (!res.GetChain().GetName().empty()) { + if (!res.GetChain().GetName().empty() && !charmm_style_) { line_[21]=res.GetChain().GetName()[0]; } diff --git a/modules/io/tests/test_io_pdb.cc b/modules/io/tests/test_io_pdb.cc index 4c69702bf..c9ba6bfdb 100644 --- a/modules/io/tests/test_io_pdb.cc +++ b/modules/io/tests/test_io_pdb.cc @@ -647,4 +647,26 @@ BOOST_AUTO_TEST_CASE(charmm_longcname) "testfiles/pdb/charmm_longcname-out.pdb")); } +BOOST_AUTO_TEST_CASE(write_charmm_ter) +{ + { + PDBWriter writer(String("testfiles/pdb/charmm_ter-out.pdb"), + IOProfile("CHARMM", true, false, false, + false, false, false)); + + mol::EntityHandle ent=mol::CreateEntity(); + mol::XCSEditor edi=ent.EditXCS(); + mol::ChainHandle ch=edi.InsertChain("A"); + mol::ResidueHandle r=edi.AppendResidue(ch, "ALA"); + mol::AtomHandle a=edi.InsertAtom(r, "N", geom::Vec3(32.0, -128.0, -2.5)); + mol::ResidueHandle r2=edi.AppendResidue(ch, "GLY"); + mol::AtomHandle a2=edi.InsertAtom(r2, "N", geom::Vec3(35.0, -99.0, -10.5)); + conop::Conopology& conop_inst=conop::Conopology::Instance(); + conop_inst.ConnectAll(conop_inst.GetBuilder(), ent); + writer.Write(ent); + } + BOOST_CHECK(compare_files("testfiles/pdb/charmm_ter.pdb", + "testfiles/pdb/charmm_ter-out.pdb")); +} + BOOST_AUTO_TEST_SUITE_END() diff --git a/modules/io/tests/testfiles/pdb/charmm_ter.pdb b/modules/io/tests/testfiles/pdb/charmm_ter.pdb new file mode 100644 index 000000000..5a940ab62 --- /dev/null +++ b/modules/io/tests/testfiles/pdb/charmm_ter.pdb @@ -0,0 +1,4 @@ +ATOM 1 N ALA 1 32.000-128.000 -2.500 1.00 0.00 A N +ATOM 2 N GLY 2 35.000 -99.000 -10.500 1.00 0.00 A N +TER 3 GLY 2 +END -- GitLab