Skip to content

Commit a838772

Browse files
authored
port physlr split-minimizers to c++ (#145)
* port physlr split-minimizers to c++ * physlr-split-minimizers.cc: refactor arg parser * physlr-split-minimizers.cc: fix clang-tidy * physlr-split-minimizers.cc: use auto * physlr-split-minimizers.cc: update comments * physlr-split-minimizers.cc: add print memoryUsage to functions * physlr-split-minimizers.cc: update regex * physlr-split-minimizers.cc: use robin map * physlr-split-minimizers.cc: remove no minimizer warning for speed * physlr-split-minimizers: add unit test * physlr-make: update physlr-make split minimizers rule * physlr-split-minimizers.cc: report splitting time * physlr-split-minimizers.cc: remove critical brace * physlr-split-minimizers.cc: update log message
1 parent accf43c commit a838772

6 files changed

Lines changed: 470 additions & 5 deletions

bin/physlr-make

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -958,7 +958,7 @@ min_path_size=200
958958

959959
# Split the minimizers to molecules
960960
%.overlap.m$m.mol.mol2-bcs.split.tsv: %.overlap.m$m.mol.mol2-bcs.tsv %.tsv
961-
$(time) $(python) $(bin)/physlr split-minimizers -t$t -V$V $< $*.tsv >$@
961+
$(time) $(physlr_path)/src/physlr-split-minimizers -t$t $< $*.tsv >$@
962962

963963
# Split the reads into molecules
964964
%.split.fq.gz: $(lr).fq.gz %.split.tsv $(lr).k$k-w$w.physlr.tsv

src/Makefile

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ CXXFLAGS=-g -O3 -Wall -Werror -Wno-error=unknown-pragmas -std=c++11 -pthread -I.
22
LDLIBS=-lz
33
PREFIX=$(HOME)/.local
44

5-
.PHONY: all clean check install lint clang-format clang-tidy fix check-physlr-index-fasta check-physlr-index-pos-fasta check-physlr-index-fastq check-physlr-filter-barcodes check-physlr-filter-bxmx-first check-physlr-filter-bxmx-second check-physlr-index-stLFR check-physlr-index-stLFR-10X check-physlr-makebf check-physlr-overlap
5+
.PHONY: all clean check install lint clang-format clang-tidy fix check-physlr-index-fasta check-physlr-index-pos-fasta check-physlr-index-fastq check-physlr-filter-barcodes check-physlr-filter-bxmx-first check-physlr-filter-bxmx-second check-physlr-index-stLFR check-physlr-index-stLFR-10X check-physlr-makebf check-physlr-overlap check-physlr-split-minimizers
66

7-
all: physlr-indexlr physlr-filter-barcodes physlr-overlap physlr-filter-bxmx physlr-makebf physlr-molecules
7+
all: physlr-indexlr physlr-filter-barcodes physlr-overlap physlr-filter-bxmx physlr-makebf physlr-molecules physlr-split-minimizers
88

99
clean:
10-
rm -f physlr-indexlr physlr-filter-barcodes physlr-filter-bxmx physlr-overlap physlr-makebf physlr-molecules
10+
rm -f physlr-indexlr physlr-filter-barcodes physlr-filter-bxmx physlr-overlap physlr-makebf physlr-molecules physlr-split-minimizers
1111

1212
# Check the C++ source code for errors.
1313
lint: clang-format clang-tidy
@@ -66,6 +66,9 @@ check-physlr-overlap: all
6666
check-physlr-molecules: all
6767
./physlr-molecules -s bc data/tiny.mol.input.tsv | diff -q - data/tiny.mol.tsv.good
6868

69-
install: physlr-indexlr physlr-filter-barcodes physlr-overlap physlr-filter-bxmx physlr-makebf physlr-molecules
69+
check-physlr-split-minimizers: all
70+
./physlr-split-minimizers -t4 data/tiny.split-minimizers.mol.mol2-bcs.tsv data/tiny.split-minimizers.physlr.tsv | sort |diff -q - data/tiny.split-minimizers.mol.mol2-bcs.split.tsv.good
71+
72+
install: physlr-indexlr physlr-filter-barcodes physlr-overlap physlr-filter-bxmx physlr-makebf physlr-molecules physlr-split-minimizers
7073
install -d $(DESTDIR)$(PREFIX)/bin
7174
install $^ $(DESTDIR)$(PREFIX)/bin
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
100_55_25_0_0
2+
100_55_25_15_0
3+
100_55_25_15_90 1 3 5 7
4+
100_55_25_15_91 2 6 8 15
5+
22_1_9_0_0 2 6 8
6+
543_288_92_0_0 1 3 5 7
7+
75_288_50_0_0 1 3 7
8+
92_300_57_0_0 2 6 15
9+
AAACACCAGAAACCTA-1_0_0
10+
AAACACCAGAAACCTA-1_15_0
11+
AAACACCAGAAACCTA-1_15_90 1 3 5 7
12+
AAACACCAGAAACCTA-1_15_91 2 6 8 15
13+
AAACACCAGAAAGCTT-1_0_0 1 3 5 7
14+
AAACACCAGAACGACC-1_0_0 1 3 7
15+
AAACACCAGAACGACT-1_0_0 2 6 15
16+
AAACACCAGAACGCCA-1_0_0 2 6 8
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
U m
2+
AAACACCAGAAACCTA-1_0_0 1254
3+
AAACACCAGAAACCTA-1_15_0 1254
4+
AAACACCAGAAACCTA-1_15_91 1254
5+
AAACACCAGAAACCTA-1_15_90 1254
6+
AAACACCAGAAAGCTT-1_0_0 1313
7+
AAACACCAGAACGACC-1_0_0 1819
8+
AAACACCAGAACGACT-1_0_0 1819
9+
AAACACCAGAACGCCA-1_0_0 4173
10+
100_55_25_0_0 1254
11+
100_55_25_15_0 1254
12+
100_55_25_15_91 1254
13+
100_55_25_15_90 1254
14+
543_288_92_0_0 1313
15+
75_288_50_0_0 1819
16+
92_300_57_0_0 1819
17+
22_1_9_0_0 4173
18+
19+
U V m
20+
100_55_25_15_90 543_288_92_0_0 1
21+
100_55_25_15_90 75_288_50_0_0 1
22+
100_55_25_15_91 92_300_57_0_0 1
23+
100_55_25_15_91 22_1_9_0_0 1
24+
AAACACCAGAAACCTA-1_15_90 AAACACCAGAAAGCTT-1_0_0 1
25+
AAACACCAGAAACCTA-1_15_90 AAACACCAGAACGACC-1_0_0 1
26+
AAACACCAGAAACCTA-1_15_91 AAACACCAGAACGACT-1_0_0 1
27+
AAACACCAGAAACCTA-1_15_91 AAACACCAGAACGCCA-1_0_0 1
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
AAACACCAGAAACCTA-1 1 2 3 6 8 15 5 7
2+
AAACACCAGAAAGCTT-1 1 3 5 7
3+
AAACACCAGAACGACC-1 1 3 4 7
4+
AAACACCAGAACGACT-1 2 6 10 15
5+
AAACACCAGAACGCCA-1 2 6 13 8
6+
100_55_25 1 2 3 6 8 15 5 7
7+
543_288_92 1 3 5 7
8+
75_288_50 1 3 4 7
9+
92_300_57 2 6 10 15
10+
22_1_9 2 6 13 8

0 commit comments

Comments
 (0)