package jalview.structure;
import jalview.api.AlignmentViewPanel;
import jalview.datamodel.SequenceI;
import java.awt.Color;
import java.util.List;
import java.util.Map;
/**
* Methods that generate commands that can be sent to a molecular structure
* viewer program (e.g. Jmol, Chimera, ChimeraX)
*
* @author gmcarstairs
*
*/
public interface StructureCommandsI
{
/**
* Data bean class to simplify parameterisation in superposeStructures
*/
public class SuperposeData
{
public String filename;
public String pdbId;
public String chain = "";
public boolean isRna;
/*
* The pdb residue number (if any) mapped to columns of the alignment
*/
public int[] pdbResNo; // or use SparseIntArray?
public int modelNo;
/**
* Constructor
*
* @param width
* width of alignment (number of columns that may potentially
* participate in superposition)
* @param model
* structure viewer model number
*/
public SuperposeData(int width, int model)
{
pdbResNo = new int[width];
modelNo = model;
}
}
/**
* Returns the command to colour by chain
*
* @return
*/
String colourByChain();
/**
* Returns the command to colour residues using a charge-based scheme:
*
*
Aspartic acid and Glutamic acid (negative charge) red
*
Lysine and Arginine (positive charge) blue
*
Cysteine - yellow
*
all others - white
*
*
* @return
*/
String colourByCharge();
/**
* Returns the command to colour residues with the colours provided in the
* map, one per three letter residue code
*
* @param colours
* @return
*/
String colourByResidues(Map colours);
/**
* Returns the command to set the background colour of the structure viewer
*
* @param col
* @return
*/
String setBackgroundColour(Color col);
/**
* Returns commands to colour mapped residues of structures according to
* Jalview's colouring (including feature colouring if applied). Parameter is
* a map from Color to a model of all residues assigned that colour.
*
* @param colourMap
* @return
*/
String[] colourBySequence(Map