A server implementation of htsget protocol.
- Dependencies
- C++17
- flags
-std=c++1z -stdlib=libc++
- compiled with
clang-802.0.42
onmacOS
- flags
- Build
cmake -H. -Bbuild -Wno-dev cmake --build build -- -j5
- Run
- on localhost
./bin/htsgetserver
- check in browser
- on localhost
- Routes
GET \ 1|-/ 2|-data/ 3|-<filename> 2|-reads/ 3|-<id>
/reads/<id>
- handles incoming request, dispatch tickets in json
/data/<filename>
- handles data transfer, according to byte range
- Test with samtools
samtools view "http://127.0.0.1:8888/reads/bamtest?format=BAM&referenceName=1&start=10145&end=10150"
SOLEXA-1GA-2_2_FC20EMB:5:251:979:328 0 chr1 10145 25 36M * 0 0 AACCCCTAACCCTAACCCTAACCCTAACCCTAAACT hhhhHcWhhHTghcKA_ONhAAEEBZE?H?CBC?DA NM:i:1 X1:i:1 MD:Z:33A2 SOLEXA-1GA-2_2_FC20EMB:5:102:214:278 0 chr1 10148 25 36M * 0 0 CCCTAACCCTAACCCTAACCCTAACCCTAACCTAAC hbfhhhXUYhT_ULZdLRTKNIMIKGLJCHFFJQJN NM:i:0 X0:i:1 MD:Z:36 SOLEXA-1GA-2_2_FC20EMB:5:195:284:685 16 chr1 10149 25 36M * 0 0 CCAAACACTAACCCTAACCCTAACCCTAACCTAACC ><>B@>?>?D>>?B?D>DBC?E@BDHAKCEKERLOO NM:i:1 X1:i:1 MD:Z:29A3A2 SOLEXA-1GA-2_2_FC20EMB:5:35:583:827 0 chr1 10150 25 36M * 0 0 CTAACCCTAAACCTAACCCTAACCCTAACCTAACCA hhW_X]MXNOHQQWMILHGIFMJGJLCFGGJAKIEH NM:i:1 X1:i:1 MD:Z:10A24A0