xihaoli / staar Goto Github PK
View Code? Open in Web Editor NEWAn R package for performing STAAR procedure in whole-genome sequencing studies
License: GNU General Public License v3.0
An R package for performing STAAR procedure in whole-genome sequencing studies
License: GNU General Public License v3.0
Hello,
I wanted to confirm that when calculating a Phred score for a continuous-valued annotation, the Phred scores should be calculated so that a higher Phred score indicates higher functionality or deleteriousness. For example, if annotation A indicates higher deleteriousness with a higher annotation value, the Phred score generated for A should have a higher Phred score indicating higher deleteriousness.
Hello Xihao,
I was interested in examining which tests (STAAR-S, STAAR-B, STAAR-A) and annotations are the primary drivers of the overall STAAR p-value generated. I noticed that the paper gives equations for deriving the test statistics from the P-values. I wanted to confirm with you that a good way of assessing the relative importance of each test in determining the overall P-value would be to calculate the components of the test statistic T_{STAAR-O} using STAAR output and comparing the absolute values of the components. I also wanted to confirm with you that a similar method could be used to assess which annotations are most important in driving the P-values generated by STAAR-S, STAAR-B, and STAAR-A by using the formulas for T_{STAAR-S}, T_{STAAR-B} and T_{STAAR-A}. Would there be another way of assessing the relative importance of each test and annotation? Thank you in advance.
Sincerely,
Hasan
Hello Xihao.
How should categorical annotations that have more than 2 categories be used in STAAR? I had two choices below. Could you please let me know which would work?
Thank you.
Hello,
I am having some issues with running STAAR using a pre-computed GRM. When running fit_null_glmmkin
using the following:
obj_nullmodel <- fit_null_glmmkin(bmi ~ age + age_squared + sex + wes_batch + PC1 + PC2 + PC3 +
PC4 + PC5 + PC6 + PC7 + PC8 + PC9 + PC10, data=data_for_STAAR, id="FID", family=gaussian(link="identity"), kins = sparse_kinship, verbose = T)
Where data_for_STAAR
is a simple data.table of covariates listed in the formula for ~410k European-ancestry individuals, I get the following error:
[1] "kins is a sparse matrix."
Fixed-effect coefficients:
(Intercept) age age_squared sex wes_batch450k wes_batch50k PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
-1.7322581420 0.0544036344 -0.0004376397 0.1763296286 0.0160212893 0.0141815840 0.0010930668 0.0001362612 0.0009042656 0.0046527898 0.0026141738 0.0001132027 0.0010270634 0.0006944696
PC9 PC10
-0.0022512038 0.0015808292
Iteration 1 :
Variance component estimates:
[1] 0.4312874 0.5479367
Fixed-effect coefficients:
[1] -1.756333e+00 5.511107e-02 -4.426256e-04 1.757527e-01 1.550372e-02 1.367916e-02 1.083162e-03 1.036081e-04 7.883396e-04 4.539559e-03 2.682355e-03 5.708448e-05 1.023603e-03 6.912150e-04
[15] -2.213463e-03 1.590685e-03
Iteration 2 :
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'x' in selecting a method for function 'chol2inv': internal_chm_factor: Cholesky factorization failed
In addition: Warning message:
In .local(x, ...) :
Cholmod warning 'not positive definite' at file ../Cholesky/t_cholmod_rowfac.c, line 430
This GRM being used is identical to the one provided in Bycroft et al. for the main UK Biobank genetic publication from 2018 (https://doi.org/10.1038/s41586-018-0579-z) that ranges from 0.0442 - 0.5. I have also tried simply multiplying the kinship factor by 2 to bring it in-line with that generated by the kinship2
package, but that failed as well.
Do you have any suggestions/advice to get this working? Oddly I was able to run STAAR perfectly fine with a previous GRM that was calculated using a (poorly optimised) GRM from SAIGE, but I wanted to use a more accurate representation.
Thanks!
Hello Xihao,
If we just want to analyze some selected candidate regions in the genome (e.g., 100 genes or one chromosome), should we use the rank relative to the whole genome or the rank among the variants that are included in the analysis or even a mixture of them? We ask about it because we do have pre-calculated genome-wide rank scores for certain annotations, but not for every single annotation that we may want to include. So our choices could be below. Could you let us know which options could work?
Dear developer,
Thank you very much providing such a wonderful software.
I'm interested in STAAR software and would like to use it in my server.
However, the problem is that our server is a stand-alone (offline) server, so I'm having a hard time installing it (due to dependencies and devtools).
I'd appreciate it if you could provide a docker image of STAAR software.
Thanks in advance.
Hi xi hao,
I want to analysis rare variants in my research, and I found your paper published on Nature Genetics.So I want to attempt your method for my data, but I can't implement it quickly. I read your example for using STAAR(
https://htmlpreview.github.io/?https://github.com/xihaoli/STAAR/blob/master/docs/STAAR_vignette.html), but I found that fit_null_glm(Y~X1+X2) is for each position (or SNP sets) rather than whole genotype dosage matrix,
So what should I do to apply it on my whole genotype dosage matrix that contains missing genotype(NA) quickly?
Can you give me some detailed examples or suggestions?
I am looking forward to your reply.
Best,
Du
Dear Sir or Madam,
I am trying to run STAAR using WGS data for about 60k participant. It is easy to use bcftools to extract the genotype data of a specific region for these 60k participants. However, the output is a pn matrix and the STAAR requires np matrix. It's time-consuming to transpose this such large matrix. So I wonder whether you can suggest some more efficient ways to get the required format of genotype files from gVCF file.
Best wishes,
Yajie Zhao
20/10/2020
Hi, Thanks for making STAAR so easy to install and use! I am trying to run Staar on a test dataset of 5000 individuals for one chromosome and I get the following error when I try to run the STAAR() function:
error: eig_sym(): decomposition failed
Error in STAAR_O_SMMAT(G, P, residuals.phenotype, weights_B = w_B, weights_S = w_S, :
eig_sym(): decomposition failed
Any thoughts on how to resolve this error would be greatly appreciated, thanks!!
Dear Xihao,
Is it possible to have a script that will do all the 5 steps (step-0 to step-4) as mentioned in http://favor.genohub.org/.
This will be helpful for common users.
The batch download at "favor" does not allow download of annotations for more than 10K variants. Can this limit be increased or a source file with all the annotations be made available just like the list of variants from TOPMed in the Bravo server. The annotation data can be part of the INFO column in the vcf format. This again is important if large scale studies are to use your resources in a timely fashion.
Thanks for this wonderful tool.
Best
Ganesh
Can you help with the installation issue below? I tried R 4.0.3 and R 4.1.0 without success. Thanks!
✔ checking for file ‘/tmp/RtmpGeWbBu/remotes26b536a8a2737/xihaoli-STAAR-7887209/DESCRIPTION’ (573ms)
─ preparing ‘STAAR’:
✔ checking DESCRIPTION meta-information
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘STAAR_0.9.6.tar.gz’
* installing *source* package ‘STAAR’ ...
...
g++ -std=gnu++11 -I"/software/R/R-4.0.3/lib64/R/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/software/R/R-4.0.3/lib64/R/library/Rcpp/include' -I'/software/R/R-4.0.3/lib64/R/library/RcppArmadillo/include' -I/usr/local/include -fpic -g -O2 -c CCT_pval.cpp -o CCT_pval.o
CCT_pval.cpp: In function ‘double CCT_pval(arma::vec, arma::vec)’:
CCT_pval.cpp:28:42: error: ‘PI’ was not declared in this scope
28 | cct_stat = cct_stat + weights(k)/x(k)/PI;
| ^~
CCT_pval.cpp:31:52: error: ‘PI’ was not declared in this scope
31 | cct_stat = cct_stat + weights(k)*tan((0.5-x(k))*PI);
| ^~
CCT_pval.cpp:37:29: error: ‘PI’ was not declared in this scope
37 | pval = (1/cct_stat)/PI;
| ^~
make: *** [/software/R/R-4.0.3/lib64/R/etc/Makeconf:181: CCT_pval.o] Error 1
ERROR: compilation failed for package ‘STAAR’
Dear Professor,
I have encountered a challenge related to reference genome versions during my analysis. I have been using GRCh37, but the FAVOR annotation is based on GRCh38. Do you have any suggestions or recommendations for a more effective solution?
I have attempted to liftover the FAVOR annotation to GRCh37, but it appears to result in the loss of numerous variants' annotation. Unfortunately, I am uncertain about the potential impact of this on the analysis.
I would greatly appreciate your insights and advice.
Thank you.
Best regards.
Dear developer,
I'm trying to install STAAR in R 4.0.1, in my MacBook. but I have met some problem.
Following your instructions, I first install Rcpp and RcppArmadillo, and also imports R packages Rcpp, GMMAT, GENESIS, Matrix.
Then I type:
library(devtools)
devtools::install_github("xihaoli/STAAR")
However, a error happens:
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [STAAR.so] Error 1
ERROR: compilation failed for package ‘STAAR’
Would you like to give me some suggestion to solve this problem?
Best
Hello,
Thanks for providing this R package for RV analysis. I'm trying to install the R package but failed. Below are the error messages:
> devtools::install_github("xihaoli/STAAR")
Downloading GitHub repo xihaoli/STAAR@HEAD
Skipping 3 packages not available: SeqVarTools, SeqArray, GENESIS
✓ checking for file ‘/private/var/folders/rm/13q45cr52dg3x7_nd6frtknm0000gn/T/RtmpOr5A01/remotes14e83fa9e77c/xihaoli-STAAR-dc4f7e5/DESCRIPTION’ ...
─ preparing ‘STAAR’:
✓ checking DESCRIPTION meta-information ...
─ cleaning src
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘STAAR_0.9.5.tar.gz’
* installing *source* package ‘STAAR’ ...
** using staged installation
** libs
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Bisection.cpp -o Bisection.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c CCT_pval.cpp -o CCT_pval.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Indiv_Score_Test.cpp -o Indiv_Score_Test.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Indiv_Score_Test_SMMAT.cpp -o Indiv_Score_Test_SMMAT.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Indiv_Score_Test_SMMAT_sparse.cpp -o Indiv_Score_Test_SMMAT_sparse.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Indiv_Score_Test_SMMAT_sparse_cond.cpp -o Indiv_Score_Test_SMMAT_sparse_cond.o
Indiv_Score_Test_SMMAT_sparse_cond.cpp:28:6: warning: unused variable 'q' [-Wunused-variable]
int q = Sigma_iX.n_cols;
^
1 warning generated.
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c K.cpp -o K.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c K1.cpp -o K1.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c K2.cpp -o K2.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c RcppExports.cpp -o RcppExports.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c STAAR_O.cpp -o STAAR_O.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c STAAR_O_SMMAT.cpp -o STAAR_O_SMMAT.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c STAAR_O_SMMAT_sparse.cpp -o STAAR_O_SMMAT_sparse.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c STAAR_O_SMMAT_sparse_cond.cpp -o STAAR_O_SMMAT_sparse_cond.o
STAAR_O_SMMAT_sparse_cond.cpp:36:6: warning: unused variable 'vvn' [-Wunused-variable]
int vvn = Sigma_iX.n_cols;
^
1 warning generated.
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c Saddle.cpp -o Saddle.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -DARMA_64BIT_WORD=1 -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/Rcpp/include' -I'/Library/Frameworks/R.framework/Versions/4.1/Resources/library/RcppArmadillo/include' -I/usr/local/include -fPIC -Wall -g -O2 -c matrix_flip.cpp -o matrix_flip.o
clang++ -mmacosx-version-min=10.13 -std=gnu++14 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o STAAR.so Bisection.o CCT_pval.o Indiv_Score_Test.o Indiv_Score_Test_SMMAT.o Indiv_Score_Test_SMMAT_sparse.o Indiv_Score_Test_SMMAT_sparse_cond.o K.o K1.o K2.o RcppExports.o STAAR_O.o STAAR_O_SMMAT.o STAAR_O_SMMAT_sparse.o STAAR_O_SMMAT_sparse_cond.o Saddle.o matrix_flip.o -L/Library/Frameworks/R.framework/Resources/lib -lRlapack -L/Library/Frameworks/R.framework/Resources/lib -lRblas -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0 -L/usr/local/gfortran/lib -lgfortran -lquadmath -lm -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
ld: warning: directory not found for option '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin18/8.2.0'
ld: warning: directory not found for option '-L/usr/local/gfortran/lib'
ld: library not found for -lgfortran
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [STAAR.so] Error 1
ERROR: compilation failed for package ‘STAAR’
* removing ‘/Library/Frameworks/R.framework/Versions/4.1/Resources/library/STAAR’
Warning message:
In i.p(...) :
installation of package ‘/var/folders/rm/13q45cr52dg3x7_nd6frtknm0000gn/T//RtmpOr5A01/file14e835b9c85ec/STAAR_0.9.5.tar.gz’ had non-zero exit status
I installed other required R packages such as Rcpp, RcppArmadillo, GMMAT, Matrix, SeqVarTools, SeqArray, GENESIS
and I'm using R v4.1.0:
> version
_
platform x86_64-apple-darwin17.0
arch x86_64
os darwin17.0
system x86_64, darwin17.0
status
major 4
minor 1.0
year 2021
month 05
day 18
svn rev 80317
language R
version.string R version 4.1.0 (2021-05-18)
nickname Camp Pontanezen
Thank you very much for your help!
Hello Xihao,
Thanks for developing this excellent tool! I've been learning to use the STAAR package to analyze our own dataset. In the analysis, we prepared functional annotations that are most informative for the phenotype of our interest and tried to use those annotations in addition to the ones mentioned in you paper to inform our variant-set analyses. However, we do occasionally come across with missing values in those annotations. I am wondering how missing annotations can be handled within the STAAR pipeline and if you have ever encountered this missing value issue in your analysis? Thank you so much!
Best,
Zheng
Hi Xihao, I have encountered the fellowing error when running STAAR. Do you have any insights on this? Thank you!
*** caught segfault ***
address (nil), cause 'unknown'
Traceback:
1: .identC(thisClass, Class)
2: as(Geno_rare, "dgCMatrix")
3: STAAR(Geno, obj_nullmodel, Anno.Int.PHRED.sub, rare_maf_cutoff = rare_maf_cutoff, rv_num_cutoff = rv_num_cutoff)
4: doTryCatch(return(expr), name, parentenv, handler)
5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
6: tryCatchList(expr, classes, parentenv, handlers)
7: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call)[1L] prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
8: try(pvalues <- STAAR(Geno, obj_nullmodel, Anno.Int.PHRED.sub, rare_maf_cutoff = rare_maf_cutoff, rv_num_cutoff = rv_num_cutoff))
9: ncRNA(chr = chr, gene_name = genes[i], genofile = genofile, obj_nullmodel = obj_nullmodel, geno_missing_imputation = "mean")
An irrecoverable exception occurred. R is aborting now ...
R sessionInfo
R version 3.6.2 (2019-12-12)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)
Matrix products: default
BLAS: /share/pkg.7/r/3.6.2/install/lib/libopenblasp-r0.3.7.so
LAPACK: /share/pkg.7/r/3.6.2/install/lib/liblapack.so.3.8.0
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] STAAR_0.9.6.1 SeqVarTools_1.24.1 SeqArray_1.26.2 gdsfmt_1.22.0
[5] readr_1.3.1 data.table_1.14.2
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.