public void writeEmptyResults(FastaSequence fasta) throws IOException {
    FileWriter writer = new FileWriter(ouptutFile);

    writer.write(fasta.getIdentifier());
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(fasta.getSequence());
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_LINE);

    writer.flush();

    writer.close();
  }
  private void writeBlastResults(
      Writer writer, BlastResults blastResult, FastaSequence fastaSequence) throws IOException {

    // candidate uniprot
    writer.write(NEW_COLUMN);
    writer.write(blastResult.getAccession());

    // write identity
    writer.write(NEW_COLUMN);
    writer.write(Float.toString(blastResult.getIdentity()));

    // write sequence coverages
    writer.write(NEW_COLUMN);
    writer.write(
        Float.toString(getQueryCoveragePercentFor(blastResult, fastaSequence.getSequence())));
    writer.write(NEW_COLUMN);
    writer.write(Float.toString(getMatchCoveragePercentFor(blastResult)));

    // write start/end
    writer.write(NEW_COLUMN);
    writer.write(Integer.toString(blastResult.getStartQuery()));
    writer.write("-");
    writer.write(Integer.toString(blastResult.getEndQuery()));
    writer.write(NEW_COLUMN);
    writer.write(Integer.toString(blastResult.getStartMatch()));
    writer.write("-");
    writer.write(Integer.toString(blastResult.getEndMatch()));

    // write query sequence
    writer.write(NEW_COLUMN);
    writer.write(fastaSequence.getSequence());
    // write alignment
    writer.write(NEW_COLUMN);
    writer.write(blastResult.getAlignment());
    // write matching sequence
    writer.write(NEW_COLUMN);
    writer.write(blastResult.getSequence());
    writer.write(NEW_LINE);

    writer.flush();
  }
  private void writeEmpytBlastResults(Writer writer, FastaSequence fastaSequence)
      throws IOException {

    // candidate uniprot
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);

    // write identity
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);

    // write sequence coverages
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);

    // write start/end
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);

    // write query sequence
    writer.write(NEW_COLUMN);
    writer.write(fastaSequence.getSequence());
    // write alignment
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    // write matching sequence
    writer.write(NEW_COLUMN);
    writer.write(EMPTY);
    writer.write(NEW_LINE);

    writer.flush();
  }