package jalview.datamodel; import jalview.util.MapList; /** * A specialisation of DBRefEntry used to hold the chromosomal coordinates for a * (typically gene) sequence * * * @author gmcarstairs * */ public class GeneLocus extends DBRefEntry implements GeneLociI { /** * Constructor adapts species, assembly, chromosome to DBRefEntry source, * version, accession, respectively, and saves the mapping of sequence to * chromosomal coordinates * * @param speciesId * @param assemblyId * @param chromosomeId * @param mapping */ public GeneLocus(String speciesId, String assemblyId, String chromosomeId, Mapping mapping) { super(speciesId, assemblyId, chromosomeId, mapping); } /** * Constructor * * @param speciesId * @param assemblyId * @param chromosomeId */ public GeneLocus(String speciesId, String assemblyId, String chromosomeId) { this(speciesId, assemblyId, chromosomeId, null); } @Override public boolean equals(Object o) { return o instanceof GeneLocus && super.equals(o); } @Override public MapList getMapping() { return map == null ? null : map.getMap(); } /** * Answers the species identifier e.g. "human", stored as field source of * DBRefEntry */ @Override public String getSpeciesId() { return getSource(); } /** * Answers the genome assembly id e.g. "GRCh38", stored as field * version of DBRefEntry */ @Override public String getAssemblyId() { return getVersion(); } /** * Answers the chromosome identifier e.g. "X", stored as field * accession of DBRefEntry */ @Override public String getChromosomeId() { return getAccessionId(); } }