package jalview.datamodel;
import jalview.util.MapList;
/**
* A specialisation of DBRefEntry used to hold the chromosomal coordinates for a
* (typically gene) sequence
*
* - field
source
is used to hold a species id e.g. human
* - field
version
is used to hold assembly id e.g GRCh38
* - field
accession
is used to hold the chromosome id
* - field
map
is used to hold the mapping from sequence to
* chromosome coordinates
*
*
* @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();
}
}