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
JAL-3383 minor code tidying and commenting
[jalview.git]
/
src
/
jalview
/
datamodel
/
Alignment.java
diff --git
a/src/jalview/datamodel/Alignment.java
b/src/jalview/datamodel/Alignment.java
index
9475f00
..
26379d3
100755
(executable)
--- a/
src/jalview/datamodel/Alignment.java
+++ b/
src/jalview/datamodel/Alignment.java
@@
-42,16
+42,16
@@
import java.util.Vector;
/**
* Data structure to hold and manipulate a multiple sequence alignment
/**
* Data structure to hold and manipulate a multiple sequence alignment
- */
-/**
- * @author JimP
*
*
+ * @author JimP
*/
public class Alignment implements AlignmentI
{
*/
public class Alignment implements AlignmentI
{
+ private static final SequenceGroup[] NO_GROUPS = new SequenceGroup[0];
+
private Alignment dataset;
private Alignment dataset;
- protected List<SequenceI> sequences;
+ private List<SequenceI> sequences;
protected List<SequenceGroup> groups;
protected List<SequenceGroup> groups;
@@
-59,6
+59,13
@@
public class Alignment implements AlignmentI
private boolean nucleotide = true;
private boolean nucleotide = true;
+ private List<AlignedCodonFrame> codonFrameList;
+
+ /*
+ * persistent object to hold result of findAllGroups(SequenceI)
+ */
+ private List<SequenceGroup> groupsForSequence = new ArrayList<>();
+
public boolean hasRNAStructure = false;
public AlignmentAnnotation[] annotations;
public boolean hasRNAStructure = false;
public AlignmentAnnotation[] annotations;
@@
-69,8
+76,6
@@
public class Alignment implements AlignmentI
public Hashtable alignmentProperties;
public Hashtable alignmentProperties;
- private List<AlignedCodonFrame> codonFrameList;
-
private void initAlignment(SequenceI[] seqs)
{
groups = Collections.synchronizedList(new ArrayList<SequenceGroup>());
private void initAlignment(SequenceI[] seqs)
{
groups = Collections.synchronizedList(new ArrayList<SequenceGroup>());
@@
-125,8
+130,7
@@
public class Alignment implements AlignmentI
/**
* Make a new alignment from an array of SeqCigars
*
/**
* Make a new alignment from an array of SeqCigars
*
- * @param seqs
- * SeqCigar[]
+ * @param alseqs
*/
public Alignment(SeqCigar[] alseqs)
{
*/
public Alignment(SeqCigar[] alseqs)
{
@@
-195,11
+199,13
@@
public class Alignment implements AlignmentI
{
synchronized (sequences)
{
{
synchronized (sequences)
{
+
if (i > -1 && i < sequences.size())
{
return sequences.get(i);
}
}
if (i > -1 && i < sequences.size())
{
return sequences.get(i);
}
}
+
return null;
}
return null;
}
@@
-406,11
+412,14
@@
public class Alignment implements AlignmentI
@Override
public SequenceGroup[] findAllGroups(SequenceI s)
{
@Override
public SequenceGroup[] findAllGroups(SequenceI s)
{
- ArrayList<SequenceGroup> temp = new ArrayList<>();
-
synchronized (groups)
{
int gSize = groups.size();
synchronized (groups)
{
int gSize = groups.size();
+ if (gSize == 0)
+ {
+ return NO_GROUPS;
+ }
+ groupsForSequence.clear();
for (int i = 0; i < gSize; i++)
{
SequenceGroup sg = groups.get(i);
for (int i = 0; i < gSize; i++)
{
SequenceGroup sg = groups.get(i);
@@
-423,12
+432,12
@@
public class Alignment implements AlignmentI
if (sg.getSequences().contains(s))
{
if (sg.getSequences().contains(s))
{
- temp.add(sg);
+ groupsForSequence.add(sg);
}
}
}
}
}
}
- SequenceGroup[] ret = new SequenceGroup[temp.size()];
- return temp.toArray(ret);
+ SequenceGroup[] ret = new SequenceGroup[groupsForSequence.size()];
+ return groupsForSequence.toArray(ret);
}
/** */
}
/** */
@@
-588,11
+597,12
@@
public class Alignment implements AlignmentI
int i = 0;
SequenceI sq = null;
String sqname = null;
int i = 0;
SequenceI sq = null;
String sqname = null;
+ int nseq = sequences.size();
if (startAfter != null)
{
// try to find the sequence in the alignment
boolean matched = false;
if (startAfter != null)
{
// try to find the sequence in the alignment
boolean matched = false;
- while (i < sequences.size())
+ while (i < nseq)
{
if (getSequenceAt(i++) == startAfter)
{
{
if (getSequenceAt(i++) == startAfter)
{
@@
-605,7
+615,7
@@
public class Alignment implements AlignmentI
i = 0;
}
}
i = 0;
}
}
- while (i < sequences.size())
+ while (i < nseq)
{
sq = getSequenceAt(i);
sqname = sq.getName();
{
sq = getSequenceAt(i);
sqname = sq.getName();
@@
-708,18
+718,25
@@
public class Alignment implements AlignmentI
public int getWidth()
{
int maxLength = -1;
public int getWidth()
{
int maxLength = -1;
-
+
for (int i = 0; i < sequences.size(); i++)
{
for (int i = 0; i < sequences.size(); i++)
{
- if (getSequenceAt(i).getLength() > maxLength)
- {
- maxLength = getSequenceAt(i).getLength();
- }
+ maxLength = Math.max(maxLength, getSequenceAt(i).getLength());
}
}
-
return maxLength;
}
return maxLength;
}
+ @Override
+ public int getVisibleWidth()
+ {
+ int w = getWidth();
+ if (hiddenCols != null)
+ {
+ w -= hiddenCols.getSize();
+ }
+ return w;
+ }
+
/**
* DOCUMENT ME!
*
/**
* DOCUMENT ME!
*
@@
-1180,7
+1197,8
@@
public class Alignment implements AlignmentI
int maxLength = -1;
SequenceI current;
int maxLength = -1;
SequenceI current;
- for (int i = 0; i < sequences.size(); i++)
+ int nseq = sequences.size();
+ for (int i = 0; i < nseq; i++)
{
current = getSequenceAt(i);
for (int j = current.getLength(); j > maxLength; j--)
{
current = getSequenceAt(i);
for (int j = current.getLength(); j > maxLength; j--)
@@
-1197,7
+1215,7
@@
public class Alignment implements AlignmentI
maxLength++;
int cLength;
maxLength++;
int cLength;
- for (int i = 0; i < sequences.size(); i++)
+ for (int i = 0; i < nseq; i++)
{
current = getSequenceAt(i);
cLength = current.getLength();
{
current = getSequenceAt(i);
cLength = current.getLength();
@@
-1605,7
+1623,10
@@
public class Alignment implements AlignmentI
AlignmentAnnotation annot = new AlignmentAnnotation(name, name,
new Annotation[1], 0f, 0f, AlignmentAnnotation.BAR_GRAPH);
annot.hasText = false;
AlignmentAnnotation annot = new AlignmentAnnotation(name, name,
new Annotation[1], 0f, 0f, AlignmentAnnotation.BAR_GRAPH);
annot.hasText = false;
- annot.setCalcId(new String(calcId));
+ if (calcId != null)
+ {
+ annot.setCalcId(new String(calcId));
+ }
annot.autoCalculated = autoCalc;
if (seqRef != null)
{
annot.autoCalculated = autoCalc;
if (seqRef != null)
{
@@
-1893,9
+1914,12
@@
public class Alignment implements AlignmentI
}
@Override
}
@Override
- public void setHiddenColumns(HiddenColumns cols)
+ public boolean setHiddenColumns(HiddenColumns cols)
{
{
+ boolean changed = cols == null ? hiddenCols != null
+ : !cols.equals(hiddenCols);
hiddenCols = cols;
hiddenCols = cols;
+ return changed;
}
@Override
}
@Override
@@
-2010,4
+2034,17
@@
public class Alignment implements AlignmentI
}
}
}
}
+ @Override
+ public void resetColors()
+ {
+ for (int i = getHeight(); --i >= 0;)
+ {
+ sequences.get(i).resetColors();
+ }
+ // if (dataset != null)
+ // {
+ // dataset.resetColors();
+ // }
+ }
+
}
}