import java.util.Arrays;
import java.util.Hashtable;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import com.stevesoft.pat.Regex;
import jalview.analysis.SequenceIdMatcher;
-import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.datamodel.Alignment;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.DBRefEntry;
import jalview.xml.binding.embl.ROOT;
import jalview.xml.binding.embl.XrefType;
-/**
- * Provides XML binding and parsing of EMBL or EMBLCDS records retrieved from
- * (e.g.) {@code https://www.ebi.ac.uk/ena/data/view/x53828&display=xml}.
- *
- * @deprecated endpoint withdrawn August 2020 (JAL-3692), use EmblFlatfileSource
- */
-
public abstract class EmblXmlSource extends EbiFileRetrievedProxy
{
private static final Regex ACCESSION_REGEX = new Regex("^[A-Z]+[0-9]+");
try
{
reply = dbFetch.fetchDataAsFile(
- emprefx.toLowerCase() + ":" + query.trim(), "display=xml",
- "xml");
+ emprefx.toLowerCase(Locale.ROOT) + ":" + query.trim(),
+ "display=xml", "xml");
} catch (Exception e)
{
stopQuery();
throw new Exception(
String.format("EBI EMBL XML retrieval failed for %s:%s",
- emprefx.toLowerCase(), query.trim()),
+ emprefx.toLowerCase(Locale.ROOT), query.trim()),
e);
}
return getEmblSequenceRecords(emprefx, query, reply);
}
else
{
- System.out.println(
+ jalview.bin.Console.outPrintln(
"No record found for '" + emprefx + ":" + query + "'");
}
}
}
} catch (Exception e)
{
- System.err.println("EMBL Record Features parsing error!");
+ jalview.bin.Console.errPrintln("EMBL Record Features parsing error!");
System.err
.println("Please report the following to help@jalview.org :");
- System.err.println("EMBL Record " + accession);
- System.err.println("Resulted in exception: " + e.getMessage());
+ jalview.bin.Console.errPrintln("EMBL Record " + accession);
+ jalview.bin.Console
+ .errPrintln("Resulted in exception: " + e.getMessage());
e.printStackTrace(System.err);
}
codonStart = Integer.parseInt(value.trim());
} catch (NumberFormatException e)
{
- System.err.println("Invalid codon_start in XML for "
+ jalview.bin.Console.errPrintln("Invalid codon_start in XML for "
+ entry.getAccession() + ": " + e.getMessage());
}
}
* workaround until we handle dna location for CDS sequence
* e.g. location="X53828.1:60..1058" correctly
*/
- System.err.println(
+ jalview.bin.Console.errPrintln(
"Implementation Notice: EMBLCDS records not properly supported yet - Making up the CDNA region of this sequence... may be incorrect ("
+ sourceDb + ":" + entry.getAccession() + ")");
int dnaLength = dna.getLength();
if (translationLength * 3 == (1 - codonStart + dnaLength))
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"Not allowing for additional stop codon at end of cDNA fragment... !");
// this might occur for CDS sequences where no features are marked
exons = new int[] { dna.getStart() + (codonStart - 1),
}
if ((translationLength + 1) * 3 == (1 - codonStart + dnaLength))
{
- System.err.println(
+ jalview.bin.Console.errPrintln(
"Allowing for additional stop codon at end of cDNA fragment... will probably cause an error in VAMSAs!");
exons = new int[] { dna.getStart() + (codonStart - 1),
dna.getEnd() - 3 };
else
{
// final product length truncation check
- int [] exons2 = adjustForProteinLength(translationLength,
- exons);
+ int[] exons2 = adjustForProteinLength(translationLength, exons);
dnaToProteinMapping = new Mapping(product, exons2,
new int[]
{ 1, translationLength }, 3, 1);
return listToArray(ranges);
} catch (ParseException e)
{
- Cache.log.warn(
+ Console.warn(
String.format("Not parsing inexact CDS location %s in ENA %s",
location, accession));
return new int[] {};