Output files¶
| Path | Contents |
|---|---|
cmsearch_summary.tsv |
One row per extracted SSU region with coordinates and selected taxonomy. |
cmsearch_summary.tab |
Per-sample unique-contig counts by annotation category. |
blast_top_hits.tsv |
Ranked BLAST evidence with source identifiers, taxonomy metadata, and extracted query sequences. |
tree_nearest_neighbors.tsv |
References ordered by patristic distance from each query. Header only when tree mode is off. |
phylogeny/<sample>/<detected-model>/<query-key>/ |
Per-query reference FASTA, covariance-model alignment, trimmed alignment, IQ-TREE files, assignment, neighbor table, and QC. Written in tree mode. |
extracted/*.fna |
Extracted SSU sequences for each sample/model pair. |
stats/*.hits.tsv |
Parsed covariance-model hit metadata. |
out/*.out |
Raw Infernal cmsearch --tblout output. |
m8/*.m8 |
BLAST tabular output for each sample/model pair. |
m8/*.top_hits.tsv |
Per-model input rows for blast_top_hits.tsv. |
m8/merged.m8 |
Deterministically merged BLAST output. |
run_provenance.json |
Database, manifest, calibration, and runtime-code content IDs, application version, and assignment policy. |
pipeline_info/ |
Nextflow timeline, report, trace, and DAG. |
Detailed taxonomy fields¶
| Column | Contents |
|---|---|
blast_sseqid |
Stable identifier of the top subject from the original detection-marker BLAST search. |
reference_identifiers |
Public source identifier for the selected sequence, prefixed by IMG:, PR2:, or SILVA:. Multiple exact-sequence records are separated by |. |
reference_versions |
Deduplicated reference releases for the selected sequence, prefixed by source. |
centroid_names |
Cluster centroid names associated with that sequence, separated by | when exact-sequence deduplication links more than one centroid. Empty for native SILVA and PR2 records. |
centroid_taxonomy |
Lowest common calibrated SILVA or PR2 taxonomy supported for those centroids before the cluster-member propagation limit is applied. |
centroid_taxonomy_source |
SILVA, PR2, or a joined source value for the centroid taxonomy. |
reference_source |
Source of the selected database sequence: SILVA, PR2, IMG, or an explicit joined value. |
taxonomy |
Supported taxonomy assigned to the extracted query. Unclassified means the evidence does not support a call. |
taxonomy_assignment_method |
Query decision rule, including exact native matches, calibrated calls, ambiguity, or the reason for abstention. |
blast_candidate_taxonomy |
Uncalibrated LCA of eligible near-best BLAST subjects. This is evidence, not the selected query call. |
reference_taxonomy, reference_taxonomy_source, reference_taxonomy_assignment_method |
Preferred taxonomy and method for the selected database subject, separate from the query call. |
blast_query_coverage |
Fraction of the query covered by the selected BLAST interval, from 0 to 1. |
assignment_candidate_count, assignment_unknown_count |
Number of subjects in the assignment set and number without a known lineage. |
assignment_candidates_truncated |
Whether the fetched results can omit subjects inside the assignment score window. |
query_sequence |
Extracted 16S rRNA gene or 18S rRNA gene sequence. |
taxonomy_mode |
blast or tree, identifying which method supplied taxonomy. |
blast_taxonomy, blast_taxonomy_source, blast_taxonomy_domain, blast_compartment, blast_taxonomy_assignment_method, blast_taxonomy_alternatives |
BLAST assignment from the original detection marker, retained independently of tree mode. |
tree_model, tree_marker |
Covariance model and marker selected after searching both marker indexes. |
tree_route_decision, tree_route_16s_votes, tree_route_18s_votes, tree_route_16s_best_bitscore, tree_route_18s_best_bitscore |
Hit counts and best scores used to select the alignment route. |
tree_taxonomy, tree_taxonomy_source, tree_taxonomy_domain, tree_compartment |
Query taxonomy supported by both the selected marker's BLAST call and direct-reference tree evidence. |
tree_assignment_method, tree_basis_neighbors |
Decision rule and number of references used for the neighbor LCA. |
tree_route_blast_taxonomy, tree_route_blast_taxonomy_source, tree_route_blast_taxonomy_domain, tree_route_blast_compartment, tree_route_blast_assignment_method |
Supported BLAST call on the marker selected for the tree. This marker can differ from the original detection route. |
tree_route_blast_candidate_taxonomy |
Uncalibrated candidate LCA on the tree-selected marker. |
tree_taxonomy_alternatives |
Conflicting lineage evidence retained by tree classification. |
tree_nearest_sseqid, tree_nearest_reference_identifiers, tree_nearest_distance |
Closest reference sequence and its patristic distance from the query. |
tree_query_edge_support |
SH-aLRT support on the query's adjacent internal branch when that branch is represented in the rooted output. |
tree_inference_model |
Nucleotide substitution model used by IQ-TREE. |
Reference columns, BLAST scores, and assignment-candidate counts describe the
original detection-marker search. They remain unchanged when tree routing
selects another marker. Use tree_route_blast_* for that route's BLAST decision
and the tree evidence files for its references. A skipped tree can therefore
have taxonomy_mode=blast and a final taxonomy that differs from
blast_taxonomy.
Exact-sequence deduplication can associate one database sequence with more than
one source cluster. centroid_names retains every centroid among the selected
taxonomy assignments; centroid_taxonomy is their lowest common taxonomy.
SILVA centroid names omit the semicolon-delimited lineage from the source
header. PR2 centroid names retain the original public PR2 header label.
Ranked BLAST evidence¶
blast_top_hits.tsv reports the first --top_hits subjects for each extracted
query. It also reports the highest-ranked IMG, PR2, and SILVA subject among the
fetched BLAST candidates when that source occurs below the requested cutoff.
hit_rank is the rank among those candidates. selection_reason distinguishes
overall_top_n, assignment_candidate, equal_best_assignment, best_IMG, best_PR2, and
best_SILVA rows.
Each row joins the stable blast_sseqid to its public source identifier,
reference version, preferred taxonomy, centroid evidence, BLAST statistics, and
the extracted query sequence. The table can contain more than --top_hits rows
per query because all assignment candidates and the best subject from
another reference source are retained. The source-specific supplemental rows do
not change the selected taxonomy in cmsearch_summary.tsv.
An IMG subject without native or calibrated centroid taxonomy remains
Unclassified. SSUextract reports the best PR2 and SILVA evidence as separate
rows instead of assigning a lower-scoring lineage to that IMG subject.
Tree-neighbor evidence¶
tree_nearest_neighbors.tsv contains every reference used in a tree. Rows are
ordered by tree_distance within each query. tree_lineage_basis identifies
the direct preferred taxonomy used for classification. Centroid labels remain
reference evidence. used_for_assignment marks the references included in the
LCA, including explicit ambiguity. Every reference tied by distance at the
configured neighbor boundary is included, so tree_basis_neighbors can exceed
--tree_assignment_neighbors.
Each per-query directory retains references.tsv, references.fna,
cmalign_input.fna, the raw and trimmed covariance-model alignments,
alignment_qc.json, the IQ-TREE report and tree, the assignment and neighbor
tables, and tool_versions.txt. references.tsv links the compact tree leaf
labels to stable database IDs and public source identifiers. The query directory
uses a deterministic q_<hex> key; task.json records the original query name
and the detected and tree-selected models.
If the selected marker has fewer than three reference subjects, SSUextract skips
the tree. It uses that marker route's BLAST decision with
taxonomy_mode=blast, and tree_assignment_method records
tree_skipped_insufficient_references. Other queries in the same run continue.
Counting behavior¶
cmsearch_summary.tsv retains hits after overlapping RF00177 and RF01960
matches on the same strand have competed by Infernal E-value and bit score. In
cmsearch_summary.tab, one contig contributes at most once to each sample-level
annotation category.
Counts use the selected query assignment. A supported tree call can contribute when the original marker's BLAST search has no subject.
Samples without accepted hits remain in cmsearch_summary.tab. Their detailed
summary contains a header and no data rows; per-model hit tables also contain
headers only.
Coordinates and strand¶
Coordinates use 1-based inclusive contig positions. A simple record has one Infernal hit interval. An assembled record spans its joined component intervals, including any gap between them. Reverse-strand records contain the reverse complement of the enclosing interval.
| Column | Contents |
|---|---|
length |
Length of the extracted sequence, including gaps between joined fragments. |
hit_length |
Union length of CM-hit sequence spans. Used by --min_extract_length. Insertions within one CM hit count toward this length. |
model_coverage |
Union length of the component model-coordinate intervals divided by model length (CLEN), from 0 to 1. |
fragment_count |
Number of CM hits in the extraction. |
component_coordinates |
Comma-separated, inclusive component intervals in gene order. |
is_assembled |
True when two or more partial hits form one extraction. |
These fields describe SSU detection. Model coverage includes positions between hit endpoints; it does not count individually aligned model states. These fields do not estimate genome completeness or contamination.
Query identifiers and BLAST columns¶
Emitted query IDs use
sample|model|contig|start-end|strand_<strand>|<sequence_type>. FASTA, hit tables,
summaries, and merged BLAST rows use the same ID. Sample and model identifiers
distinguish identical contig names in separate inputs.
Runtime M8 output has 14 tab-separated columns: the 12 standard BLAST columns,
then qlen and slen. Scripts that require exactly 12 columns must account for
these two length fields. The annotation reader also accepts 12-column files,
but missing subject length cannot support an exact query assignment.