Comments (5)
Thanks for reporting this + the repro.vcf file. It seems like the hom-ref blocks in the file are causing this (although I don't fully understand how yet). Preprocessing with bcftools view -c 1
should fix the issue. Homref calls in the query VCF are not used by hap.py, so removing them should not affect the result.
Preprocess will be replaced with more up-to-date code in one of the next releases.
from hap.py.
Hello,
Any updates on this issue?
I am experiencing what is likely the same issue as well. I did not track down the source as thoroughly as OP but error appears to be the same (see below). I am trying to compare a sample VCF that has been imputed with the latest 1KG release (~61M SNPs) the the corresponding sample in the 1KG panel (how good is the library prep?) I get the same segmentation fault error in the preprocessing step which goes away if I prefilter the VCF for MAF (thus reducing the total number of SNPs to 3-6 M). I am running 31 samples in my batch and they all produce a segmentation fault and so this appears to be deterministic rather than random. Is there perhaps a theoretical maximum number of SNPs that hap.py can handle?
I am running hap.py with the provided Docker container, pulling each time, and have tested on a variety of EC2 instances, up to 128 GB of RAM.
I also instituted the suggested preprocessing step bcftools view -c 1
and that has resolved the issues. Is this still the best way to fix the issue?
Cheers,
Brian
Status: Downloaded newer image for pkrusche/hap.py:latest
2022-12-02 02:20:51,342 WARNING No reference file found at default locations. You can set the environment variable 'HGREF' or 'HG19' to point to a suitable Fasta file.
2022-12-02 02:20:51,346 WARNING No reference file found at default locations. You can set the environment variable 'HGREF' or 'HG19' to point to a suitable Fasta file.
[I] Total VCF records: 61715567
[I] Non-reference VCF records: 3522209
[I] Total VCF records: 61715567
[I] Non-reference VCF records: 3523817
2022-12-02 03:47:25,994 ERROR Preprocess command preprocess /tmp/tmpXCFRHO.bcf:* -l chr1:119324179-151161605 -o /tmp/input.chr1:119324179-151161605FSQKNO.prep.vcf.gz -V 1 -L 1 -r /shared/reference/GRCh38_full_analysis_set_plus_decoy_hla.fa failed. Outputs are here /tmp/stdoutzUkFlD.log / /tmp/stderrnh89RB.log
2022-12-02 03:47:25,995 ERROR Segmentation fault (core dumped)
2022-12-02 03:47:25,995 ERROR Exception when running <function preprocessWrapper at 0x7ff8501b9140>:
2022-12-02 03:47:25,995 ERROR ------------------------------------------------------------
2022-12-02 03:47:25,996 ERROR Traceback (most recent call last):
2022-12-02 03:47:25,996 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-02 03:47:25,996 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-02 03:47:25,996 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-02 03:47:25,997 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-02 03:47:25,997 ERROR File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
2022-12-02 03:47:25,997 ERROR raise CalledProcessError(retcode, cmd)
2022-12-02 03:47:25,998 ERROR CalledProcessError: Command 'preprocess /tmp/tmpXCFRHO.bcf:* -l chr1:119324179-151161605 -o /tmp/input.chr1:119324179-151161605FSQKNO.prep.vcf.gz -V 1 -L 1 -r /shared/reference/GRCh38_full_analysis_set_plus_decoy_hla.fa' returned non-zero exit status 139
2022-12-02 03:47:25,998 ERROR ------------------------------------------------------------
2022-12-02 03:47:36,216 ERROR Preprocess command preprocess /tmp/tmpXCFRHO.bcf:* -l chr14:105832844-2147483647 -o /tmp/input.chr14:105832844-2147483647kx8Jwh.prep.vcf.gz -V 1 -L 1 -r /shared/reference/GRCh38_full_analysis_set_plus_decoy_hla.fa failed. Outputs are here /tmp/stdoutzF4_Ys.log / /tmp/stderrhOdZnH.log
2022-12-02 03:47:36,217 ERROR Segmentation fault (core dumped)
2022-12-02 03:47:36,217 ERROR Exception when running <function preprocessWrapper at 0x7ff8501b9140>:
2022-12-02 03:47:36,217 ERROR ------------------------------------------------------------
2022-12-02 03:47:36,218 ERROR Traceback (most recent call last):
2022-12-02 03:47:36,218 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-02 03:47:36,218 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-02 03:47:36,219 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-02 03:47:36,219 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-02 03:47:36,219 ERROR File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
2022-12-02 03:47:36,220 ERROR raise CalledProcessError(retcode, cmd)
2022-12-02 03:47:36,220 ERROR CalledProcessError: Command 'preprocess /tmp/tmpXCFRHO.bcf:* -l chr14:105832844-2147483647 -o /tmp/input.chr14:105832844-2147483647kx8Jwh.prep.vcf.gz -V 1 -L 1 -r /shared/reference/GRCh38_full_analysis_set_plus_decoy_hla.fa' returned non-zero exit status
139
2022-12-02 03:47:36,221 ERROR ------------------------------------------------------------
2022-12-02 03:48:24,724 ERROR One of the preprocess jobs failed
2022-12-02 03:48:24,724 ERROR Traceback (most recent call last):
2022-12-02 03:48:24,724 ERROR File "/opt/hap.py/bin/hap.py", line 508, in <module>
2022-12-02 03:48:24,725 ERROR main()
2022-12-02 03:48:24,725 ERROR File "/opt/hap.py/bin/hap.py", line 363, in main
2022-12-02 03:48:24,725 ERROR "QUERY")
2022-12-02 03:48:24,725 ERROR File "/opt/hap.py/bin/pre.py", line 203, in preprocess
2022-12-02 03:48:24,725 ERROR haploid_x=gender == "male")
2022-12-02 03:48:24,725 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 214, in partialCredit
2022-12-02 03:48:24,725 ERROR raise Exception("One of the preprocess jobs failed")
2022-12-02 03:48:24,725 ERROR Exception: One of the preprocess jobs failed
from hap.py.
30/12/2022 Update:
I preprocess the vcf with following script again:
bcftools annotate --rename-chrs chrRename.txt "$1" |
bcftools norm -m -any |
bcftools norm -f /mnt/d/epi25/hg38.fa.gz |
bcftools norm -a |
bcftools +fill-tags -- -t VAF |
bcftools view -T mytarget.bed -c 1 -i '(FILTER="PASS" | FILTER=".") & FORMAT/DP>10 & VAF>0.1' -Oz -o "$2"
And run the hap.py with following command:
docker run -v "/mnt/d/epi25/:/ref" -v "$PWD:/myfiles" -e "HGREF=/ref/hg38.fa.gz" -it hap.py /opt/hap.py/bin/hap.py /myfiles/$v /myfiles/$test -o /myfiles/$OUTDIR/$name -f /ref/hg38.fa.gz
I got a different error
Hap.py v0.3.15
[I] Total VCF records: 7167
[I] Non-reference VCF records: 7167
Segmentation fault
2022-12-30 10:49:14,412 ERROR Command 'gvcf2bed /tmp/truth.ppJxaYly.vcf.gz -r /ref/hg38.fa.gz -o /tmp/tmplqXok1.bed -T /ref/hg38.fa.gz' returned non-zero exit status 139
2022-12-30 10:49:14,412 ERROR Traceback (most recent call last):
2022-12-30 10:49:14,412 ERROR File "/opt/hap.py/bin/hap.py", line 540, in <module>
2022-12-30 10:49:14,413 ERROR main()
2022-12-30 10:49:14,413 ERROR File "/opt/hap.py/bin/hap.py", line 321, in main
2022-12-30 10:49:14,413 ERROR conf_temp = Haplo.gvcf2bed.gvcf2bed(args.vcf1, args.ref, args.fp_bedfile, args.scratch_prefix)
2022-12-30 10:49:14,413 ERROR File "/opt/hap.py/lib/python27/Haplo/gvcf2bed.py", line 39, in gvcf2bed
2022-12-30 10:49:14,413 ERROR subprocess.check_call(cmdline, shell=True)
2022-12-30 10:49:14,413 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-30 10:49:14,413 ERROR raise CalledProcessError(retcode, cmd)
2022-12-30 10:49:14,414 ERROR CalledProcessError: Command 'gvcf2bed /tmp/truth.ppJxaYly.vcf.gz -r /ref/hg38.fa.gz -o /tmp/tmplqXok1.bed -T /ref/hg38.fa.gz' returned non-zero exit status 139
I will be at this issue: #154
29/12/2022 Update: same error happens wih container from pkrusche/hap.py
I also have segfaults in preprocess step.
I have cloned from repo and build the docker myself.
I preprocess the vcf with this:
bcftools annotate --rename-chrs chrRename.txt "$1" |
bcftools norm -m -any |
bcftools norm -f /mnt/d/epi25/hg38.fa.gz |
bcftools +fill-tags -- -t VAF |
bcftools view -c 1 -i '(FILTER="PASS" | FILTER=".") & FORMAT/DP>10 & VAF>0.1' -Oz -o "$2"
my command looks like this:
docker run -v "/mnt/d/epi25/:/ref" -v "$PWD:/myfiles" -e "HGREF=/ref/hg38.fa.gz" -it hap.py /opt/hap.py/bin/hap.py /myfiles/$v /myfiles/$test -o /myfiles/$OUTDIR/$name
Hap.py v0.3.15
[W] Symbolic / SV ALT alleles at chr3:50840065
[W] Variants that have symbolic ALT alleles: 3
[I] Total VCF records: 7111
[I] Non-reference VCF records: 7111
[I] Total VCF records: 7177
[I] Non-reference VCF records: 7177
2022-12-29 14:49:58,165 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr14:1-67777822 -o /tmp/input.chr14:1-67777822JEjMIN.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdout4mKJVM.log / /tmp/stderrFhqHTH.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr13:1-95085526 -o /tmp/input.chr13:1-95085526tt3iNZ.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutk_sDHG.log / /tmp/stderrdEszje.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr1:1-18887503 -o /tmp/input.chr1:1-18887503HJc4BS.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutFiEYPU.log / /tmp/stderrmD7qkx.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr10:66290568-101027786 -o /tmp/input.chr10:66290568-1010277863Rb6mu.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutswFwtE.log / /tmp/stderrIMnEq5.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr12:57207087-113020483 -o /tmp/input.chr12:57207087-113020483Yrudl7.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutC86QJT.log / /tmp/stderrXAw3IE.log
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr15:1-47780879 -o /tmp/input.chr15:1-477808794zUq5P.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdouttpjyE1.log / /tmp/stderrWJpue0.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr11:64661429-95933947 -o /tmp/input.chr11:64661429-959339474ISojb.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutc0wTN4.log / /tmp/stderrkDkkia.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr1:44838081-111330330 -o /tmp/input.chr1:44838081-111330330ZgWsSI.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdout_Mlqk4.log / /tmp/stderrr1kfD8.log
2022-12-29 14:49:58,166 ERROR Preprocess command preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr12:1-11363959 -o /tmp/input.chr12:1-11363959qT7OIa.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz failed. Outputs are here /tmp/stdoutLVPOFS.log / /tmp/stderrMOrdEV.log
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR Segmentation fault
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,166 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,166 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,166 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,166 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,166 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,166 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,167 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Tools/parallel.py", line 72, in parMapper
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR File "/opt/hap.py/lib/python27/Haplo/partialcredit.py", line 67, in preprocessWrapper
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR raise CalledProcessError(retcode, cmd)
2022-12-29 14:49:58,167 ERROR subprocess.check_call(to_run, shell=True, stdout=tfo, stderr=tfe)
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR File "/usr/lib/python2.7/subprocess.py", line 190, in check_call
2022-12-29 14:49:58,167 ERROR CalledProcessError: Command 'preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr14:1-67777822 -o /tmp/input.chr14:1-67777822JEjMIN.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz' returned non-zero exit status 139
2022-12-29 14:49:58,167 ERROR Exception when running <function preprocessWrapper at 0x7fcf6fe20bd0>:
2022-12-29 14:49:58,167 ERROR raise CalledProcessError(retcode, cmd)
2022-12-29 14:49:58,167 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,167 ERROR return arg[1]['fun'](arg[0], *arg[1]['args'], **arg[1]['kwargs'])
2022-12-29 14:49:58,167 ERROR ------------------------------------------------------------
2022-12-29 14:49:58,167 ERROR raise CalledProcessError(retcode, cmd)
2022-12-29 14:49:58,167 ERROR raise CalledProcessError(retcode, cmd)
2022-12-29 14:49:58,167 ERROR CalledProcessError: Command 'preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr1:1-18887503 -o /tmp/input.chr1:1-18887503HJc4BS.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz' returned non-zero exit status 139
2022-12-29 14:49:58,167 ERROR Traceback (most recent call last):
2022-12-29 14:49:58,167 ERROR CalledProcessError: Command 'preprocess /tmp/tmpN21ZnV.vcf.gz:* -l chr11:64661429-95933947 -o /tmp/input.chr11:64661429-959339474ISojb.prep.vcf.gz -V 1 -L 1 -r /ref/hg38.fa.gz' returned non-zero exit status 139
from hap.py.
I encounter the similar CallProcessError
in the latest version 0.3.15 and this problem can still be solved by the forementioned bcftools view -c 1
. But alter bcftools view -c 1
reduced the original vcf.gz
from 1.2G to approximately 100+M. I dont know if that is normal, but the result seems decent.
from hap.py.
@LogCrab bcftools view -c 1
filters the lines if they're variants 0/1, 1/1 etc. That's why the size drops.
from hap.py.
Related Issues (20)
- Parsing results VCF gives different counts of TRUTH FN than summary HOT 1
- CMake Error at CMakeLists.txt:32 (message): Building external dependencies has failed
- Error running BCFTOOLS :Argument list too long
- Integrating vcfdist as a comparison engine into hap.py
- missing reference HOT 1
- VCF format issues with --write-vcf, - FORMAT field inconsistencies HOT 1
- Trying to print sequence when we mean contig name
- error code 1
- Docker Implementation: Several Error Messages Related to "preprocess" HOT 1
- ROC and PR curve HOT 2
- Docker fails to build for both bases
- Incorrect number of FORMAT/AD values on scmp-distance engine
- Link provide in email is broken HOT 1
- [E::bgzf_uncompress] inflate failed: invalid distance too far back HOT 1
- Docker build failed HOT 1
- How is the false positive rate calculated in som.py stats?
- Can't find reference HOT 1
- While using hap.py, there is a problem:
- Make a new pre-built docker image?
- Using --usefiltered-truth results in incorrect FP calls for filtered variants in the truth (xcmp)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hap.py.