From 2fd5b4cde4c0cf781595fa1ccd28658e1bea606d Mon Sep 17 00:00:00 2001
From: Stefan Bienert <stefan.bienert@unibas.ch>
Date: Thu, 15 Jul 2021 15:48:06 +0200
Subject: [PATCH] PDBize: do not put chains marked as 'polymer' in the ligand
 chain.

---
 CHANGELOG.txt                 | 4 +++-
 modules/mol/alg/src/pdbize.cc | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index c50db406f..56b2b050f 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -2,7 +2,9 @@ Changes in Release 2.2.x
 --------------------------------------------------------------------------------
 
  * Removed GUI components in containers
- * DSSP 4.0 support in DSSP binding (https://github.com/PDB-REDO/dssp) 
+ * DSSP 4.0 support in DSSP binding (https://github.com/PDB-REDO/dssp)
+ * mol.alg.PDBize does not turn plain polymer chains (not marked peptide or
+   nucleotide) into ligand chains anymore
  * Several minor bug fixes and improvements.
 
 Changes in Release 2.2.0
diff --git a/modules/mol/alg/src/pdbize.cc b/modules/mol/alg/src/pdbize.cc
index c53749ff4..1c3c1c612 100644
--- a/modules/mol/alg/src/pdbize.cc
+++ b/modules/mol/alg/src/pdbize.cc
@@ -88,7 +88,9 @@ void PDBize::Add(EntityView asu, const geom::Mat4List& transforms,
       if ((chain.IsPolypeptide() && chain_length >= peptide_min_size_) ||
           (chain.IsPolynucleotide() && chain_length >= nucleicacid_min_size_) ||
           ((chain.IsOligosaccharide() || chain.IsPolysaccharide()) &&
-           chain_length >= saccharide_min_size_)) {
+           chain_length >= saccharide_min_size_) ||
+          (chain.GetType() == CHAINTYPE_POLY && chain_length >= peptide_min_size_ &&
+          chain_length >= nucleicacid_min_size_)) {
         if (*curr_chain_name_ == 0) {
           throw std::runtime_error("running out of chain names");
         }
-- 
GitLab