X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2Fgff%2FExonerateHelper.java;h=77b641a787c8492a304643c24489c14e6162b964;hb=b19880049cdb11882e68c75d7960465be4aa8665;hp=f7805fdd4a2cba9abc2f4ed42264babd63a24fee;hpb=3647c311e9cf5b4645aaadab741dd81731116e56;p=jalview.git diff --git a/src/jalview/io/gff/ExonerateHelper.java b/src/jalview/io/gff/ExonerateHelper.java index f7805fd..77b641a 100644 --- a/src/jalview/io/gff/ExonerateHelper.java +++ b/src/jalview/io/gff/ExonerateHelper.java @@ -1,5 +1,27 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.io.gff; +import java.util.Locale; + import jalview.datamodel.AlignedCodonFrame; import jalview.datamodel.AlignmentI; import jalview.datamodel.MappingType; @@ -64,11 +86,11 @@ public class ExonerateHelper extends Gff2Helper try { - processGffSimilarity(set, seq, gffColumns, - align, newseqs, relaxedIdMatching); + processGffSimilarity(set, seq, gffColumns, align, newseqs, + relaxedIdMatching); } catch (IOException ivfe) { - System.err.println(ivfe); + jalview.bin.Console.errPrintln(ivfe); } /* @@ -98,8 +120,7 @@ public class ExonerateHelper extends Gff2Helper * if true allow fuzzy search for a matching target sequence * @throws IOException */ - protected void processGffSimilarity( - Map> set, + protected void processGffSimilarity(Map> set, SequenceI seq, String[] gff, AlignmentI align, List newseqs, boolean relaxedIdMatching) throws IOException @@ -146,7 +167,8 @@ public class ExonerateHelper extends Gff2Helper SequenceI mapFromSequence = seq; SequenceI mapToSequence = mappedSequence; if ((type == MappingType.NucleotideToPeptide && featureIsOnTarget) - || (type == MappingType.PeptideToNucleotide && !featureIsOnTarget)) + || (type == MappingType.PeptideToNucleotide + && !featureIsOnTarget)) { mapFromSequence = mappedSequence; mapToSequence = seq; @@ -178,7 +200,7 @@ public class ExonerateHelper extends Gff2Helper } else if (!"+".equals(strand)) { - System.err.println("Strand must be specified for alignment"); + jalview.bin.Console.errPrintln("Strand must be specified for alignment"); return; } @@ -217,7 +239,7 @@ public class ExonerateHelper extends Gff2Helper String[] tokens = region.split(" "); if (tokens.length != 3) { - System.err.println("Malformed Align descriptor: " + region); + jalview.bin.Console.errPrintln("Malformed Align descriptor: " + region); return null; } @@ -228,15 +250,17 @@ public class ExonerateHelper extends Gff2Helper int alignFromStart; int alignToStart; int alignCount; - try { + try + { alignFromStart = Integer.parseInt(tokens[0]); alignToStart = Integer.parseInt(tokens[1]); alignCount = Integer.parseInt(tokens[2]); - } catch (NumberFormatException nfe) { - System.err.println(nfe.toString()); + } catch (NumberFormatException nfe) + { + jalview.bin.Console.errPrintln(nfe.toString()); return null; } - + int fromStart; int fromEnd; int toStart; @@ -246,8 +270,8 @@ public class ExonerateHelper extends Gff2Helper { fromStart = alignToStart; toStart = alignFromStart; - toEnd = forwardStrand ? toStart + alignCount - 1 : toStart - - (alignCount - 1); + toEnd = forwardStrand ? toStart + alignCount - 1 + : toStart - (alignCount - 1); int toLength = Math.abs(toEnd - toStart) + 1; int fromLength = toLength * type.getFromRatio() / type.getToRatio(); fromEnd = fromStart + fromLength - 1; @@ -290,10 +314,8 @@ public class ExonerateHelper extends Gff2Helper { result = MappingType.PeptideToNucleotide; } - else if (model.contains(CODING2CODING) - || model.contains(CODING2GENOME) - || model.contains(CDNA2GENOME) - || model.contains(GENOME2GENOME)) + else if (model.contains(CODING2CODING) || model.contains(CODING2GENOME) + || model.contains(CDNA2GENOME) || model.contains(GENOME2GENOME)) { result = MappingType.NucleotideToNucleotide; } @@ -321,26 +343,28 @@ public class ExonerateHelper extends Gff2Helper // e.g. exonerate:protein2genome:local if (model != null) { - String mdl = model.toLowerCase(); + String mdl = model.toLowerCase(Locale.ROOT); if (mdl.contains(PROTEIN2DNA) || mdl.contains(PROTEIN2GENOME) - || mdl.contains(CODING2CODING) - || mdl.contains(CODING2GENOME) - || mdl.contains(CDNA2GENOME) - || mdl.contains(GENOME2GENOME)) + || mdl.contains(CODING2CODING) || mdl.contains(CODING2GENOME) + || mdl.contains(CDNA2GENOME) || mdl.contains(GENOME2GENOME)) { return true; } } - System.err.println("Sorry, I don't handle exonerate model " + model); + jalview.bin.Console.errPrintln("Sorry, I don't handle exonerate model " + model); return false; } + /** + * An override to set feature group to "exonerate" instead of the default GFF + * source value (column 2) + */ @Override protected SequenceFeature buildSequenceFeature(String[] gff, Map> set) { - SequenceFeature sf = super.buildSequenceFeature(gff, set); - sf.setFeatureGroup("exonerate"); + SequenceFeature sf = super.buildSequenceFeature(gff, TYPE_COL, + "exonerate", set); return sf; }