* 'final' variables describe the inputs to the translation, which should not
* be modified.
*/
- final private List<SequenceI> selection;
+ private final List<SequenceI> selection;
- final private String[] seqstring;
+ private final String[] seqstring;
- final private int[] contigs;
+ private final List<int[]> contigs;
- final private char gapChar;
+ private final char gapChar;
- final private AlignmentAnnotation[] annotations;
+ private final AlignmentAnnotation[] annotations;
- final private int dnaWidth;
+ private final int dnaWidth;
- final private AlignmentI dataset;
+ private final AlignmentI dataset;
/*
* Working variables for the translation.
* @param viewport
* @param visibleContigs
*/
- public Dna(AlignViewportI viewport, int[] visibleContigs)
+ public Dna(AlignViewportI viewport, List<int[]> visibleContigs)
{
this.selection = Arrays.asList(viewport.getSequenceSelection());
this.seqstring = viewport.getViewAsString(true);
int s;
int sSize = selection.size();
- List<SequenceI> pepseqs = new ArrayList<SequenceI>();
+ List<SequenceI> pepseqs = new ArrayList<>();
for (s = 0; s < sSize; s++)
{
SequenceI newseq = translateCodingRegion(selection.get(s),
if (dnarefs != null)
{
// intersect with pep
- List<DBRefEntry> mappedrefs = new ArrayList<DBRefEntry>();
+ List<DBRefEntry> mappedrefs = new ArrayList<>();
DBRefEntry[] refs = dna.getDBRefs();
for (int d = 0; d < refs.length; d++)
{
String seqstring, AlignedCodonFrame acf,
List<SequenceI> proteinSeqs)
{
- List<int[]> skip = new ArrayList<int[]>();
+ List<int[]> skip = new ArrayList<>();
int skipint[] = null;
ShiftList vismapping = new ShiftList(); // map from viscontigs to seqstring
// intervals
- int vc;
- int[] scontigs = new int[contigs.length];
+ int vc = 0;
+ int[] scontigs = new int[contigs.size() * 2];
int npos = 0;
- for (vc = 0; vc < contigs.length; vc += 2)
+ int[] lastregion = null;
+ for (int[] region : contigs)
{
- if (vc == 0)
+ if (lastregion == null)
{
- vismapping.addShift(npos, contigs[vc]);
+ vismapping.addShift(npos, region[0]);
}
else
{
// hidden region
- vismapping.addShift(npos, contigs[vc] - contigs[vc - 1] + 1);
+ vismapping.addShift(npos, region[0] - lastregion[1] + 1);
}
- scontigs[vc] = contigs[vc];
- scontigs[vc + 1] = contigs[vc + 1];
+ lastregion = region;
+
+ scontigs[vc] = region[0];
+ scontigs[vc + 1] = region[1];
+ vc++;
}
// allocate a roughly sized buffer for the protein sequence
public AlignmentI reverseCdna(boolean complement)
{
int sSize = selection.size();
- List<SequenceI> reversed = new ArrayList<SequenceI>();
+ List<SequenceI> reversed = new ArrayList<>();
for (int s = 0; s < sSize; s++)
{
SequenceI newseq = reverseSequence(selection.get(s).getName(),