<offline_allowed />
</information>
<resources>
- <j2se version="${j2sev}" initial_heap_size="${inih}" max_heap_size="${maxh}" />
+ <j2se version="9+" />
+ <j2se version="7,8" initial-heap-size="${inih}" max-heap-size="${maxh}" />
<jar main="true" href="jalview.jar"/>
<fileset dir="${packageDir}">
<exclude name="jalview.jar" />
</presetdef>
<jnlpf toFile="${jnlpFile}" />
-
+ <!-- add a j2se entry for java 9 -->
+ <replace file="${jnlpFile}" value="j2se version="9+" initial-heap-size="${inih}" max-heap-size="${maxh}" java-vm-args="--add-modules=java.se.ee"">
+ <replacetoken>j2se version="9+"</replacetoken>
+
+ </replace>
</target>
<target name="-dofakejnlpfileassoc" depends="-generatejnlpf" if="nojnlpfileassocs">
<!-- JAL-2549 -->Updated JABAWS client to v2.2
</li>
<li>
+ <!-- JAL-2335 -->Filter non-standard amino acids and nucleotides when submitting to AACon and other MSA Analysis services
+ </li>
+ <li>
<!-- JAL-2316, -->URLs for viewing database
cross-references provided by identifiers.org and the
EMBL-EBI's MIRIAM DB
}
af.viewport.setGlobalColourScheme(cs);
- af.viewport.getResidueShading().setThreshold(
- view.getPidThreshold(), true);
+ af.viewport.getResidueShading().setThreshold(view.getPidThreshold(),
+ view.getIgnoreGapsinConsensus());
af.viewport.getResidueShading().setConsensus(
af.viewport.getSequenceConsensusHash());
af.viewport.setColourAppliesToAllGroups(false);
alignedSeqs = true;
nucleotidesAllowed = false;
proteinAllowed = true;
+ filterNonStandardResidues = true;
gapMap = new boolean[0];
initViewportParams();
}
+ @Override
public String getServiceActionText()
{
return "calculating Amino acid consensus using AACon service";
* current visualization settings.
*/
+ @Override
public void updateResultAnnotation(boolean immediate)
{
if (immediate || !calcMan.isWorking(this) && scoremanager != null)
{
Map<String, TreeSet<Score>> scoremap = scoremanager.asMap();
int alWidth = alignViewport.getAlignment().getWidth();
- ArrayList<AlignmentAnnotation> ourAnnot = new ArrayList<AlignmentAnnotation>();
+ ArrayList<AlignmentAnnotation> ourAnnot = new ArrayList<>();
for (String score : scoremap.keySet())
{
Set<Score> scores = scoremap.get(score);
import jalview.datamodel.SequenceI;
import jalview.gui.AlignFrame;
import jalview.gui.IProgressIndicator;
+import jalview.schemes.ResidueProperties;
import jalview.workers.AlignCalcWorker;
import jalview.ws.jws2.dm.AAConSettings;
import jalview.ws.jws2.dm.JabaWsParamSet;
protected boolean submitGaps = true;
/**
+ * by default, we filter out non-standard residues before submission
+ */
+ protected boolean filterNonStandardResidues = true;
+
+ /**
* Recover any existing parameters for this service
*/
protected void initViewportParams()
public List<Option> getJabaArguments()
{
- List<Option> newargs = new ArrayList<Option>();
+ List<Option> newargs = new ArrayList<>();
if (preset != null && preset instanceof JabaWsParamSet)
{
newargs.addAll(((JabaWsParamSet) preset).getjabaArguments());
inputSeqs = alignment;
}
- List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<compbio.data.sequence.FastaSequence>();
+ List<compbio.data.sequence.FastaSequence> seqs = new ArrayList<>();
int minlen = 10;
int ln = -1;
if (bySequence)
{
- seqNames = new HashMap<String, SequenceI>();
+ seqNames = new HashMap<>();
}
gapMap = new boolean[0];
start = inputSeqs.getStartRes();
end = inputSeqs.getEndRes();
- for (SequenceI sq : ((List<SequenceI>) inputSeqs.getSequences()))
+ for (SequenceI sq : (inputSeqs.getSequences()))
{
if (bySequence ? sq.findPosition(end + 1)
- sq.findPosition(start + 1) > minlen - 1 : sq.getEnd()
}
for (int apos : sq.gapMap())
{
- gapMap[apos] = true; // aligned.
+ char sqc = sq.getCharAt(apos);
+ if (!filterNonStandardResidues
+ || (sq.isProtein() ? ResidueProperties.aaIndex[sqc] < 20
+ : ResidueProperties.nucleotideIndex[sqc] < 5))
+ {
+ gapMap[apos] = true; // aligned and real amino acid residue
+ }
+ ;
}
}
else