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;
  }