Ver código fonte

Issue #638: fixed bug: site coloring issue

cycle20 1 ano atrás
pai
commit
77dc0f6e6e
1 arquivos alterados com 7 adições e 8 exclusões
  1. 7 8
      src/extensions/tmdet/tmdet-color-theme.ts

+ 7 - 8
src/extensions/tmdet/tmdet-color-theme.ts

@@ -113,18 +113,17 @@ export function createResidueListsPerChain(chains: PDBTMChain[], side1: string|n
     chains.forEach((chain: PDBTMChain) => {
         const chainType = chain.additional_chain_annotations.type;
         chainList.push({ chainId: chain.chain_label, type: chainType, residues: [] });
+        let annotationErrorLogged = false;
         chain.residues.forEach((residue) => {
             let siteId = residue.site_data![0].site_id_ref - 1;
             let siteColorId = siteId;
             if (chainType == "beta") {
-                if (side1 == "Periplasm" && siteColorId == SiteIndexes.Side1) {
+                if (side1 == "Periplasm" && siteColorId == SiteIndexes.Side1
+                    || side1 == "Outside" && siteColorId == SiteIndexes.Side2) {
                     siteColorId = SiteIndexes.Periplasm;
-                } else if (side1 == "Outside") {
-                    if (siteColorId == SiteIndexes.Side1) {
-                        siteColorId = SiteIndexes.Side2;
-                    } else if(siteColorId == SiteIndexes.Side2) {
-                        siteColorId = SiteIndexes.Periplasm;
-                    }
+                } else if (!annotationErrorLogged && side1 == "Inside" && siteColorId == SiteIndexes.Side1) {
+                    console.error(`Annotation error: beta chain has inside region ${chain.chain_label}:${residue.pdb_res_label}`);
+                    annotationErrorLogged = true;
                 }
             }
 
@@ -189,7 +188,7 @@ export function updateSiteColors(side1: "Inside"|"Outside"|null): void {
     if (side1 == "Inside") {
         siteColors[SiteIndexes.Side1] = inside;
         siteColors[SiteIndexes.Side2] = outside;
-    } else {
+    } else if (side1 == "Outside") {
         siteColors[SiteIndexes.Side1] = outside;
         siteColors[SiteIndexes.Side2] = inside;
     }