git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'JAL-1956_featureStyles' into features/JAL-653_JAL-1766_htslib_refseqsupport
[jalview.git]
/
src
/
jalview
/
datamodel
/
Sequence.java
diff --git
a/src/jalview/datamodel/Sequence.java
b/src/jalview/datamodel/Sequence.java
index
19ad30f
..
7b05649
100755
(executable)
--- a/
src/jalview/datamodel/Sequence.java
+++ b/
src/jalview/datamodel/Sequence.java
@@
-21,6
+21,7
@@
package jalview.datamodel;
import jalview.analysis.AlignSeq;
package jalview.datamodel;
import jalview.analysis.AlignSeq;
+import jalview.api.DBRefEntryI;
import jalview.util.StringUtils;
import java.util.ArrayList;
import jalview.util.StringUtils;
import java.util.ArrayList;
@@
-55,11
+56,12
@@
public class Sequence extends ASequence implements SequenceI
String vamsasId;
String vamsasId;
+ DBRefEntryI sourceDBRef;
+
DBRefEntry[] dbrefs;
RNA rna;
DBRefEntry[] dbrefs;
RNA rna;
-
/**
* This annotation is displayed below the alignment but the positions are tied
* to the residues of this sequence
/**
* This annotation is displayed below the alignment but the positions are tied
* to the residues of this sequence
@@
-217,6
+219,7
@@
public class Sequence extends ASequence implements SequenceI
initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(),
seq.getEnd());
description = seq.getDescription();
initSeqAndName(seq.getName(), seq.getSequence(), seq.getStart(),
seq.getEnd());
description = seq.getDescription();
+ sourceDBRef = seq.getSourceDBRef();
if (seq.getSequenceFeatures() != null)
{
SequenceFeature[] sf = seq.getSequenceFeatures();
if (seq.getSequenceFeatures() != null)
{
SequenceFeature[] sf = seq.getSequenceFeatures();
@@
-226,10
+229,10
@@
public class Sequence extends ASequence implements SequenceI
}
}
setDatasetSequence(seq.getDatasetSequence());
}
}
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
{
// 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]));
for (int i = 0; i < dbr.length; i++)
{
addDBRef(new DBRefEntry(dbr[i]));
@@
-262,11
+265,10
@@
public class Sequence extends ASequence implements SequenceI
}
if (seq.getAllPDBEntries() != null)
{
}
if (seq.getAllPDBEntries() != null)
{
- Vector ids = seq.getAllPDBEntries();
- 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));
}
}
}
}
}
}
@@
-277,13
+279,16
@@
public class Sequence extends ASequence implements SequenceI
* @param v
* DOCUMENT ME!
*/
* @param v
* DOCUMENT ME!
*/
+ @Override
public void setSequenceFeatures(SequenceFeature[] features)
{
sequenceFeatures = features;
}
public void setSequenceFeatures(SequenceFeature[] features)
{
sequenceFeatures = features;
}
+ @Override
public synchronized void addSequenceFeature(SequenceFeature sf)
{
public synchronized void addSequenceFeature(SequenceFeature sf)
{
+ // TODO add to dataset sequence instead if there is one?
if (sequenceFeatures == null)
{
sequenceFeatures = new SequenceFeature[0];
if (sequenceFeatures == null)
{
sequenceFeatures = new SequenceFeature[0];
@@
-304,6
+309,7
@@
public class Sequence extends ASequence implements SequenceI
sequenceFeatures = temp;
}
sequenceFeatures = temp;
}
+ @Override
public void deleteFeature(SequenceFeature sf)
{
if (sequenceFeatures == null)
public void deleteFeature(SequenceFeature sf)
{
if (sequenceFeatures == null)
@@
-353,6
+359,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return
*/
*
* @return
*/
+ @Override
public SequenceFeature[] getSequenceFeatures()
{
SequenceFeature[] features = sequenceFeatures;
public SequenceFeature[] getSequenceFeatures()
{
SequenceFeature[] features = sequenceFeatures;
@@
-368,6
+375,7
@@
public class Sequence extends ASequence implements SequenceI
return features;
}
return features;
}
+ @Override
public void addPDBId(PDBEntry entry)
{
if (pdbIds == null)
public void addPDBId(PDBEntry entry)
{
if (pdbIds == null)
@@
-420,6
+428,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public String getDisplayId(boolean jvsuffix)
{
StringBuffer result = new StringBuffer(name);
public String getDisplayId(boolean jvsuffix)
{
StringBuffer result = new StringBuffer(name);
@@
-437,6
+446,7
@@
public class Sequence extends ASequence implements SequenceI
* @param name
* DOCUMENT ME!
*/
* @param name
* DOCUMENT ME!
*/
+ @Override
public void setName(String name)
{
this.name = name;
public void setName(String name)
{
this.name = name;
@@
-448,6
+458,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public String getName()
{
return this.name;
public String getName()
{
return this.name;
@@
-459,6
+470,7
@@
public class Sequence extends ASequence implements SequenceI
* @param start
* DOCUMENT ME!
*/
* @param start
* DOCUMENT ME!
*/
+ @Override
public void setStart(int start)
{
this.start = start;
public void setStart(int start)
{
this.start = start;
@@
-469,6
+481,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public int getStart()
{
return this.start;
public int getStart()
{
return this.start;
@@
-480,6
+493,7
@@
public class Sequence extends ASequence implements SequenceI
* @param end
* DOCUMENT ME!
*/
* @param end
* DOCUMENT ME!
*/
+ @Override
public void setEnd(int end)
{
this.end = end;
public void setEnd(int end)
{
this.end = end;
@@
-490,6
+504,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public int getEnd()
{
return this.end;
public int getEnd()
{
return this.end;
@@
-500,6
+515,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public int getLength()
{
return this.sequence.length;
public int getLength()
{
return this.sequence.length;
@@
-511,22
+527,26
@@
public class Sequence extends ASequence implements SequenceI
* @param seq
* DOCUMENT ME!
*/
* @param seq
* DOCUMENT ME!
*/
+ @Override
public void setSequence(String seq)
{
this.sequence = seq.toCharArray();
checkValidRange();
}
public void setSequence(String seq)
{
this.sequence = seq.toCharArray();
checkValidRange();
}
+ @Override
public String getSequenceAsString()
{
return new String(sequence);
}
public String getSequenceAsString()
{
return new String(sequence);
}
+ @Override
public String getSequenceAsString(int start, int end)
{
return new String(getSequence(start, end));
}
public String getSequenceAsString(int start, int end)
{
return new String(getSequence(start, end));
}
+ @Override
public char[] getSequence()
{
return sequence;
public char[] getSequence()
{
return sequence;
@@
-537,6
+557,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @see jalview.datamodel.SequenceI#getSequence(int, int)
*/
*
* @see jalview.datamodel.SequenceI#getSequence(int, int)
*/
+ @Override
public char[] getSequence(int start, int end)
{
if (start < 0)
public char[] getSequence(int start, int end)
{
if (start < 0)
@@
-597,6
+618,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public char getCharAt(int i)
{
if (i < sequence.length)
public char getCharAt(int i)
{
if (i < sequence.length)
@@
-615,6
+637,7
@@
public class Sequence extends ASequence implements SequenceI
* @param desc
* DOCUMENT ME!
*/
* @param desc
* DOCUMENT ME!
*/
+ @Override
public void setDescription(String desc)
{
this.description = desc;
public void setDescription(String desc)
{
this.description = desc;
@@
-625,6
+648,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @return DOCUMENT ME!
*/
*
* @return DOCUMENT ME!
*/
+ @Override
public String getDescription()
{
return this.description;
public String getDescription()
{
return this.description;
@@
-635,6
+659,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @see jalview.datamodel.SequenceI#findIndex(int)
*/
*
* @see jalview.datamodel.SequenceI#findIndex(int)
*/
+ @Override
public int findIndex(int pos)
{
// returns the alignment position for a residue
public int findIndex(int pos)
{
// returns the alignment position for a residue
@@
-687,6
+712,7
@@
public class Sequence extends ASequence implements SequenceI
* @return int[SequenceI.getEnd()-SequenceI.getStart()+1] or null if no
* residues in SequenceI object
*/
* @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(
public int[] gapMap()
{
String seq = jalview.analysis.AlignSeq.extractGaps(
@@
-748,8
+774,7
@@
public class Sequence extends ASequence implements SequenceI
{
if (lastj != -1)
{
{
if (lastj != -1)
{
- map.add(new int[]
- { lastj, j - 1 });
+ map.add(new int[] { lastj, j - 1 });
lastj = -1;
}
}
lastj = -1;
}
}
@@
-757,8
+782,7
@@
public class Sequence extends ASequence implements SequenceI
}
if (lastj != -1)
{
}
if (lastj != -1)
{
- map.add(new int[]
- { lastj, j - 1 });
+ map.add(new int[] { lastj, j - 1 });
lastj = -1;
}
return map;
lastj = -1;
}
return map;
@@
-888,18
+912,18
@@
public class Sequence extends ASequence implements SequenceI
}
@Override
}
@Override
- public void setDBRef(DBRefEntry[] dbref)
+ public void setDBRefs(DBRefEntry[] dbref)
{
dbrefs = dbref;
}
@Override
{
dbrefs = dbref;
}
@Override
- public DBRefEntry[] getDBRef()
+ public DBRefEntry[] getDBRefs()
{
if (dbrefs == null && datasetSequence != null
&& this != datasetSequence)
{
{
if (dbrefs == null && datasetSequence != null
&& this != datasetSequence)
{
- return datasetSequence.getDBRef();
+ return datasetSequence.getDBRefs();
}
return dbrefs;
}
}
return dbrefs;
}
@@
-907,6
+931,7
@@
public class Sequence extends ASequence implements SequenceI
@Override
public void addDBRef(DBRefEntry entry)
{
@Override
public void addDBRef(DBRefEntry entry)
{
+ // TODO add to dataset sequence instead if there is one?
if (dbrefs == null)
{
dbrefs = new DBRefEntry[0];
if (dbrefs == null)
{
dbrefs = new DBRefEntry[0];
@@
-940,6
+965,7
@@
public class Sequence extends ASequence implements SequenceI
@Override
public void setDatasetSequence(SequenceI seq)
{
@Override
public void setDatasetSequence(SequenceI seq)
{
+ // TODO check for circular reference before setting?
datasetSequence = seq;
}
datasetSequence = seq;
}
@@
-956,7
+982,6
@@
public class Sequence extends ASequence implements SequenceI
.toArray(new AlignmentAnnotation[annotation.size()]);
}
.toArray(new AlignmentAnnotation[annotation.size()]);
}
-
@Override
public boolean hasAnnotation(AlignmentAnnotation ann)
{
@Override
public boolean hasAnnotation(AlignmentAnnotation ann)
{
@@
-977,6
+1002,7
@@
public class Sequence extends ASequence implements SequenceI
annotation.setSequenceRef(this);
}
annotation.setSequenceRef(this);
}
+ @Override
public void removeAlignmentAnnotation(AlignmentAnnotation annotation)
{
if (this.annotation != null)
public void removeAlignmentAnnotation(AlignmentAnnotation annotation)
{
if (this.annotation != null)
@@
-1044,6
+1070,7
@@
public class Sequence extends ASequence implements SequenceI
*
* @see jalview.datamodel.SequenceI#createDatasetSequence()
*/
*
* @see jalview.datamodel.SequenceI#createDatasetSequence()
*/
+ @Override
public SequenceI createDatasetSequence()
{
if (datasetSequence == null)
public SequenceI createDatasetSequence()
{
if (datasetSequence == null)
@@
-1055,8
+1082,8
@@
public class Sequence extends ASequence implements SequenceI
datasetSequence.setDescription(getDescription());
setSequenceFeatures(null);
// move database references onto dataset sequence
datasetSequence.setDescription(getDescription());
setSequenceFeatures(null);
// move database references onto dataset sequence
- datasetSequence.setDBRef(getDBRef());
- setDBRef(null);
+ datasetSequence.setDBRefs(getDBRefs());
+ setDBRefs(null);
datasetSequence.setPDBId(getAllPDBEntries());
setPDBId(null);
datasetSequence.updatePDBIds();
datasetSequence.setPDBId(getAllPDBEntries());
setPDBId(null);
datasetSequence.updatePDBIds();
@@
-1082,6
+1109,7
@@
public class Sequence extends ASequence implements SequenceI
* jalview.datamodel.SequenceI#setAlignmentAnnotation(AlignmmentAnnotation[]
* annotations)
*/
* jalview.datamodel.SequenceI#setAlignmentAnnotation(AlignmmentAnnotation[]
* annotations)
*/
+ @Override
public void setAlignmentAnnotation(AlignmentAnnotation[] annotations)
{
if (annotation != null)
public void setAlignmentAnnotation(AlignmentAnnotation[] annotations)
{
if (annotation != null)
@@
-1208,8
+1236,7
@@
public class Sequence extends ASequence implements SequenceI
for (int si = 0; si < sfs.length; si++)
{
SequenceFeature sf[] = (mp != null) ? mp.locateFeature(sfs[si])
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++)
if (sf != null && sf.length > 0)
{
for (int sfi = 0; sfi < sf.length; sfi++)
@@
-1231,7
+1258,7
@@
public class Sequence extends ASequence implements SequenceI
}
}
// transfer database references
}
}
// transfer database references
- DBRefEntry[] entryRefs = entry.getDBRef();
+ DBRefEntry[] entryRefs = entry.getDBRefs();
if (entryRefs != null)
{
for (int r = 0; r < entryRefs.length; r++)
if (entryRefs != null)
{
for (int r = 0; r < entryRefs.length; r++)
@@
-1255,6
+1282,7
@@
public class Sequence extends ASequence implements SequenceI
* @return The index (zero-based) on this sequence in the MSA. It returns
* {@code -1} if this information is not available.
*/
* @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;
public int getIndex()
{
return index;
@@
-1268,16
+1296,19
@@
public class Sequence extends ASequence implements SequenceI
* position for this sequence. This value is zero-based (zero for
* this first sequence)
*/
* position for this sequence. This value is zero-based (zero for
* this first sequence)
*/
+ @Override
public void setIndex(int value)
{
index = value;
}
public void setIndex(int value)
{
index = value;
}
+ @Override
public void setRNA(RNA r)
{
rna = r;
}
public void setRNA(RNA r)
{
rna = r;
}
+ @Override
public RNA getRNA()
{
return rna;
public RNA getRNA()
{
return rna;
@@
-1302,6
+1333,7
@@
public class Sequence extends ASequence implements SequenceI
return result;
}
return result;
}
+ @Override
public String toString()
{
return getDisplayId(false);
public String toString()
{
return getDisplayId(false);
@@
-1326,4
+1358,16
@@
public class Sequence extends ASequence implements SequenceI
return null;
}
return null;
}
+ @Override
+ public void setSourceDBRef(DBRefEntryI dbRef)
+ {
+ this.sourceDBRef = dbRef;
+ }
+
+ @Override
+ public DBRefEntryI getSourceDBRef()
+ {
+ return this.sourceDBRef;
+ }
+
}
}