[Dock-fans] bugfix.4
Scott Brozell
sbrozell at scripps.edu
Thu Aug 2 17:35:18 PDT 2007
Hi,
Improved error reporting for conformation writing in parallel dock.
For the report of this bug see
http://blur.compbio.ucsf.edu/pipermail/dock-fans/2007-June/001076.html
********>Bugfix 4:
Author: Scott Brozell and Terry Lang, reported by Grzegorz Popowicz
Date: July 27, 2007
Program: dock6.mpi
Description: parallel dock should emit an error message when
num_primary_scored_conformers_rescored > 1,
num_secondary_scored_conformers_written > 1,
or
num_scored_conformers_written > 1
otherwise performance can be substantially degraded.
Fix: make the following changes to the files src/dock/src/dock/orient.cpp
-------------------------------------------------------------------------
*** library_file.cpp 15 Dec 2006 01:34:39 -0000 1.13.2.8
--- library_file.cpp 27 Jul 2007 21:50:26 -0000
***************
*** 603,609 ****
exit(0);
}
if (num_scored_poses > 1) {
! write_conformers = true;
cluster_ranked_poses =
(parm.query_param("cluster_primary_conformations", "yes", "yes no") ==
"yes") ? true : false;
--- 603,617 ----
exit(0);
}
if (num_scored_poses > 1) {
! if ( ! USE_MPI )
! write_conformers = true;
! else {
! cout <<
! "ERROR: DOCK cannot write conformations while running in parallel."
! << endl;
! finalize_mpi();
! exit(0);
! }
cluster_ranked_poses =
(parm.query_param("cluster_primary_conformations", "yes", "yes no") ==
"yes") ? true : false;
***************
*** 624,631 ****
if(!rank_secondary_ligands) {
num_secondary_scored_poses =
atoi(parm.query_param("num_secondary_scored_conformers_written", "1").c_str());
! if(num_secondary_scored_poses > 1)
! write_secondary_conformers = true;
if(num_secondary_scored_poses > num_scored_poses){
cout << "ERROR: Number of secondary poses written cannot exceed number of primary ";
cout << "poses rescored. Program will terminate." << endl;
--- 632,648 ----
if(!rank_secondary_ligands) {
num_secondary_scored_poses =
atoi(parm.query_param("num_secondary_scored_conformers_written", "1").c_str());
! if(num_secondary_scored_poses > 1) {
! if ( ! USE_MPI )
! write_secondary_conformers = true;
! else {
! cout <<
! "ERROR: DOCK cannot write conformations while running in parallel."
! << endl;
! finalize_mpi();
! exit(0);
! }
! }
if(num_secondary_scored_poses > num_scored_poses){
cout << "ERROR: Number of secondary poses written cannot exceed number of primary ";
cout << "poses rescored. Program will terminate." << endl;
***************
*** 650,656 ****
exit(0);
}
if (num_scored_poses > 1) {
! write_conformers = true;
cluster_ranked_poses =
(parm.query_param("cluster_conformations", "yes", "yes no") ==
"yes") ? true : false;
--- 667,681 ----
exit(0);
}
if (num_scored_poses > 1) {
! if ( ! USE_MPI )
! write_conformers = true;
! else {
! cout <<
! "ERROR: DOCK cannot write conformations while running in parallel."
! << endl;
! finalize_mpi();
! exit(0);
! }
cluster_ranked_poses =
(parm.query_param("cluster_conformations", "yes", "yes no") ==
"yes") ? true : false;
--------------------------------------------------------------------------
Workaround: none.
More information about the Dock-fans
mailing list