public BlastResult performTBlastn(File pssm, File db) { Runtime rt = Runtime.getRuntime(); BlastResult result = null; try { String db_path = db.getAbsolutePath(); // db_path = db_path.substring(0, db_path.lastIndexOf('.')-1); String commandline = tblastn_exec_path + " -in_pssm " + pssm.getAbsolutePath() + " -db " + db_path + " -outfmt 6"; Process pr = rt.exec(commandline); BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream())); String line = null; double minEvalue = 0.01; while ((line = in.readLine()) != null) { BlastResult r = new BlastResult(); r.parse(line); if (r.getEvalue() < minEvalue) { result = r; minEvalue = r.getEvalue(); } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; }