package jalview.hmmer; import jalview.bin.Cache; import jalview.gui.Preferences; import jalview.util.MessageManager; import jalview.ws.params.ArgumentI; import jalview.ws.params.ParamDatastoreI; import jalview.ws.params.WsParamSetI; import jalview.ws.params.simple.BooleanOption; import jalview.ws.params.simple.IntegerParameter; import jalview.ws.params.simple.LogarithmicParameter; import jalview.ws.params.simple.Option; import jalview.ws.params.simple.StringParameter; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Scanner; public class HMMERParamStore implements ParamDatastoreI { String name; List presets = new ArrayList<>(); public HMMERParamStore(String name) { this.name = name; } @Override public List getPresets() { // TODO Auto-generated method stub return presets; } @Override public WsParamSetI getPreset(String name) { // TODO Auto-generated method stub return null; } @Override public List getServiceParameters() { List args = new ArrayList<>(); if ("hmmsearch".equals(name)) { getHMMSearchParams(args); } if ("hmmalign".equals(name)) { getHMMAlignParams(args); } if ("hmmbuild".equals(name)) { getHMMBuildParams(args); } return args; } private void getHMMSearchParams(List args) { args.add(new IntegerParameter( MessageManager.getString("label.number_of_results"), MessageManager.getString("label.number_of_results_desc"), true, 100, 0, 100000)); String names = Cache.getProperty(Preferences.HMMSEARCH_DBS); if (names != null && !names.isEmpty()) { Collection databases = new ArrayList<>(); databases.add(MessageManager.getString("label.this_alignment")); Scanner nameScanner = new Scanner(names); if (nameScanner.hasNext()) { while (nameScanner.hasNext()) { String next = nameScanner.next(); if (next == "null") { Cache.setProperty(Preferences.HMMSEARCH_DBS, ""); Cache.setProperty(Preferences.HMMSEARCH_DB_PATHS, ""); } else { databases.add(next); } } } nameScanner.close(); args.add(new Option(MessageManager.getString("label.database"), MessageManager.getString("label.database_for_hmmsearch"), true, MessageManager.getString("label.this_alignment"), MessageManager.getString("label.this_alignment"), databases, null)); } args.add(new BooleanOption( MessageManager.getString("label.auto_align_seqs"), MessageManager.getString("label.auto_align_seqs_desc"), false, false, true, null)); args.add(new BooleanOption( MessageManager.getString("label.use_accessions"), MessageManager.getString("label.use_accessions_desc"), false, false, true, null)); args.add(new BooleanOption( MessageManager.getString("label.trim_termini"), MessageManager.getString("label.trim_termini_desc"), false, false, true, null)); args.add(new LogarithmicParameter( MessageManager.getString("label.seq_e_value"), MessageManager.getString("label.seq_e_value_desc"), false, -3d, -37.92977945, 1d, 10d)); /* args.add(new DoubleParameter( MessageManager.getString("label.seq_score"), MessageManager.getString("label.seq_score_desc"), false, 0d, 0d, 10000d)); */ args.add(new LogarithmicParameter( MessageManager.getString("label.dom_e_value_desc"), MessageManager.getString("label.dom_e_value_desc"), false, -3d, -37.92977945, 1d, 10d)); /* args.add(new DoubleParameter( MessageManager.getString("label.dom_score"), MessageManager.getString("label.dom_score_desc"), false, 0d, 0d, 10000d)); */ } private void getHMMAlignParams(List args) { args.add(new BooleanOption( MessageManager.getString("label.trim_termini"), MessageManager.getString( "label.trim_termini = Trim Non-Matching Termini_desc"), false, false, true, null)); } private void getHMMBuildParams(List args) { args.add(new StringParameter(MessageManager.getString("label.hmm_name"), MessageManager.getString("label.hmm_name_desc"), true, "")); args.add(new BooleanOption( MessageManager.getString("label.use_reference"), MessageManager.getString("label.use_reference_desc"), true, true, true, null)); Collection options = new ArrayList<>(); options.add(MessageManager.getString("label.alignment")); options.add(MessageManager.getString("label.groups_and_alignment")); options.add(MessageManager.getString("label.groups")); options.add(MessageManager.getString("label.selected_group")); args.add(new Option(MessageManager.getString("label.hmmbuild_for"), MessageManager.getString("label.hmmbuild_for_desc"), true, MessageManager.getString("label.alignment"), MessageManager.getString("label.alignment"), options, null)); } @Override public boolean presetExists(String name) { // TODO Auto-generated method stub return false; } @Override public void deletePreset(String name) { // TODO Auto-generated method stub } @Override public void storePreset(String presetName, String text, List jobParams) { // TODO Auto-generated method stub } @Override public void updatePreset(String oldName, String presetName, String text, List jobParams) { // TODO Auto-generated method stub } @Override public WsParamSetI parseServiceParameterFile(String name, String description, String[] serviceURL, String parameters) throws IOException { // TODO Auto-generated method stub return null; } @Override public String generateServiceParameterFile(WsParamSetI pset) throws IOException { // TODO Auto-generated method stub return null; } }