package jalview.datamodel;
import jalview.analysis.AlignSeq;
+import jalview.api.DBRefEntryI;
import jalview.util.StringUtils;
import java.util.ArrayList;
String vamsasId;
+ DBRefEntryI sourceDBRef;
+
DBRefEntry[] dbrefs;
RNA rna;
-
/**
* This annotation is displayed below the alignment but the positions are tied
* to the residues of this sequence
initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(),
seq.getEnd());
description = seq.getDescription();
+ sourceDBRef = seq.getSourceDBRef();
if (seq.getSequenceFeatures() != null)
{
SequenceFeature[] sf = seq.getSequenceFeatures();
}
}
setDatasetSequence(seq.getDatasetSequence());
- if (datasetSequence == null && seq.getDBRef() != null)
+ if (datasetSequence == null && seq.getDBRefs() != null)
{
// only copy DBRefs if we really are a dataset sequence
- DBRefEntry[] dbr = seq.getDBRef();
+ DBRefEntry[] dbr = seq.getDBRefs();
for (int i = 0; i < dbr.length; i++)
{
addDBRef(new DBRefEntry(dbr[i]));
}
}
}
- if (seq.getPDBId() != null)
+ if (seq.getAllPDBEntries() != null)
{
- Vector ids = seq.getPDBId();
- Enumeration e = ids.elements();
- while (e.hasMoreElements())
+ Vector<PDBEntry> ids = seq.getAllPDBEntries();
+ for (PDBEntry pdb : ids)
{
- this.addPDBId(new PDBEntry((PDBEntry) e.nextElement()));
+ this.addPDBId(new PDBEntry(pdb));
}
}
}
* @param v
* DOCUMENT ME!
*/
+ @Override
public void setSequenceFeatures(SequenceFeature[] features)
{
sequenceFeatures = features;
}
+ @Override
public synchronized void addSequenceFeature(SequenceFeature sf)
{
+ // TODO add to dataset sequence instead if there is one?
if (sequenceFeatures == null)
{
sequenceFeatures = new SequenceFeature[0];
sequenceFeatures = temp;
}
+ @Override
public void deleteFeature(SequenceFeature sf)
{
if (sequenceFeatures == null)
*
* @return
*/
+ @Override
public SequenceFeature[] getSequenceFeatures()
{
SequenceFeature[] features = sequenceFeatures;
return features;
}
+ @Override
public void addPDBId(PDBEntry entry)
{
if (pdbIds == null)
* @return DOCUMENT ME!
*/
@Override
- public Vector<PDBEntry> getPDBId()
+ public Vector<PDBEntry> getAllPDBEntries()
{
return pdbIds;
}
*
* @return DOCUMENT ME!
*/
+ @Override
public String getDisplayId(boolean jvsuffix)
{
StringBuffer result = new StringBuffer(name);
* @param name
* DOCUMENT ME!
*/
+ @Override
public void setName(String name)
{
this.name = name;
*
* @return DOCUMENT ME!
*/
+ @Override
public String getName()
{
return this.name;
* @param start
* DOCUMENT ME!
*/
+ @Override
public void setStart(int start)
{
this.start = start;
*
* @return DOCUMENT ME!
*/
+ @Override
public int getStart()
{
return this.start;
* @param end
* DOCUMENT ME!
*/
+ @Override
public void setEnd(int end)
{
this.end = end;
*
* @return DOCUMENT ME!
*/
+ @Override
public int getEnd()
{
return this.end;
*
* @return DOCUMENT ME!
*/
+ @Override
public int getLength()
{
return this.sequence.length;
* @param seq
* DOCUMENT ME!
*/
+ @Override
public void setSequence(String seq)
{
this.sequence = seq.toCharArray();
checkValidRange();
}
+ @Override
public String getSequenceAsString()
{
return new String(sequence);
}
+ @Override
public String getSequenceAsString(int start, int end)
{
return new String(getSequence(start, end));
}
+ @Override
public char[] getSequence()
{
return sequence;
*
* @see jalview.datamodel.SequenceI#getSequence(int, int)
*/
+ @Override
public char[] getSequence(int start, int end)
{
if (start < 0)
*
* @return DOCUMENT ME!
*/
+ @Override
public char getCharAt(int i)
{
if (i < sequence.length)
* @param desc
* DOCUMENT ME!
*/
+ @Override
public void setDescription(String desc)
{
this.description = desc;
*
* @return DOCUMENT ME!
*/
+ @Override
public String getDescription()
{
return this.description;
*
* @see jalview.datamodel.SequenceI#findIndex(int)
*/
+ @Override
public int findIndex(int pos)
{
// returns the alignment position for a residue
* @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no
* residues in SequenceI object
*/
+ @Override
public int[] gapMap()
{
String seq = jalview.analysis.AlignSeq.extractGaps(
{
if (lastj != -1)
{
- map.add(new int[]
- { lastj, j - 1 });
+ map.add(new int[] { lastj, j - 1 });
lastj = -1;
}
}
}
if (lastj != -1)
{
- map.add(new int[]
- { lastj, j - 1 });
+ map.add(new int[] { lastj, j - 1 });
lastj = -1;
}
return map;
}
@Override
- public void setDBRef(DBRefEntry[] dbref)
+ public void setDBRefs(DBRefEntry[] dbref)
{
dbrefs = dbref;
}
@Override
- public DBRefEntry[] getDBRef()
+ public DBRefEntry[] getDBRefs()
{
if (dbrefs == null && datasetSequence != null
&& this != datasetSequence)
{
- return datasetSequence.getDBRef();
+ return datasetSequence.getDBRefs();
}
return dbrefs;
}
@Override
public void addDBRef(DBRefEntry entry)
{
+ // TODO add to dataset sequence instead if there is one?
if (dbrefs == null)
{
dbrefs = new DBRefEntry[0];
@Override
public void setDatasetSequence(SequenceI seq)
{
+ // TODO check for circular reference before setting?
datasetSequence = seq;
}
.toArray(new AlignmentAnnotation[annotation.size()]);
}
-
@Override
public boolean hasAnnotation(AlignmentAnnotation ann)
{
annotation.setSequenceRef(this);
}
+ @Override
public void removeAlignmentAnnotation(AlignmentAnnotation annotation)
{
if (this.annotation != null)
*
* @see jalview.datamodel.SequenceI#createDatasetSequence()
*/
+ @Override
public SequenceI createDatasetSequence()
{
if (datasetSequence == null)
datasetSequence.setDescription(getDescription());
setSequenceFeatures(null);
// move database references onto dataset sequence
- datasetSequence.setDBRef(getDBRef());
- setDBRef(null);
- datasetSequence.setPDBId(getPDBId());
+ datasetSequence.setDBRefs(getDBRefs());
+ setDBRefs(null);
+ datasetSequence.setPDBId(getAllPDBEntries());
setPDBId(null);
datasetSequence.updatePDBIds();
if (annotation != null)
* jalview.datamodel.SequenceI#setAlignmentAnnotation(AlignmmentAnnotation[]
* annotations)
*/
+ @Override
public void setAlignmentAnnotation(AlignmentAnnotation[] annotations)
{
if (annotation != null)
for (int si = 0; si < sfs.length; si++)
{
SequenceFeature sf[] = (mp != null) ? mp.locateFeature(sfs[si])
- : new SequenceFeature[]
- { new SequenceFeature(sfs[si]) };
+ : new SequenceFeature[] { new SequenceFeature(sfs[si]) };
if (sf != null && sf.length > 0)
{
for (int sfi = 0; sfi < sf.length; sfi++)
}
// transfer PDB entries
- if (entry.getPDBId() != null)
+ if (entry.getAllPDBEntries() != null)
{
- Enumeration e = entry.getPDBId().elements();
+ Enumeration e = entry.getAllPDBEntries().elements();
while (e.hasMoreElements())
{
PDBEntry pdb = (PDBEntry) e.nextElement();
}
}
// transfer database references
- DBRefEntry[] entryRefs = entry.getDBRef();
+ DBRefEntry[] entryRefs = entry.getDBRefs();
if (entryRefs != null)
{
for (int r = 0; r < entryRefs.length; r++)
* @return The index (zero-based) on this sequence in the MSA. It returns
* {@code -1} if this information is not available.
*/
+ @Override
public int getIndex()
{
return index;
* position for this sequence. This value is zero-based (zero for
* this first sequence)
*/
+ @Override
public void setIndex(int value)
{
index = value;
}
+ @Override
public void setRNA(RNA r)
{
rna = r;
}
+ @Override
public RNA getRNA()
{
return rna;
return result;
}
+ @Override
public String toString()
{
return getDisplayId(false);
}
+ @Override
+ public PDBEntry getPDBEntry(String pdbIdStr)
+ {
+ if (getDatasetSequence() == null
+ || getDatasetSequence().getAllPDBEntries() == null)
+ {
+ return null;
+ }
+ List<PDBEntry> entries = getDatasetSequence().getAllPDBEntries();
+ for (PDBEntry entry : entries)
+ {
+ if (entry.getId().equalsIgnoreCase(pdbIdStr))
+ {
+ return entry;
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public void setSourceDBRef(DBRefEntryI dbRef)
+ {
+ this.sourceDBRef = dbRef;
+ }
+
+ @Override
+ public DBRefEntryI getSourceDBRef()
+ {
+ return this.sourceDBRef;
+ }
+
}