int maxLength = 0;
/**
- * Sequences to be added to form a new alignment.
+ * Sequences to be added to form a new alignment. TODO: remove vector in this
+ * class
*/
protected Vector<SequenceI> seqs;
/**
* Constructor which parses the data from a file of some specified type.
*
- * @param inFile
- * Filename to read from.
+ * @param dataObject
+ * Filename, URL or Pasted String to read from.
* @param type
- * What type of file to read from (File, URL)
+ * What type of file to read from (File, URL, Pasted String)
*/
- public AlignFile(String inFile, String type) throws IOException
+ public AlignFile(String dataObject, String type) throws IOException
{
- this(true, inFile, type);
+ this(true, dataObject, type);
}
-
+
/**
- * Constructor which (optionally delays) parsing of data from a file of some specified type.
+ * Constructor which (optionally delays) parsing of data from a file of some
+ * specified type.
*
* @param parseImmediately
* if false, need to call 'doParse()' to begin parsing data
- * @param inFile
- * Filename to read from.
+ * @param dataObject
+ * Filename, URL or Pasted String to read from.
* @param type
* What type of file to read from (File, URL)
* @throws IOException
*/
- public AlignFile(boolean parseImmediately, String inFile, String type) throws IOException
+ public AlignFile(boolean parseImmediately, String dataObject, String type)
+ throws IOException
{
- super(inFile, type);
+ super(dataObject, type);
initData();
- if (parseImmediately) {
+ if (parseImmediately)
+ {
doParse();
}
}
+
/**
* Attempt to read from the position where some other parsing process left
* off.
*/
public AlignFile(FileParse source) throws IOException
{
- this(true,source);
+ this(true, source);
}
+
/**
- * Construct a new parser to read from the position where some other parsing process left
+ * Construct a new parser to read from the position where some other parsing
+ * process left
*
* @param parseImmediately
* if false, need to call 'doParse()' to begin parsing data
* @param source
*/
- public AlignFile(boolean parseImmediately, FileParse source) throws IOException
+ public AlignFile(boolean parseImmediately, FileParse source)
+ throws IOException
{
super(source);
initData();
- if (parseImmediately) {
+ if (parseImmediately)
+ {
doParse();
}
}
+
/**
* called if parsing was delayed till after parser was constructed
+ *
* @throws IOException
*/
public void doParse() throws IOException
"Implementation error: Parser called twice for same data.\n"
+ "Need to call initData() again before parsing can be reattempted.");
}
- parseCalled=true;
+ parseCalled = true;
parse();
// sets the index of each sequence in the alignment
for (int i = 0, c = seqs.size(); i < c; i++)
}
}
-
/**
* Return the seqs Vector
*/
* Rna.GetBasePairsFromAlignmentAnnotation(annotations.elementAt(i));
* Rna.HelixMap(pairArray);
*/
- AlignmentAnnotation an = annotations
- .elementAt(i);
+ AlignmentAnnotation an = annotations.elementAt(i);
an.validateRangeAndDisplay();
al.addAnnotation(an);
}
{
if (key == null)
{
- throw new Error(MessageManager.getString("error.implementation_error_cannot_have_null_alignment"));
+ throw new Error(
+ MessageManager
+ .getString("error.implementation_error_cannot_have_null_alignment"));
}
if (value == null)
{
seqs = new Vector<SequenceI>();
annotations = new Vector<AlignmentAnnotation>();
seqGroups = new ArrayList<SequenceGroup>();
- parseCalled=false;
+ parseCalled = false;
}
/**
if (space > -1)
{
seq = new Sequence(id.substring(0, space), "");
- seq.setDescription(id.substring(space + 1));
+ String desc = id.substring(space + 1);
+ seq.setDescription(desc);
+
+ /*
+ * it is tempting to parse Ensembl style gene description e.g.
+ * chromosome:GRCh38:7:140696688:140721955:1 and set the
+ * start position of the sequence, but this causes much confusion
+ * for reverse strand feature locations
+ */
}
else
{
{
newickStrings = new Vector<String[]>();
}
- newickStrings.addElement(new String[]
- { treeName, newickString });
+ newickStrings.addElement(new String[] { treeName, newickString });
}
protected int getTreeCount()