Manual page from htslib-1.20
released on 15 April 2024


htsfile – identify high-throughput sequencing data files


htsfile [-chHv] FILE...
htsfile --copy [-v] FILE DESTFILE


The htsfile utility attempts to identify what kind of high-throughput sequencing data files the specified files are, and provides minimal viewing capabilities for some kinds of data file.

It can identify sequencing data files such as SAM, BAM, and CRAM; variant calling data files such as VCF and BCF; index files used to index these data files; and compressed versions of many of them.

For each FILE given, htsfile prints a description of the file format determined, using similar keyword conventions to file(1): "text" indicates a textual file that can probably be viewed on a terminal; "data" indicates binary data; "sequence", "variant calling", and "index" indicate different categories of data file. When it can be identified, the name of the particular file format (such as "BAM" or "VCF") is printed at the start of the description.

When used to view file contents as text, htsfile can optionally show only headers or only data records, but has no other filtering capabilities. Use samtools or bcftools if you need more extensive viewing or filtering capabilities.

Alternatively, when --copy is used, htsfile takes exactly two arguments and performs a byte-for-byte copy from FILE to DESTFILE. This is similar to cp(1), but HTSlib's remote file access facilities are available for both source and destination.

The following options are accepted:

-c, --view

Instead of identifying the specified files, display a textual representation of their contents on standard output.

By default, --view refuses to display files in unknown formats. When --verbose is also given, the raw contents of such files are displayed, with non-printable characters shown via C-style "\x" hexadecimal escape sequences.

-C, --copy

Instead of identifying or displaying the specified files, copy the source FILE to the destination DESTFILE. Only --verbose may be used in conjunction with --copy.

-h, --header-only

Display data file headers only. Implies --view.

-H, --no-header

When viewing files, display data records only.

-v, --verbose

Display additional warnings and diagnostic messages. Using --verbose repeatedly further raises the verbosity.


bcftools (1), file(1), samtools (1)