diff --git a/modules/io/pymod/export_pdb_io.cc b/modules/io/pymod/export_pdb_io.cc index 752647f67fd2aa3652c09c1fbee4aa6db8189b40..6aa26d96fba8a4fdd0c3052b22f3e3aa7d04a6e6 100644 --- a/modules/io/pymod/export_pdb_io.cc +++ b/modules/io/pymod/export_pdb_io.cc @@ -98,7 +98,9 @@ void export_pdb_io() def("EntityToPDBStr", pdb_str_b, (arg("entity"), arg("profile")=IOProfile())); - def("PDBStrToEntity", &PDBStringToEntity, (arg("pdb_string"),arg("profile")=IOProfile())); + def("PDBStrToEntity", &PDBStringToEntity, (arg("pdb_string"), + arg("profile")=IOProfile(), + arg("process")=false)); // we need to make sure there are no pending references to Python objects // tied to the IOProfileRegistry singleton. The destructor of diff --git a/modules/io/src/mol/pdb_str.cc b/modules/io/src/mol/pdb_str.cc index 7168dfb16fb3d8d304ae58b747d125668600883e..3884fb268124445bd2eef11ebbb7ad10ce1864a8 100644 --- a/modules/io/src/mol/pdb_str.cc +++ b/modules/io/src/mol/pdb_str.cc @@ -37,11 +37,15 @@ String EntityToPDBString(const mol::EntityView& ent, const IOProfile& profile) { return stream.str(); } -mol::EntityHandle PDBStringToEntity(const String& pdb, const IOProfile& profile) { +mol::EntityHandle PDBStringToEntity(const String& pdb, const IOProfile& profile, + bool process) { std::stringstream stream(pdb); PDBReader reader(stream, profile); mol::EntityHandle ent = mol::CreateEntity(); reader.Import(ent); + if(profile.processor && process) { + profile.processor->Process(ent); + } return ent; } diff --git a/modules/io/src/mol/pdb_str.hh b/modules/io/src/mol/pdb_str.hh index d376dce59dce243ac9783c09d2dad6b9ade24ad8..a2f070850c9f4e0378a7f5220e3a3429ea7791f1 100644 --- a/modules/io/src/mol/pdb_str.hh +++ b/modules/io/src/mol/pdb_str.hh @@ -34,7 +34,8 @@ String DLLEXPORT_OST_IO EntityToPDBString(const mol::EntityView& ent, const IOProfile& profile=IOProfile()); mol::EntityHandle DLLEXPORT_OST_IO -PDBStringToEntity(const String& pdb, const IOProfile& profile=IOProfile()); +PDBStringToEntity(const String& pdb, const IOProfile& profile=IOProfile(), + bool process=false); }}