X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fext%2Fpymol%2FPymolCommands.java;fp=src%2Fjalview%2Fext%2Fpymol%2FPymolCommands.java;h=ed64c006002f22a161bf2582ea46e6ae8af8dabf;hb=f9062df1303c1ff071075256cf4b7ad7c9db9658;hp=ae91aa581954bec873a4314a28ad3fbfaf0b619e;hpb=7af7ccb2d58a22ffabe1f3129d9f33348efb2534;p=jalview.git diff --git a/src/jalview/ext/pymol/PymolCommands.java b/src/jalview/ext/pymol/PymolCommands.java index ae91aa5..ed64c00 100644 --- a/src/jalview/ext/pymol/PymolCommands.java +++ b/src/jalview/ext/pymol/PymolCommands.java @@ -106,12 +106,13 @@ public class PymolCommands extends StructureCommandsBase @Override public List superposeStructures(AtomSpecModel refAtoms, - AtomSpecModel atomSpec, boolean isNucleotide) + AtomSpecModel atomSpec, AtomSpecType specType) { + // https://pymolwiki.org/index.php/Super List commands = new ArrayList<>(); - String refAtomsAlphaOnly = "("+getAtomSpec(refAtoms, true)+" and (altloc '' or altloc 'a'))"; - String atomSpec2AlphaOnly = "("+getAtomSpec(atomSpec, true)+" and (altloc '' or altloc 'a'))"; + String refAtomsAlphaOnly = "("+getAtomSpec(refAtoms, specType)+" and (altloc '' or altloc 'a'))"; + String atomSpec2AlphaOnly = "("+getAtomSpec(atomSpec, specType)+" and (altloc '' or altloc 'a'))"; // pair_fit mobile -> reference commands.add(new StructureCommand("pair_fit", atomSpec2AlphaOnly, refAtomsAlphaOnly)); @@ -119,8 +120,8 @@ public class PymolCommands extends StructureCommandsBase /* * and show superposed residues as cartoon */ - String refAtomsAll = getAtomSpec(refAtoms, false); - String atomSpec2All = getAtomSpec(atomSpec, false); + String refAtomsAll = getAtomSpec(refAtoms, AtomSpecType.RESIDUE_ONLY); + String atomSpec2All = getAtomSpec(atomSpec, AtomSpecType.RESIDUE_ONLY); commands.add(new StructureCommand("show", "cartoon", refAtomsAll + " " + atomSpec2All)); @@ -154,7 +155,7 @@ public class PymolCommands extends StructureCommandsBase * @see https://pymolwiki.org/index.php/Selection_Macros */ @Override - public String getAtomSpec(AtomSpecModel model, boolean alphaOnly) + public String getAtomSpec(AtomSpecModel model, AtomSpecType specType) { StringBuilder sb = new StringBuilder(64); boolean first = true; @@ -185,10 +186,14 @@ public class PymolCommands extends StructureCommandsBase } } sb.append("/"); - if (alphaOnly) + if (specType == AtomSpecType.ALPHA) { sb.append("CA"); } + if (specType == AtomSpecType.PHOSPHATE) + { + sb.append("P"); + } } } return sb.toString(); @@ -262,7 +267,7 @@ public class PymolCommands extends StructureCommandsBase StringBuilder sb = new StringBuilder(128); sb.append("p.").append(attributeName).append("='") .append(attributeValue).append("'"); - String atomSpec = getAtomSpec(atomSpecModel, false); + String atomSpec = getAtomSpec(atomSpecModel, AtomSpecType.RESIDUE_ONLY); return new StructureCommand("iterate", atomSpec, sb.toString()); }