From 5252923cab6fb1bd4db952c507415f676092d3aa Mon Sep 17 00:00:00 2001
From: Marco Biasini <marco.biasini@unibas.ch>
Date: Sat, 13 Oct 2012 15:31:33 +0200
Subject: [PATCH] added option to disable connecting adjacent residues

---
 modules/conop/src/heuristic.cc  | 3 ++-
 modules/conop/src/processor.hh  | 9 ++++++++-
 modules/conop/src/rule_based.cc | 3 ++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/modules/conop/src/heuristic.cc b/modules/conop/src/heuristic.cc
index 335f14f12..d21c13fd5 100644
--- a/modules/conop/src/heuristic.cc
+++ b/modules/conop/src/heuristic.cc
@@ -70,7 +70,8 @@ void HeuristicProcessor::DoProcess(DiagnosticsPtr diags,
       this->FillResidueProps(residue, compound);
       if (this->GetConnect()) {
         this->ConnectAtomsOfResidue(residue, compound, false);
-        this->ConnectResidues(prev, residue);
+        if (this->GetConnectAminoAcids()) 
+          this->ConnectResidues(prev, residue);
       }
       prev = residue;
       if (!this->GetConnect()) { continue; }
diff --git a/modules/conop/src/processor.hh b/modules/conop/src/processor.hh
index 0bf71a896..29acec191 100644
--- a/modules/conop/src/processor.hh
+++ b/modules/conop/src/processor.hh
@@ -66,7 +66,7 @@ protected:
   mol::AtomHandle LocateAtom(const mol::AtomHandleList&, int ordinal) const;
 public:
   Processor(): check_bond_feasibility_(false),
-    assign_torsions_(false), connect_(true), 
+    assign_torsions_(false), connect_(true), connect_aa_(true),
     zero_occ_treatment_(CONOP_SILENT) {}
   void SetConnect(bool connect) {
     connect_ = connect;
@@ -82,6 +82,12 @@ public:
     return assign_torsions_;
   }
 
+  bool GetConnectAminoAcids() const {
+    return connect_aa_;
+  }
+  void SetConnectAminoAcids(bool c) {
+    connect_aa_ = c;
+  }
   bool GetCheckBondFeasibility() const {
     return check_bond_feasibility_;
   }
@@ -103,6 +109,7 @@ private:
   bool check_bond_feasibility_;
   bool assign_torsions_;
   bool connect_;
+  bool connect_aa_;
   ConopAction zero_occ_treatment_;
 };
 
diff --git a/modules/conop/src/rule_based.cc b/modules/conop/src/rule_based.cc
index 862faffad..65b89988f 100644
--- a/modules/conop/src/rule_based.cc
+++ b/modules/conop/src/rule_based.cc
@@ -73,7 +73,8 @@ void RuleBasedProcessor::DoProcess(DiagnosticsPtr diags,
       if (this->GetConnect()) {
         this->ConnectAtomsOfResidue(residue, compound, 
                                     this->GetStrictHydrogens());
-        this->ConnectResidues(prev, residue);
+        if (this->GetConnectAminoAcids())
+          this->ConnectResidues(prev, residue);
         for (mol::AtomHandleList::iterator k = atoms_to_connect.begin(),
              e3=atoms_to_connect.end(); k!= e3; ++k) {
           this->DistanceBasedConnect(*k);
-- 
GitLab