X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FDBRefFetcher.java;h=ebf3a7d3a5b7c73044672f5a7a74b721bf2eb840;hb=72b3f05a1157da32ada5aea139139996dddea219;hp=12b4158dba2969975cc3a98a031c493d53fca778;hpb=865a855a4ca87eadb3e5ff284ed32ed307d9c34b;p=jalview.git diff --git a/src/jalview/ws/DBRefFetcher.java b/src/jalview/ws/DBRefFetcher.java index 12b4158..ebf3a7d 100644 --- a/src/jalview/ws/DBRefFetcher.java +++ b/src/jalview/ws/DBRefFetcher.java @@ -1,19 +1,21 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) * Copyright (C) 2014 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. + * 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 . + * 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.ws; @@ -31,6 +33,7 @@ import jalview.gui.CutAndPasteTransfer; import jalview.gui.Desktop; import jalview.gui.IProgressIndicator; import jalview.gui.OOMWarning; +import jalview.util.MessageManager; import jalview.ws.dbsources.das.api.jalviewSourceI; import jalview.ws.seqfetcher.DbSourceProxy; @@ -77,6 +80,12 @@ public class DBRefFetcher implements Runnable private SequenceI[] alseqs; + /** + * when true - retrieved sequences will be trimmed to cover longest derived + * alignment sequence + */ + private boolean trimDsSeqs = true; + public DBRefFetcher() { } @@ -123,6 +132,9 @@ public class DBRefFetcher implements Runnable this.dataset = ds; // TODO Jalview 2.5 lots of this code should be in the gui package! sfetcher = jalview.gui.SequenceFetcher.getSequenceFetcherSingleton(af); + // set default behaviour for transferring excess sequence data to the + // dataset + trimDsSeqs = Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true); if (sources == null) { // af.featureSettings_actionPerformed(null); @@ -371,7 +383,7 @@ public class DBRefFetcher implements Runnable if (retrieved != null) { transferReferences(sdataset, dbsource.getDbSource(), - retrieved); + retrieved, trimDsSeqs); } } else @@ -450,17 +462,20 @@ public class DBRefFetcher implements Runnable } // all databases have been queries. if (sbuffer.length() > 0) { - output.setText("Your sequences have been verified against known sequence databases. Some of the ids have been\n" - + "altered, most likely the start/end residue will have been updated.\n" - + "Save your alignment to maintain the updated id.\n\n" + output.setText(MessageManager + .getString("label.your_sequences_have_been_verified") + sbuffer.toString()); - Desktop.addInternalFrame(output, "Sequence names updated ", 600, 300); + Desktop.addInternalFrame(output, + MessageManager.getString("label.sequence_names_updated"), + 600, 300); // The above is the dataset, we must now find out the index // of the viewed sequence } - af.setProgressBar("DBRef search completed", startTime); + af.setProgressBar( + MessageManager.getString("label.dbref_search_completed"), + startTime); // promptBeforeBlast(); running = false; @@ -471,11 +486,14 @@ public class DBRefFetcher implements Runnable * Verify local sequences in seqRefs against the retrieved sequence database * records. * + * @param trimDatasetSeqs + * */ void transferReferences(Vector sdataset, String dbSource, - AlignmentI retrievedAl) // File + AlignmentI retrievedAl, boolean trimDatasetSeqs) // File // file) { + System.out.println("trimming ? " + trimDatasetSeqs); if (retrievedAl == null || retrievedAl.getHeight() == 0) { return; @@ -569,6 +587,7 @@ public class DBRefFetcher implements Runnable // mappings are made (but content matches retrieved set) boolean updateRefFrame = sequence.getDBRef() == null || sequence.getDBRef().length == 0; + // TODO: // verify sequence against the entry sequence String nonGapped = AlignSeq.extractGaps("-. ", @@ -649,11 +668,21 @@ public class DBRefFetcher implements Runnable // unknownSequences.remove(sequence); int absEnd = absStart + nonGapped.length(); absStart += 1; + if (!trimDatasetSeqs) + { + // insert full length sequence from record + sequence.setSequence(entry.getSequenceAsString()); + sequence.setStart(entry.getStart()); + } if (updateRefFrame) { // finally, update local sequence reference frame if we're allowed - sequence.setStart(absStart); - sequence.setEnd(absEnd); + if (trimDatasetSeqs) + { + // just fix start/end + sequence.setStart(absStart); + sequence.setEnd(absEnd); + } // search for alignment sequences to update coordinate frame for for (int alsq = 0; alsq < alseqs.length; alsq++) {