@Override
public List<StructureCommandI> superposeStructures(AtomSpecModel refAtoms,
- AtomSpecModel atomSpec, boolean isNucleotide)
+ AtomSpecModel atomSpec, AtomSpecType specType)
{
+
// https://pymolwiki.org/index.php/Super
List<StructureCommandI> 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));
+ // crashes when undo is enabled on 2.5.2 (incentive)
+ commands.add(new StructureCommand("undo_disable"));
+ commands.add(new StructureCommand("pair_fit", atomSpec2AlphaOnly,
+ refAtomsAlphaOnly));
+ commands.add(new StructureCommand("undo_enable"));
/*
* 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));
* @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;
}
}
sb.append("/");
- if (alphaOnly)
+ if (specType == AtomSpecType.ALPHA)
{
sb.append("CA");
}
+ if (specType == AtomSpecType.PHOSPHATE)
+ {
+ sb.append("P");
+ }
}
}
return sb.toString();
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());
}