From efc6fa73d825eaec415caa9689bb435ca761d448 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Fri, 18 Apr 2014 10:12:40 +0100 Subject: [PATCH] JAL-1466 flag and jalview_properties setting to control retrieval of full length dataset sequence --- resources/lang/Messages.properties | 3 ++- src/jalview/gui/AlignFrame.java | 12 ++++++++++++ src/jalview/ws/DBRefFetcher.java | 13 +++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/resources/lang/Messages.properties b/resources/lang/Messages.properties index 769718a..ce534e1 100644 --- a/resources/lang/Messages.properties +++ b/resources/lang/Messages.properties @@ -724,4 +724,5 @@ label.wswublast_client_credits = To display sequence features an exact Uniprot i label.blasting_for_unidentified_sequence = BLASTing for unidentified sequences label.select_columns_containing = Select columns containing label.select_columns_not_containing = Select columns that do not contain - +option.trim_retrieved_seqs = Trim retrieved sequences +label.trim_retrieved_sequences = When the reference sequence is longer than the sequence that you are working with, only keep the relevant subsequences. diff --git a/src/jalview/gui/AlignFrame.java b/src/jalview/gui/AlignFrame.java index f7e95b7..3f9ebaf 100644 --- a/src/jalview/gui/AlignFrame.java +++ b/src/jalview/gui/AlignFrame.java @@ -118,6 +118,7 @@ import java.util.List; import java.util.Vector; import javax.swing.JButton; +import javax.swing.JCheckBoxMenuItem; import javax.swing.JEditorPane; import javax.swing.JInternalFrame; import javax.swing.JLabel; @@ -5198,6 +5199,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener, rfetch.setToolTipText(MessageManager.getString("label.retrieve_parse_sequence_database_records_alignment_or_selected_sequences")); webService.add(rfetch); + final JCheckBoxMenuItem trimrs = new JCheckBoxMenuItem(MessageManager.getString("option.trim_retrieved_seqs")); + trimrs.setToolTipText(MessageManager.getString("label.trim_retrieved_sequences")); + trimrs.setSelected(Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true)); + trimrs.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) { + trimrs.setSelected(trimrs.isSelected()); + Cache.setProperty("TRIM_FETCHED_DATASET_SEQS", Boolean.valueOf(trimrs.isSelected()).toString()); + }; + }); + rfetch.add(trimrs); JMenuItem fetchr = new JMenuItem(MessageManager.getString("label.standard_databases")); fetchr.setToolTipText(MessageManager.getString("label.fetch_embl_uniprot")); fetchr.addActionListener(new ActionListener() diff --git a/src/jalview/ws/DBRefFetcher.java b/src/jalview/ws/DBRefFetcher.java index 9742bca..a156b2c 100644 --- a/src/jalview/ws/DBRefFetcher.java +++ b/src/jalview/ws/DBRefFetcher.java @@ -78,6 +78,11 @@ 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() { } @@ -124,6 +129,8 @@ 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); @@ -372,7 +379,7 @@ public class DBRefFetcher implements Runnable if (retrieved != null) { transferReferences(sdataset, dbsource.getDbSource(), - retrieved); + retrieved,trimDsSeqs); } } else @@ -469,12 +476,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; -- 1.7.10.2