Skip to content

Track Metadata

TrackNado centers around a Track Design—a table where each row is a track and columns represent metadata (sample name, assay, coloring, etc.).

Positional Metadata

You can provide metadata via a CSV/TSV file using the --metadata flag. This file must include a fn column containing the paths to your track files.

Automated Extraction

You can also extract metadata from file paths using extraction functions. This allows you to encode metadata in your directory structure.

from tracknado import HubBuilder, from_seqnado_path

builder = (
    HubBuilder()
    .add_tracks(["data/sample1.bigWig"])
    .with_metadata_extractor(from_seqnado_path) # Extracts from 'sample1'
)

Extraction Patterns

TrackNado supports several built-in extractors: - from_seqnado_path: Expects a standard bioinformatic directory structure. - from_filename_pattern: Uses regex to pull metadata from names. - from_parent_dirs: Uses the names of parent directories as metadata values. - with_static_metadata: Adds constant key/value metadata (useful as a stub/default layer). - compose_extractors: Chains extractors in order and resolves key collisions with overwrite=True/False.

Stubbing + Layering Metadata

import tracknado as tn

extractor = tn.compose_extractors(
    tn.with_static_metadata(condition="NA", replicate="1"),
    tn.from_filename_pattern(r"(?P<sample>.+?)_(?P<condition>.+?)\."),
    overwrite=False,  # keep defaults when a field is missing
)