bamsort
Sort BAM files.
This tool can sort the reads within a BAM file in a variety of ways, including by position in the genome (coordinate) or read name (queryname). This enables compatibility with the requirements of different downstream tools.
Five sort modes are supported:
coordinate (Picard-compatible)
coordinate (fgbio-compatible)
queryname (Picard-compatible)
queryname (fgbio-compatible)
template coordinate sort (fgbio-compatible)
Allowed values for --sort-order are as follows:
coordinate [default]
queryname
templatecoordinate
Allowed values for --sort-compatibility are as follows:
picard [default]
fgbio
coordinate and queryname sorting can be done in either picard or fgbio mode. templatecoordinate can only be done in fgbio mode.
See the bamsort Reference section for a detailed listing of all available options.
# This command assumes all the inputs are in the current working directory and all the outputs go to the same place.
docker run --rm --gpus all --volume $(pwd):/workdir --volume $(pwd):/outputdir \
--workdir /workdir \
nvcr.io/nvidia/clara/clara-parabricks:4.5.0-1 \
pbrun bamsort \
--ref /workdir/${REFERENCE_FILE} \
--in-bam /workdir/${INPUT_BAM} \
--out-bam /outputdir/${OUTPUT_BAM} \
--sort-order coordinate
The command below is the Picard counterpart of the Parabricks command above. The output from this command will be identical to the output from the above command.
$ java -Xmx30g -jar picard.jar SortSam \
I=<INPUT_DIR>/${INPUT_BAM} \
O=<OUTPUT_DIR>/${OUTPUT_BAM}
Sort BAM files. There are five modes: Coordinate sort (Picard-compatible), Coordinate sort (fgbio-compatible), queryname sort (Picard-compatible), queryname sort (fgbio-compatible), and template coordinate sort (fgbio- compatible).
Input/Output file options
- --in-bam IN_BAM
-
Path of BAM/CRAM for sorting. This option is required.
Option is required.
- --out-bam OUT_BAM
-
Path of BAM/CRAM file after sorting.
Option is required.
- --ref REF
-
Path to the reference file.
Option is required.
Pipeline Options:
- --sort-order SORT_ORDER
-
Type of sort to be done. Possible values are {coordinate,queryname,templatecoordinate}. (default: coordinate)
- --sort-compatibility SORT_COMPATIBILITY
-
Sort comparator compatibility to be used for compatibility with other tools. Possible values are {picard,fgbio}. TemplateCoordinate will only use fgbio. (default: picard)
Performance Options:
- --num-zip-threads NUM_ZIP_THREADS
-
Number of CPUs to use for zipping BAM files in a run (default 16 for coordinate sorts and 10 otherwise).
- --num-sort-threads NUM_SORT_THREADS
-
Number of CPUs to use for sorting in a run (default 10 for coordinate sorts and 16 otherwise).
- --max-records-in-ram MAX_RECORDS_IN_RAM
-
Maximum number of records in RAM when using a queryname or template coordinate sort mode; lowering this number will decrease maximum memory usage. (default: 65000000)
- --mem-limit MEM_LIMIT
-
Memory limit in GBs during sorting and postsorting. By default, the limit is half of the total system memory. (default: 62)
- --gpuwrite
-
Use one GPU to accelerate writing final BAM/CRAM.
- --gpuwrite-deflate-algo GPUWRITE_DEFLATE_ALGO
-
Choose the nvCOMP DEFLATE algorithm to use with --gpuwrite. Note these options do not correspond to CPU DEFLATE options. Valid options are 1, 2, and 4. Option 1 is fastest, while options 2 and 4 have progressively lower throughput but higher compression ratios. The default value is 1 when the user does not provide an input (i.e., None).
- --gpusort
-
Use GPUs to accelerate sorting and marking.
Common options:
- --logfile LOGFILE
-
Path to the log file. If not specified, messages will only be written to the standard error output.
- --tmp-dir TMP_DIR
-
Full path to the directory where temporary files will be stored.
- --with-petagene-dir WITH_PETAGENE_DIR
-
Full path to the PetaGene installation directory. By default, this should have been installed at /opt/petagene. Use of this option also requires that the PetaLink library has been preloaded by setting the LD_PRELOAD environment variable. Optionally set the PETASUITE_REFPATH and PGCLOUD_CREDPATH environment variables that are used for data and credentials.
- --keep-tmp
-
Do not delete the directory storing temporary files after completion.
- --no-seccomp-override
-
Do not override seccomp options for docker.
- --version
-
View compatible software versions.