import jalview.structure.StructureCommand;
import jalview.structure.StructureCommandI;
import jalview.structure.StructureCommandsBase;
+import jalview.structure.StructureCommandsI.AtomSpecType;
import jalview.util.ColorUtils;
/**
StringBuilder sb = new StringBuilder(128);
sb.append("setattr res ").append(attributeName).append(" '")
.append(attributeValue).append("' ");
- sb.append(getAtomSpec(atomSpecModel, false));
+ sb.append(getAtomSpec(atomSpecModel, AtomSpecType.RESIDUE_ONLY));
return new StructureCommand(sb.toString());
}
@Override
public List<StructureCommandI> superposeStructures(AtomSpecModel ref,
- AtomSpecModel spec, boolean isNucleotide)
+ AtomSpecModel spec, AtomSpecType backbone)
{
/*
* Form Chimera match command to match spec to ref
* @see https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/match.html
*/
StringBuilder cmd = new StringBuilder();
- String atomSpecAlphaOnly = getAtomSpec(spec, true);
- String refSpecAlphaOnly = getAtomSpec(ref, true);
+ String atomSpecAlphaOnly = getAtomSpec(spec, backbone);
+ String refSpecAlphaOnly = getAtomSpec(ref, backbone);
cmd.append("match ").append(atomSpecAlphaOnly).append(" ").append(refSpecAlphaOnly);
/*
* show superposed residues as ribbon
*/
- String atomSpec = getAtomSpec(spec, false);
- String refSpec = getAtomSpec(ref, false);
+ String atomSpec = getAtomSpec(spec, AtomSpecType.RESIDUE_ONLY);
+ String refSpec = getAtomSpec(ref, AtomSpecType.RESIDUE_ONLY);
cmd.append("; ribbon ");
cmd.append(atomSpec).append("|").append(refSpec).append("; focus");
* <pre>
*
* @param model
- * @param alphaOnly
+ * @param specType
* @return
* @see https://www.cgl.ucsf.edu/chimera/current/docs/UsersGuide/midas/frameatom_spec.html
*/
@Override
- public String getAtomSpec(AtomSpecModel atomSpec, boolean alphaOnly)
+ public String getAtomSpec(AtomSpecModel atomSpec, AtomSpecType specType)
{
StringBuilder sb = new StringBuilder(128);
boolean firstModel = true;
sb.append("|");
}
firstModel = false;
- appendModel(sb, model, atomSpec, alphaOnly);
+ appendModel(sb, model, atomSpec, specType);
}
return sb.toString();
}
* @param alphaOnly
*/
protected void appendModel(StringBuilder sb, String model,
- AtomSpecModel atomSpec, boolean alphaOnly)
+ AtomSpecModel atomSpec, AtomSpecType specType)
{
sb.append("#").append(model).append(":");
firstPositionForModel = false;
}
}
- if (alphaOnly)
+ if (specType == AtomSpecType.ALPHA)
{
/*
* restrict to alpha carbon, no alternative locations
* (needed to ensuring matching atom counts for superposition)
*/
- // TODO @P instead if RNA - add nucleotide flag to AtomSpecModel?
sb.append("@CA").append(NO_ALTLOCS);
}
+ if (specType == AtomSpecType.PHOSPHATE)
+ {
+ sb.append("@P").append(NO_ALTLOCS);
+ }
}
@Override