Skip to content

Commit

Permalink
revive pileup command (#127)
Browse files Browse the repository at this point in the history
  • Loading branch information
lomereiter committed Apr 11, 2015
1 parent 3198e10 commit 15d4020
Show file tree
Hide file tree
Showing 9 changed files with 674 additions and 139 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,6 @@
[submodule "htslib"]
path = htslib
url = https://github.com/lomereiter/htslib.git
[submodule "lz4"]
path = lz4
url = https://github.com/Cyan4973/lz4
17 changes: 10 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,38 +1,41 @@
D_COMPILER=dmd
D_FLAGS=-IBioD -g#-O -release -inline # -version=serial

HTSLIB_PATH=-Lhtslib
HTSLIB_SUBCMD=$(HTSLIB_PATH) -Wl,-Bstatic -lhts -Wl,-Bdynamic
STATIC_LIB_PATH=-Lhtslib -Llz4/lib
STATIC_LIB_SUBCMD=$(STATIC_LIB_PATH) -Wl,-Bstatic -lhts -llz4 -Wl,-Bdynamic
RDMD_FLAGS=--force --build-only --compiler=$(D_COMPILER) $(D_FLAGS)

# Linux & DMD only - this goal is used because of fast compilation speed, during development
all: htslib-static
all: htslib-static lz4-static
mkdir -p build/
rdmd --force --build-only $(D_FLAGS) -L-Lhtslib -L-l:libhts.a -L-l:libphobos2.a -ofbuild/sambamba main.d

PLATFORM := $(shell uname -s)

ifeq "$(PLATFORM)" "Darwin"
LINK_CMD=gcc -dead_strip -lphobos2-ldc -ldruntime-ldc -lm -lpthread htslib/libhts.a build/sambamba.o -o build/sambamba
LINK_CMD=gcc -dead_strip -lphobos2-ldc -ldruntime-ldc -lm -lpthread htslib/libhts.a lz4/lib/liblz4.a build/sambamba.o -o build/sambamba
else
LINK_CMD=gcc -Wl,--gc-sections -o build/sambamba build/sambamba.o $(HTSLIB_SUBCMD) -l:libphobos2-ldc.a -l:libdruntime-ldc.a -lrt -lpthread -lm
LINK_CMD=gcc -Wl,--gc-sections -o build/sambamba build/sambamba.o $(STATIC_LIB_SUBCMD) -l:libphobos2-ldc.a -l:libdruntime-ldc.a -lrt -lpthread -lm
endif

# This is the main Makefile goal, used for building releases (best performance)
sambamba-ldmd2-64: htslib-static
sambamba-ldmd2-64: htslib-static lz4-static
mkdir -p build/
ldmd2 @sambamba-ldmd-release.rsp
$(LINK_CMD)

# For debugging; GDB & Valgrind are more friendly to executables created using LDC/GDC than DMD
sambamba-ldmd2-debug: htslib-static
sambamba-ldmd2-debug: htslib-static lz4-static
mkdir -p build/
ldmd2 @sambamba-ldmd-debug.rsp
$(LINK_CMD)

htslib-static:
cd htslib && $(MAKE)

lz4-static:
cd lz4/lib && $(MAKE)

# all below link to libhts dynamically for simplicity

sambamba-flagstat:
Expand Down
1 change: 1 addition & 0 deletions lz4
Submodule lz4 added at 160661
9 changes: 8 additions & 1 deletion main.d
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*
This file is part of Sambamba.
Copyright (C) 2012-2014 Artem Tarasov <[email protected]>
Copyright (C) 2012-2015 Artem Tarasov <[email protected]>
Sambamba is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand Down Expand Up @@ -29,6 +29,9 @@ import sambamba.pileup;

import sambamba.utils.common.ldc_gc_workaround;

import utils.strip_bcf_header;
import utils.lz4;

import std.stdio;

void printUsage() {
Expand Down Expand Up @@ -63,6 +66,10 @@ int main(string[] args) {
case "markdup": return markdup_main(_args);
case "depth": return depth_main(_args);
case "mpileup": return pileup_main(_args);

// hidden commands
case "strip_bcf_header": return strip_bcf_header_main(_args);
case "lz4compress": return lz4compress_main();
default:
printUsage();
return 1;
Expand Down
2 changes: 1 addition & 1 deletion sambamba-ldmd-debug.rsp
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"-g" "-c" "-m64" "-noboundscheck" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d" "BioD/bio/core/utils/roundbuf.d" "BioD/bio/bam/md/operation.d" "BioD/bio/sam/utils/fastrecordparser.d" "sambamba/utils/common/ldc_gc_workaround.d" "BioD/bio/bam/read.d" "sambamba/utils/common/filtering.d" "BioD/bio/bam/bai/indexing.d" "BioD/bio/bam/utils/value.d" "BioD/bio/bam/randomaccessmanager.d" "sambamba/utils/common/queryparser.d" "BioD/bio/bam/md/reconstruct.d" "BioD/bio/core/base.d" "BioD/bio/core/utils/zlib.d" "BioD/bio/sam/header.d" "BioD/bio/bam/writer.d" "BioD/bio/core/bgzf/block.d" "BioD/bio/bam/md/core.d" "cram/reader.d" "sambamba/utils/common/overwrite.d" "BioD/bio/core/utils/format.d" "BioD/bio/bam/reader.d" "BioD/bio/core/bgzf/inputstream.d" "BioD/bio/core/sequence.d" "BioD/bio/core/utils/bylinefast.d" "sambamba/index.d" "sambamba/markdup.d" "BioD/bio/bam/referenceinfo.d" "BioD/bio/core/tinymap.d" "cram/reference.d" "BioD/bio/bam/constants.d" "BioD/bio/core/bgzf/outputstream.d" "sambamba/utils/common/intervaltree.d" "BioD/bio/bam/utils/graph.d" "BioD/bio/core/utils/algo.d" "BioD/bio/bam/tagvalue.d" "BioD/bio/sam/reader.d" "BioD/bio/core/utils/outbuffer.d" "sambamba/sort.d" "BioD/bio/bam/validation/samheader.d" "sambamba/flagstat.d" "BioD/bio/bam/pileup.d" "sambamba/pileup.d" "BioD/bio/bam/thirdparty/msgpack.d" "BioD/bio/bam/reference.d" "BioD/bio/core/utils/range.d" "BioD/bio/bam/bai/bin.d" "sambamba/utils/view/alignmentrangeprocessor.d" "sambamba/utils/common/tmpdir.d" "sambamba/slice.d" "BioD/bio/core/bgzf/chunk.d" "BioD/bio/core/bgzf/compress.d" "BioD/bio/bam/region.d" "BioD/bio/core/bgzf/virtualoffset.d" "BioD/bio/core/region.d" "BioD/bio/bam/md/parse.d" "BioD/bio/core/utils/stream.d" "sambamba/utils/common/progressbar.d" "thirdparty/unstablesort.d" "BioD/bio/bam/abstractreader.d" "BioD/bio/core/utils/memoize.d" "sambamba/utils/common/pratt_parser.d" "BioD/bio/core/bgzf/constants.d" "sambamba/merge.d" "sambamba/view.d" "BioD/bio/bam/utils/array.d" "BioD/bio/bam/validation/alignment.d" "cram/writer.d" "cram/slicereader.d" "cram/wrappers.d" "BioD/bio/bam/multireader.d"
"-g" "-c" "-m64" "-noboundscheck" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d" "BioD/bio/core/utils/roundbuf.d" "BioD/bio/bam/md/operation.d" "BioD/bio/sam/utils/fastrecordparser.d" "sambamba/utils/common/ldc_gc_workaround.d" "BioD/bio/bam/read.d" "sambamba/utils/common/filtering.d" "BioD/bio/bam/bai/indexing.d" "BioD/bio/bam/utils/value.d" "BioD/bio/bam/randomaccessmanager.d" "sambamba/utils/common/queryparser.d" "BioD/bio/bam/md/reconstruct.d" "BioD/bio/core/base.d" "BioD/bio/core/utils/zlib.d" "BioD/bio/sam/header.d" "BioD/bio/bam/writer.d" "BioD/bio/core/bgzf/block.d" "BioD/bio/bam/md/core.d" "cram/reader.d" "sambamba/utils/common/overwrite.d" "BioD/bio/core/utils/format.d" "BioD/bio/bam/reader.d" "BioD/bio/core/bgzf/inputstream.d" "BioD/bio/core/sequence.d" "BioD/bio/core/utils/bylinefast.d" "sambamba/index.d" "sambamba/markdup.d" "BioD/bio/bam/referenceinfo.d" "BioD/bio/core/tinymap.d" "cram/reference.d" "BioD/bio/bam/constants.d" "BioD/bio/core/bgzf/outputstream.d" "sambamba/utils/common/intervaltree.d" "BioD/bio/bam/utils/graph.d" "BioD/bio/core/utils/algo.d" "BioD/bio/bam/tagvalue.d" "BioD/bio/sam/reader.d" "BioD/bio/core/utils/outbuffer.d" "sambamba/sort.d" "BioD/bio/bam/validation/samheader.d" "sambamba/flagstat.d" "BioD/bio/bam/pileup.d" "sambamba/pileup.d" "BioD/bio/bam/thirdparty/msgpack.d" "BioD/bio/bam/reference.d" "BioD/bio/core/utils/range.d" "BioD/bio/bam/bai/bin.d" "sambamba/utils/view/alignmentrangeprocessor.d" "sambamba/utils/common/tmpdir.d" "sambamba/slice.d" "BioD/bio/core/bgzf/chunk.d" "BioD/bio/core/bgzf/compress.d" "BioD/bio/bam/region.d" "BioD/bio/core/bgzf/virtualoffset.d" "BioD/bio/core/region.d" "BioD/bio/bam/md/parse.d" "BioD/bio/core/utils/stream.d" "sambamba/utils/common/progressbar.d" "thirdparty/unstablesort.d" "BioD/bio/bam/abstractreader.d" "BioD/bio/core/utils/memoize.d" "sambamba/utils/common/pratt_parser.d" "BioD/bio/core/bgzf/constants.d" "sambamba/merge.d" "sambamba/view.d" "BioD/bio/bam/utils/array.d" "BioD/bio/bam/validation/alignment.d" "cram/writer.d" "cram/slicereader.d" "cram/wrappers.d" "BioD/bio/bam/multireader.d" "utils/lz4.d" "utils/strip_bcf_header.d"
2 changes: 1 addition & 1 deletion sambamba-ldmd-release.rsp
Original file line number Diff line number Diff line change
@@ -1 +1 @@
"-O2" "-c" "-m64" "-noboundscheck" "-release" "-inline" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d" "BioD/bio/core/utils/roundbuf.d" "BioD/bio/bam/md/operation.d" "BioD/bio/sam/utils/fastrecordparser.d" "sambamba/utils/common/ldc_gc_workaround.d" "BioD/bio/bam/read.d" "sambamba/utils/common/filtering.d" "BioD/bio/bam/bai/indexing.d" "BioD/bio/bam/utils/value.d" "BioD/bio/bam/randomaccessmanager.d" "sambamba/utils/common/queryparser.d" "BioD/bio/bam/md/reconstruct.d" "BioD/bio/core/base.d" "BioD/bio/core/utils/zlib.d" "BioD/bio/sam/header.d" "BioD/bio/bam/writer.d" "BioD/bio/core/bgzf/block.d" "BioD/bio/bam/md/core.d" "cram/reader.d" "sambamba/utils/common/overwrite.d" "BioD/bio/core/utils/format.d" "BioD/bio/bam/reader.d" "BioD/bio/core/bgzf/inputstream.d" "BioD/bio/core/sequence.d" "BioD/bio/core/utils/bylinefast.d" "sambamba/index.d" "sambamba/markdup.d" "BioD/bio/bam/referenceinfo.d" "BioD/bio/core/tinymap.d" "cram/reference.d" "BioD/bio/bam/constants.d" "BioD/bio/core/bgzf/outputstream.d" "sambamba/utils/common/intervaltree.d" "BioD/bio/bam/utils/graph.d" "BioD/bio/core/utils/algo.d" "BioD/bio/bam/tagvalue.d" "BioD/bio/sam/reader.d" "BioD/bio/core/utils/outbuffer.d" "sambamba/sort.d" "BioD/bio/bam/validation/samheader.d" "sambamba/flagstat.d" "BioD/bio/bam/pileup.d" "sambamba/pileup.d" "BioD/bio/bam/thirdparty/msgpack.d" "BioD/bio/bam/reference.d" "BioD/bio/core/utils/range.d" "BioD/bio/bam/bai/bin.d" "sambamba/utils/view/alignmentrangeprocessor.d" "sambamba/utils/common/tmpdir.d" "sambamba/slice.d" "BioD/bio/core/bgzf/chunk.d" "BioD/bio/core/bgzf/compress.d" "BioD/bio/bam/region.d" "BioD/bio/core/bgzf/virtualoffset.d" "BioD/bio/core/region.d" "BioD/bio/bam/md/parse.d" "BioD/bio/core/utils/stream.d" "sambamba/utils/common/progressbar.d" "thirdparty/unstablesort.d" "BioD/bio/bam/abstractreader.d" "BioD/bio/core/utils/memoize.d" "sambamba/utils/common/pratt_parser.d" "BioD/bio/core/bgzf/constants.d" "sambamba/merge.d" "sambamba/view.d" "BioD/bio/bam/utils/array.d" "BioD/bio/bam/validation/alignment.d" "cram/writer.d" "cram/slicereader.d" "cram/wrappers.d" "BioD/bio/bam/multireader.d"
"-O2" "-c" "-m64" "-noboundscheck" "-release" "-inline" "-IBioD/" "-ofbuild/sambamba.o" "-odbuild" "-I." "main.d" "BioD/bio/bam/baifile.d" "sambamba/depth.d" "BioD/bio/core/utils/switchendianness.d" "sambamba/utils/common/readstorage.d" "BioD/bio/core/utils/tmpfile.d" "sambamba/utils/common/bed.d" "BioD/bio/bam/utils/samheadermerger.d" "thirdparty/mergesort.d" "BioD/bio/bam/readrange.d" "cram/exception.d" "sambamba/utils/view/headerserializer.d" "BioD/bio/bam/splitter.d" "cram/htslib.d" "BioD/bio/core/utils/roundbuf.d" "BioD/bio/bam/md/operation.d" "BioD/bio/sam/utils/fastrecordparser.d" "sambamba/utils/common/ldc_gc_workaround.d" "BioD/bio/bam/read.d" "sambamba/utils/common/filtering.d" "BioD/bio/bam/bai/indexing.d" "BioD/bio/bam/utils/value.d" "BioD/bio/bam/randomaccessmanager.d" "sambamba/utils/common/queryparser.d" "BioD/bio/bam/md/reconstruct.d" "BioD/bio/core/base.d" "BioD/bio/core/utils/zlib.d" "BioD/bio/sam/header.d" "BioD/bio/bam/writer.d" "BioD/bio/core/bgzf/block.d" "BioD/bio/bam/md/core.d" "cram/reader.d" "sambamba/utils/common/overwrite.d" "BioD/bio/core/utils/format.d" "BioD/bio/bam/reader.d" "BioD/bio/core/bgzf/inputstream.d" "BioD/bio/core/sequence.d" "BioD/bio/core/utils/bylinefast.d" "sambamba/index.d" "sambamba/markdup.d" "BioD/bio/bam/referenceinfo.d" "BioD/bio/core/tinymap.d" "cram/reference.d" "BioD/bio/bam/constants.d" "BioD/bio/core/bgzf/outputstream.d" "sambamba/utils/common/intervaltree.d" "BioD/bio/bam/utils/graph.d" "BioD/bio/core/utils/algo.d" "BioD/bio/bam/tagvalue.d" "BioD/bio/sam/reader.d" "BioD/bio/core/utils/outbuffer.d" "sambamba/sort.d" "BioD/bio/bam/validation/samheader.d" "sambamba/flagstat.d" "BioD/bio/bam/pileup.d" "sambamba/pileup.d" "BioD/bio/bam/thirdparty/msgpack.d" "BioD/bio/bam/reference.d" "BioD/bio/core/utils/range.d" "BioD/bio/bam/bai/bin.d" "sambamba/utils/view/alignmentrangeprocessor.d" "sambamba/utils/common/tmpdir.d" "sambamba/slice.d" "BioD/bio/core/bgzf/chunk.d" "BioD/bio/core/bgzf/compress.d" "BioD/bio/bam/region.d" "BioD/bio/core/bgzf/virtualoffset.d" "BioD/bio/core/region.d" "BioD/bio/bam/md/parse.d" "BioD/bio/core/utils/stream.d" "sambamba/utils/common/progressbar.d" "thirdparty/unstablesort.d" "BioD/bio/bam/abstractreader.d" "BioD/bio/core/utils/memoize.d" "sambamba/utils/common/pratt_parser.d" "BioD/bio/core/bgzf/constants.d" "sambamba/merge.d" "sambamba/view.d" "BioD/bio/bam/utils/array.d" "BioD/bio/bam/validation/alignment.d" "cram/writer.d" "cram/slicereader.d" "cram/wrappers.d" "BioD/bio/bam/multireader.d" "utils/lz4.d" "utils/strip_bcf_header.d"
Loading

0 comments on commit 15d4020

Please sign in to comment.