QUAST 2.3 manual

QUAST stands for QUality ASsesment Tool. The tool evaluates genome assemblies by computing various metrics.

You can find all project news and the latest version of the tool at http://sourceforge.net/projects/quast.

QUAST utilizes MUMmer, GeneMark.hmm, MetaGeneMark, GlimmerHMM and GAGE. These tools are built in, so you do not need to install them separately.

Version 2.3 of QUAST was released under GPL v2 (see LICENSE for details) on 17 January 2014.

Contents

  1. Installation
  2. Running QUAST
    1. For impatient people
    2. Input data
    3. GAGE mode
    4. Command line options
    5. Metagenomic assemblies
  3. QUAST output
    1. Metrics description
      1. Summary report
      2. Misassemblies report
      3. Unaligned report
    2. Plots descriptions
  4. Adjusting QUAST reports and plots
  5. Citation
  6. Feedback and bug reports
  7. FAQ

1. Installation

QUAST can be run on Linux or Mac OS.

It requires:

All those tools are usually preinstalled on Linux.
Mac OS, however, initially misses make, g++ and ar, so you will have to install Xcode (or only Command Line Tools for Xcode) to make them available.

It is also highly recommended to install the Matplotlib Python library for drawing plots. We recommend to use Matplotlib version 1.0 or higher. Tested with Matplotlib v.1.3.1.
Installation can be done with Python pip-installer:
    pip install matplotlib
Or with the Easy Install Python module:
    easy_install matplotlib
Or on Ubuntu by typing:
    sudo apt-get install python-matplotlib

To download the QUAST source code tarball and extract it, type:
    wget https://downloads.sourceforge.net/project/quast/quast-2.3.tar.gz
    tar -xzf quast-2.3.tar.gz
    cd quast-2.3

QUAST automatically compiles all its sub-parts when needed (on the first use). Thus, there is no special installation command for QUAST. However, we recommend you to run:

    python quast.py --test (if you plan to use only quast.py)
or
    python metaquast.py --test  (if you plan to use only metaquast.py)
or both. These commands run all QUAST and metaQUAST modules and check correctness of their work on your platform.

Note: you should place quast-2.3 directory in the final destination before the first use (e.g. before run with --test). If you want to move QUAST to some new place after several usages you should use a clean copy of quast-2.3. This limitation is caused by auto-generation of absolute paths in compiled modules of QUAST.

2. Running QUAST

2.1 For impatient people


Running QUAST on test data from the installation tarball (reference genome, gene and operon annotations, and two assemblies of the first 10 kbp of E. coli):
    ./quast.py test_data/contigs_1.fasta \
               test_data/contigs_2.fasta \
               -R test_data/reference.fasta.gz \
               -G test_data/genes.txt \
               -O test_data/operons.txt \
View the summary of the evaluation results with the less utility:
    less quast_results/latest/report.txt

2.2 Input data

The test_data directory contains examples of assembly, reference, gene and operon files.

Sequences
The tool accepts assemblies and references in FASTA format. Files may be compressed with zip, gzip, or bzip2.
Multiple reference chromosomes can be provided as separate sequences in a single FASTA file.
 
Maximum assembly length is 4.29 Gbp.
Maximum length of a reference sequence (e.g. a chromosome) is 536 Mbp. The number of sequences in a reference file is not limited.
 
Those restrictions belongs to Nucmer, a tool that QUAST applies to align contigs to a reference genome. The metrics that do not require alignment are computed in any case.

Genes and operons
One can also specify files with gene and operon positions in the reference. QUAST will count fully and partially aligned regions, and output total values and cumulative plots.
 
The following file formats are suported:

Note that the sequence name has to match a name in the reference file.
 
Coordinates are 1-based, i.e. the first nucleotide in the reference has position 1, not 0. If a start postion less than a corresponding end postion, such gene or operon is on a positive strand, otherwise it is on a negative strand.

2.3 GAGE mode

GAGE is a well-known assessment tool. However, it has limitations:

These issues are solved by QUAST in GAGE mode (run with a --gage option). QUAST filters contigs according to a specified threshold and runs GAGE on every assembly. GAGE statistics (see the GAGE site and the GAGE paper for descriptions) are reported in addition to a standard QUAST report.
 
Note:

2.4 Command line options


QUAST runs from a command line as follows:
    python quast.py [options] <contig_file(s)>
Options:
-o <output_dir>
Output directory. The default value is quast_results/results_<date_time>.
Also, a symlink quast_results/latest is created.

Note: QUAST reuses Nucmer alignments if run repeatedly on the same directory. Thus, you can efficiently reuse already computed results when running QUAST with different parameters, or adding more assemblies to an existing comparison.
-R <path>
Reference genome file. Optional. Many metrics can't be evaluated without a reference. If this is omitted, QUAST will only report the metrics that can be evaluated without a reference.
-G <path> (or --genes <path>)
File with gene positions in reference. See details about the file format in section 2.2.
 
If you do not have gene positions, you can make QUAST predict genes by the --gene-finding option.
-O <path> (or --operons <path>)
File with operon positions in reference. See details about the file format in section 2.2
‑‑min‑contig <int>
Lower threshold for a contig length. Shorter contigs won't be taken into account (except for some metrics, see section 3). The default value is 500.

Advanced options:
-t (or --threads) <int>
Maximum number of threads. The default value is the number of CPUs. If QUAST fails to determine the number of CPUs, the number is set to 4.
--labels (or -l) <label,label...>
Human-readable assembly names. Those names will be used in reports, plots and logs. For example:
-l SPAdes,IDBA-UD
If your labels include spaces, use quotes:
-l SPAdes,"Assembly 2",Assembly3
-l "SPAdes 2.5, SPAdes 2.4, IDBA-UD"
-L
Take assembly names from their parent directory names.
--gene-finding
Enables gene finding. Affects perfomance, thus disabled by default.
 
By default, we asume that the genome is prokaryotic, and apply GeneMark.hmm for gene finding. If the genome is eukaryotic, add the --eukaryte option to enable GlimmerHMM instead. If it is a metagenome, add the --meta option.
 
If a gene file is provided by -G as well, both # genes in the file covered by the assembly, and # predicted genes are reported. Note that operons are not predicted, but a file of known operon positions can be provided instead.
--gene-thresholds <int,int,...>
Comma-separated list of thresholds for gene lengths to find with a finding tool. The default value is 0,300,1500,3000. Note: this list is used only if --gene-finding option is specified.
--eukaryote
Genome is eukarytic. Affects gene finding and contig alignment:
  1. For prokaryotes (which is default), GeneMark.hmm is used. For eukaryotes, GlimmerHMM is used.
  2. By default, QUAST assumes that a genome is circular and correctly processes its linear representation. This options indicates that the genome is not circular.
--meta
Use MetaGeneMark for gene finding, if the --gene-finding option is specified. If the --eukaryote option is also provided, MetaGeneMark still will be used.
 
Note: if you have multiple references, use metaquast.py instead (it is in the same directory as quast.py).
--est-ref-size <int>
Estimated reference size (in bases) for computing NGx statistics. This value will be used only if a reference genome file is not specified (see --R option).
--gage
Starts QUAST in "GAGE mode" (see section 2.3). Note: in this case, you also have to set the -R option.
--contig-thresholds <int,int,...>
Comma-separated list of contig length thresholds. Used in # contigs ≥ x and total length (≥ x) metrics (see section 3). The default value is 0,1000.
--scaffolds
The assemblies are scaffolds (rather than contigs). QUAST will add split versions of assemblies to the comparison. Assemblies are split by continuous fragments of N's of length ≥ 10.
--use-all-alignments
Compute genome fraction, # genes, # operons metrics in the manner used in QUAST v.1.*. By default, QUAST v.2.0 and higher filters out ambiguous and redundant alignments, keeping only one alignment per contig (or one set of non-overlapping or slightly overlapping alignments). This option makes QUAST count all alignments.
--ambiguity-usage <none|one|all>
Way of processing equally good alignments (probably repeats):
noneskip all such alignments;
onetake only one (the first one);
alluse all alignements. Can cause a significant increase of # mismatches (repeats are almost always inexact due to accumulated SNPs, indels, etc.).
The default value is 'one'.
--strict-NA
Break contigs at every misassembly event (including local ones) to compute NAx and NGAx statistics. By default, QUAST breaks contigs only at extensive misassemblies (not local ones).
--no-plots
Do not draw plots. This will speed up computation but you will get only text reports as a result.
--test
Run the tool on a data from the test_data folder and check correctness of the evaluation process. Output is saved in quast_test_output.
-h (or --help)
Print help.

2.5 Metagenomic assemblies

The metaquast.py script accepts multiple references. One can provide several files, a merged FASTA file with multiple sequences, or a combination. The tool partitions all contigs in groups aligned to each reference. Then it runs quast.py several times:

All outputs are in separate directories inside the directory provided by -o (or in quast_results/latest).

Usage:
    python metaquast.py contigs_1 contigs_2 ... -R reference_1,reference_2,reference_3,...
All options are the same as for quast.py, except for -R: it can accept multiple references.

3. QUAST output

If an output path was not specified manually, QUAST puts its output into the directory quast_results/result_<DATE> and creates a symlink latest to it inside the directory quast_results/.

QUAST output contains:
report.txt an assessment summary in a simple text format,
report.tsv a tab-separated version of the summary, suitable for spreadsheets (Google Docs, Excel, etc),
report.tex a LaTeX version of the summary,
alignment.svg a contig alignment plot (file is created if the matplotlib python library is installed),
report.pdf all other plots combined with all tables (file is created if the matplotlib python library is installed),
report.html an HTML version of the report with interactive plots inside it,
contigs_reports/
misassemblies_report a detailed report on misassemblies. See section 3.1.2 for details,
unaligned_report a detailed report on unaligned and partially unaligned contigs. See section 3.1.3 for details.

Note:

3.1 Metrics description

3.1.1 Summary report

# contigs (≥ x bp) is total number of contigs of length ≥ x bp. Not affected by the ‑‑min‑contig parameter (see section 2.4).

Total length (≥ x bp) is the total number of bases in contigs of length ≥ x bp. Not affected by the ‑‑min‑contig parameter (see section 2.4).

All remaining metrics are computed only the contigs that exceed the threshold specified by specified by the ‑‑min‑contig option (see section 2.4, default is 500).

# contigs is the total number of contigs in the assembly.

Largest contig is the length of the longest contig in the assembly.

Total length is the total number of bases in the assembly.

Reference length is the total number of bases in the reference.

GC (%) is the total number of G and C nucleotides in the assembly, divided by the total length of the assembly.

Reference GC (%) is the percentage of G and C nucleotides in the reference.

N50 is the length for which the collection of all contigs of that length or longer covers at least half an assembly.

NG50 is the length for which the collection of all contigs of that length or longer covers at least half a reference genome.
This metric is computed only if a reference genome is provided.

N75 and NG75 are defined similarly with 75 % instead of 50 %.

L50 (L75, LG50, LG75) is the number of contigs as long as N50 (N75, NG50, NG75)
In other words, L50, for example, is the minimal number of contigs that cover half the assembly.

# misassemblies is the number of positions in the contigs that satisfy one of the following criteria:

This metric requires a reference genome.

# misassembled contigs is the number of contigs that contain misassembly events.

Misassembled contigs length is the total number of bases in misassembled contigs.

# local misassemblies is the number of breakpoints that satisfy the following conditions:

  1. Two or more distinct alignments cover the breakpoint.
  2. The gap between left and right flanking sequences is less than 1 kbp.
  3. The left and right flanking sequences both are on the same strand of the same chromosome of the reference genome.

# unaligned contigs is the number of contigs that have no alignment to the reference sequence. The value "X + Y part" means X totally unaligned contigs plus Y partially unaligned contigs.

Unaligned length is the total length of all unaligned regions in the assembly (sum of lengths of fully unaligned contigs and unaligned parts of partially unaligned ones).

Genome fraction (%) is the percentage of alinged bases in the reference. A base in the reference is aligned if there is at least one contig with at least one alignment to this base. Contigs from repetitive regions may map to multiple places, and thus may be counted multiple times.

Duplication ratio is the total number of aligned bases in the assembly divided by the total number of aligned bases in the reference (see Genome fraction (%) for the 'aligned base' defenition). If the assembly contains many contigs that cover the same regions of the reference, its duplication ratio may be much larger than 1. This may occur due to overestimating repeat multiplicities and due to small overlaps between contigs, among other reasons.

# N's per 100 kbp is the average number of uncalled bases (N's) per 100000 assembly bases.

# mismatches per 100 kbp is the average number of mismatches per 100000 aligned bases. True SNPs and sequencing errors are not distinguished and are counted equally.

# indels per 100 kbp is the average number of indels per 100000 aligned bases. Several consecutive single nucleotide indels are counted as one indel.

# genes is the number of genes in the assembly (complete and partial), based on a user-provided list of gene positions in the reference. A gene 'partially covered' if the assembly contains at least 100 bp of this gene but not the whole one.
 
This metric is computed only if a reference genome and an annotated list of gene positions are provided (see section 2.4).

# operons is defined similarly to # genes, but an operon positions file required instead.

# predicted genes is the number of genes in the assembly found by GeneMark.hmm, GlimmerHMM or MetaGeneMark. See the description of the --gene-finding option for details.

Largest alignment is the length of the largest continuous alignment in the assembly. A value can be smaller than a value of largest contig if the largest contig is misassembled.

NA50, NGA50, NA75, NGA75, LA50, LA75, LGA50, LGA75 ("A" stands for "aligned") are similar to the corresponding metrics without "A", but in this case aligned blocks instead of contigs are considered.
Aligned blocks are obtained by breaking contigs in misassembly events and removing all analigned bases.

3.1.2 Misassemblies report

# misassemblies is the same as # misassemblies from section 3.1.1. However, this report also contains a classification of all misassemblies into three groups: relocations, translocations, and inversions (see below).

Relocation is a misassembly where the left flanking sequence aligns over 1 kbp away from the right flanking sequence on the reference, or they overlap by more than 1 kbp, and both flanking sequences align on the same chromosome.

Translocation is a misassembly where the flanking sequences align on different chromosomes.

Inversion is a misassembly where the flanking sequences align on opposite strands of the same chromosome.

# misassembled contigs and misassembled contigs length are the same as the metrics from section 3.1.1 and are counted among all contigs with any type of a misassembly (relocation, translocation or inversion).

# local misassemblies is the same as # local misassemblies from section 3.1.1.

# mismatches is the number of mismatches in all aligned bases.

# indels is the number of indels in all aligned bases.

# short indels (≤ 5 bp) is the number of indels of length  5 bp.

# long indels (> 5 bp) is the number of indels of length > 5 bp.

Indels length is the total number of bases contained in all indels.

3.1.3 Unaligned report

# fully unaligned contigs is the number of contigs that have no alignment to the reference sequence.

Fully unaligned length is the total number of bases in all unaligned contigs.

# partially unaligned contigs is the number of contigs that are not fully unaligned, but have fragments with no alignment to the reference sequence.

# with misassembly is the number of partially unaligned contigs that have a misassembly in their aligned fragment. Note that such misassemblies are not counted in # misassemblies and other misassemblies statistics.

# both parts are significant is the number of partially unaligned contigs that have both aligned and unaligned fragments longer than the value of --min-contig.

Partially unaligned length is the total number of unaligned bases in all partially unaligned contigs.

# N's is the total number of uncalled bases (N's) in the assembly.

3.2 Plots description

Contig alignment plot shows alignment of contigs to the reference genome and the positions of misassemblies in these contigs. Contigs that align correctly are colored blue if the boundaries agree (within 2 kbp on each side, contigs are larger than 10 kbp) in at least half of the assemblies, and green otherwise. Blocks of misassembled contigs are colored orange if the boundaries agree in at least half of the assemblies, and red otherwise. Contigs are staggered vertically and are shown in different shades of their color in order to distinguish the separate contigs, including small ones. If the reference file consists of several sequences all of them are drawn on the single plot horizontally next to each other.

Cumulative length plot shows the growth of contig lengths. On the x-axis, contigs are ordered from the largest to smallest. The y-axis gives the size of the x largest contigs in the assembly.

Nx plot shows Nx values as x varies from 0 to 100 %.

NGx plot shows NGx values as x varies from 0 to 100 %.

GC content plot shows the distribution of GC content in the contigs.
 
The x value is the GC percentage (0 to 100 %).
The y value is the number of non-overlapping 100 bp windows which GC content equals x %.
 
For a single genome, the distribution is typically Gaussian. However, for assemblies with contaminants, the GC distribution appears to be a superposition of Gaussian distributions, giving a plot with multiple peaks.

Cumulative length plot for aligned contigs shows the growth of lengths of aligned blocks. If a contig has a misassembly, QUAST breaks it into smaller pieces called aligned blocks.
 
On the x-axis, blocks are ordered from the largest to smallest. The y-axis gives the size of the x largest aligned blocks.
This plot is created only if a reference genome is provided.

NAx and NGAx plots
These plots are similar to the Nx and NGx plots but for the NAx and NGAx metrics respectively. These plots are created only if a reference genome is provided.

Genes plot shows the growth rate of full genes in assemblies.
The y-axis is the number of full genes in the assembly, and the x-axis is the number of contigs in the assembly (from the largest one to the smallest one).
This plot could be created only if a reference and genes annotations files are given.

Operons plot is similar to the previous one but for operons.

4. Adjusting QUAST reports and plots

You can easily change content, order of metrics, and metric names in all QUAST reports. For doing this, please edit the CONFIGURABLE PARAMETERS section in libs/reporting.py. It contains a lot of informative comments, which will help you to adjust QUAST reports easily even if you are new to Python.

You can also adjust plot colors, style and width of lines, legeng font, plots output format, etc. Please see the CONFIGURABLE PARAMETERS section in libs/plotter.py.

Note: if you restart QUAST on the same directory with new parameters, is will reuse alignments and run much faster. See the description of the -o option in section 2.4.

5. Citation


If you use QUAST in your research, please include Gurevich et al., 2013 into your reference list:
Alexey Gurevich, Vladislav Saveliev, Nikolay Vyahhi and Glenn Tesler,
QUAST: quality assessment tool for genome assemblies,
Bioinformatics (2013) 29 (8): 1072-1075. doi: 10.1093/bioinformatics/btt086
First published online: February 19, 2013

6. Feedback and bug reports

We will be thankful if you help us make QUAST better by sending your comments, bug reports, and suggestions to quast.support@bioinf.spbau.ru.

We kindly ask you to attach the quast.log file from output directory (or an entire archive of the folder) if you have troubles running QUAST.

Note that if you didn't specify the output directory manually, it is going to be automatically set to quast_results/results_<date_time>, with a symbolic link quast_results/latest to that directory.

7. FAQ

This section contains most popular questions about QUAST output. Read answers for deeper understanding of results generated by the tool.

In several answers there are descriptions of files under <quast_output_dir> directory.
If you use the command-line version of QUAST you specify <quast_output_dir> by -o option or it is "quast_results/latest" by default.
If you use http://quast.bioinf.spbau.ru/ you should download full report by pressing "Download report" button (at top-right corner), decompress result and go to "full_report" subdirectory.


Q1. It seems that QUAST is giving me a differing number of misassemblies and misassembled contigs. Does this imply that QUAST looks for multiple misassemblies within one contig?

Yes, you are right, QUAST looks for multiple misassemblies within one contig. Thus, number of misassemled contigs is always less or equal to number of misassemblies.


Q2. Is there a way to get only misassembled contigs of the assembly?

Yes, there is such way.
QUAST copies all misassembled contigs of "<assembly_name>" assembly into <quast_output_dir>/contigs_reports/<assembly_name>.mis_contigs.fa file.
E.g. if your assembly is "contigs.fasta" then the file is "contigs.mis_contigs.fa", if your assembly is "ecoli_assembly_1.fasta" then the file is "ecoli_assembly_1.mis_contigs.fa".


Q3. Is it possible to find which misassembly corresponds to each contig and which kind of a misassembly it is?

Yes, it is possible.
You should open <quast_output_dir>/contigs_reports/contigs_report_<assembly_name>.stdout> file.
E.g. if your assembly is "contigs.fasta" then the file is "contigs_report_contigs.stdout", if your assembly is "ecoli_assembly_1.fasta" then the file is "contigs_report_ecoli_assembly_1.stdout".

After that, you should look for "Extensive misassembly" in the file and look around to detect contig name which corresponds this misassembly.

Let's look at the following example:

CONTIG: NODE_772 (575bp)
Top Length: 296  Top ID: 100.0
    Skipping redundant alignment 1096745 1096882 | 138 1 | 138 138 | 98.55 | Escherichia_coli NODE_772
    This contig is misassembled. 3 total aligns.
        Real Alignment 1: 924846 925134 | 287 575 | 289 289 | 100.0 | Escherichia_coli NODE_772
            Extensive misassembly ( inversion ) between these two alignments
        Real Alignment 2: 924906 925201 | 296 1 | 296 296 | 100.0 | Escherichia_coli NODE_772
In this example, we can see that contig name is NODE_772, its length is 575 bp. This contig has two alignments and one misassembly. Inversion is a type of the misassembly. QUAST also reports relocations and translocations, see section 3.1.2 for details.

Let's look at another example:
CONTIG: Contig_753 (140518bp)
Top Length: 121089  Top ID: 99.98
    Skipping redundant alignments after choosing the best set of alignments
    Skipping redundant alignment 273398 273468 | 18977 18907 | 71 71 | 100.0 | Escherichia_coli Contig_753
    ....
    Skipping redundant alignment 3363797 3363867 | 18977 18907 | 71 71 | 100.0 | Escherichia_coli Contig_753
    This contig is misassembled. 14 total aligns.
        Real Alignment 1: 1425621 1426074 | 19431 18978 | 454 454 | 100.0 | Escherichia_coli Contig_753
            Gap between these two alignments (local misassembly). Inconsistency = 148
        Real Alignment 2: 1426295 1426818 | 18905 18382 | 524 524 | 100.0 | Escherichia_coli Contig_753
            Extensive misassembly ( relocation, inconsistency = 2224055 ) between these two alignments
        Real Alignment 3: 3650278 3650348 | 18977 18907 | 71 71 | 100.0 | Escherichia_coli Contig_753
            Extensive misassembly ( relocation, inconsistency = 236807 ) between these two alignments
        Real Alignment 4: 3765544 3886652 | 140518 19430 | 121109 121089 | 99.98 | Escherichia_coli Contig_753
            Extensive misassembly ( relocation, inconsistency = -1052 ) between these two alignments
        Real Alignment 5: 3886649 3905037 | 18381 1 | 18389 18381 | 99.96 | Escherichia_coli Contig_753
This contig is Contigs_753 of length 140518 bp. It has 3 extensive misassemblies (all three are relocations) and one local misassembly.


Q4. Could you explain the format of Real Alignments in contigs report files (see the answer for Q3)?

Yes, sure. Let's look at the following example:

    Real Alignment 1: 19796 20513 | 29511 30228 | 718 718 | 100.0 | ENA|U00096|U00096.2_Escherichia_coli contig-710
The first two numbers are position on the target, and the second two are position on the query. Note that positions on the target are always ascending while positions on the query can be ascending (positive strand) and descending (negative one).

The next two numbers (in this case: 718 718) mean "the number of aligned bases on the target" and "the number of aligned bases on the query". They are usually equal to each other but they can be slightly different because of short insertions and deletions. Actually, these numbers are excessive because they can be easily calculated based on the first two pairs of numbers (positions on the target and positions on the query). However, sometimes it is convenient to look at these numbers.

The last number (in this case: 100.0) is the Nucmer aligner quality metric. It is called "identity %" (IDY %) and it describes the quality of the alignment (the number of mismatches and indels between the target and the query). If IDY% = 100.0 then the alignment is perfect, i.e. all bases on the target and on the query are equal to each other. If IDY% is less than 100.0 then the target and the query are slightly different. Quast has a threshold on IDY% which is 95%. Thus we don't use alignments with IDY% less than 95% (they are relatively bad).

And finally, the last two columns are the name of the target sequence (i.e. reference name) and the name of the query (i.e. contig name).


Q5. Where does QUAST save information about SNPs?

There are two output files concerning SNPs. Both of them are saved in <quast_output_dir>/contigs_reports/nucmer_output/ directory.
The first one has extension ".all_snps" and it is raw Nucmer aligner output. Its format is:

     [P1]  [SUB] [SUB]  [P2]  [BUFF] [DIST] [R] [Q] [FRM] [TAGS]
     15383   T     G   3339560 1     15383   3   2    1     -1    Escherichia_coli contig_15
Where: P1 is position on the reference, SUB is nucleotide in the reference, SUB is nucleotide in the contig, P2 is position on the contig, BUFF is the distance from this SNP to the nearest mismatch (end of alignment, indel, SNP, etc) in the same alignment, while the [DIST] column specifies the distance from this SNP to the nearest sequence end.
R and Q specify the number of other alignments which overlap this position (in Reference and Query (i.e. contig) respectively). FRM and TAGS are not documented in Nucmer help message, and the last two columns are reference name and contig name.

The second file ("*.used_snps") is generated by QUAST.
We analyse all alignments and filter them by skiping some "uninformative" alignments (redundant, duplicated) and after that include in ".used_snps" file only those of all SNPs which were actually appear in filtered alignments. Thus, reported by QUAST numbers of "# mismatches per 100 kbp", "# indels per 100 kbp" includes statistics from USED SNPs, not ALL SNPs.
In addition, we use our own format of ".used_snps" file.
  Escherichia_coli  contig_15  728803  C   .  3217983
where the columns are: reference name, contig name, position on the reference, nucleotide in the reference, nucleotide in the contig (in this case it is ".", i.e. an absence of a nucleotide in the contig which means a deletion) and the final column is position on the contig.