From c34231bd292522ef878fbcf537e6af440c65fef0 Mon Sep 17 00:00:00 2001
From: Gabriel Studer <gabriel.studer@unibas.ch>
Date: Mon, 20 Apr 2015 14:16:50 +0200
Subject: [PATCH] check, whether cysteins still have some space for bond
 partners when building disulfid bond

---
 modules/mol/mm/src/mm_modeller.cc | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/modules/mol/mm/src/mm_modeller.cc b/modules/mol/mm/src/mm_modeller.cc
index 893e1a270..2cc971483 100644
--- a/modules/mol/mm/src/mm_modeller.cc
+++ b/modules/mol/mm/src/mm_modeller.cc
@@ -13,10 +13,12 @@ void MMModeller::GenerateDisulfidBonds(ost::mol::EntityHandle& handle){
     if(i->GetName() == "CYS" || i->GetName() == "CYX" || i->GetName() == "CYS2" || i->GetName() == "CYM"){
       ost::mol::AtomHandle s = i->FindAtom("SG");
       if(s.IsValid()){
+        if(s.GetBondCount() >= 2) continue;
         ost::mol::AtomHandleList in_reach = handle.FindWithin(s.GetPos(),2.5);
         for(ost::mol::AtomHandleList::iterator j = in_reach.begin();
             j != in_reach.end(); ++j){
           if(j->GetName() == "SG" && j->GetResidue() != *i){
+            if(j->GetBondCount() >= 2) continue;
             if(!ost::mol::BondExists(s,*j)){
               ed.Connect(s,*j);
             }
-- 
GitLab