Giter VIP home page Giter VIP logo

mixsiar's People

Contributors

andrewljackson avatar brianstock avatar brianstock-noaa avatar ericward-noaa avatar jjvenky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mixsiar's Issues

GTK warning missing 'gtk-file' and 'hicolor' theme error and fix

After loading the MixSIAR GUI (version 2.1.3) on Windows 8 and beginning to load my mixture data, I received an error reading: "GTK-WARNING**: Could not find the icon 'gtk-file'. The 'hicolor' theme was not found either, perhaps you need to install it." followed by an URL to download the hicolor theme. I downloaded it, but it was a .tar.xz file, which my computer didn't know what to do with. Then I downloaded a program called 7-Zip for extracting compressed files (such as .xz and also .tar). I first extracted the .tar file from the .xz file, after which I had to extract the folder with all the files from the .tar file. I found out how to insert it into GTK from a Stack Overflow forum about this error (http://stackoverflow.com/questions/12642804/warning-about-missing-gtk-icon-in-python-executable). I navigated to my R library (R version 3.2.2), then "RGtk2\gtk\x64\share". If there isn't a "share" folder, you can create it. Within the "share" folder, I created a folder called "icons" and within that, a folder called "hicolor", then copied the file "index.theme" from the extracted hicolor theme folder into that "hicolor" folder that I just created.

Warnings from isospace plot (per mille symbol)

Since jjvenky modified isospace plot to print per mille character (#12), the plot will appear nicely in the R graphics device, but the version saved as PDF has (...) instead of per mille.

Also, warnings are produced for each line with the \u2030 character.

Scaled posterior distributions

Hi, this is more of an open question than an issue, and I am not sure if this is the right place to post it, so please feel free to redirect me somewhere else if it is not.

I have come to realize that in the posterior distributions plot, the density of all sources is scaled to 1. As an example, my model's output from MixSIAR looks like this
scaled
but if I extract the posteriors from the jags output and plot them, without scaling the y axis, they look like this.
test_histograms

I was wondering, looking at the non-scaled plot,
a) if I can say with the same confidence that my consumers are feeding from marine and freshwater sources as I can say they are NOT feeding on terrestrial or refuse sources.

and b) if the distributions with lower densities are not to be trusted, whether there's something in the output (in the summary or diagnostics file, for instance) to indicate it.

Can SIAR calculte the contribution of primary carbon souce to carnivorous fish

Dear All
In my current case , several categories of organic sources exist in the studied ecosystem. i want to identify which sort of organic matter mainly flow to the end of food web by the dominant fish, i am questioning that whether i can use SIAR to calculate the percentage contribution of organic matters( seagrass,benthic macroalgae, phytoplankton,benthicmicroalgae, epiphyte ) to carnivorous fish by stable isotopic values. Meanwhile the stomach contents analysis for the dominant fishes was conducted, only the segments of seagrass and macroalgae were identified as the potential food items with exception of polychatea , amphipoda and shrimp. it seems no significant to input all potential organic matter to SIAR . should i just only input the isotopic signatures of segrass or macroalgae as the potential carbon sources to calculate the percentage contribution of potential food items determined from stomach contents analysis or literature to the consumers

initial values for MCMC chains in jags() call

From Jason Waite:

jags generates them automatically, but according to the jags manual, when running multiple parallel chains, the initial values are identical for each chain which is far from ideal, especially for the Gelman-Rubin statistic

Error In file(filename, "r", encoding = encoding): cannot open file 'build_mix_win.r': No such file or directory

I've tried running the package in R Studio but kept getting errors ("Error: could not find function "mixsiar_gui"" or something similar). Any tricks to opening running MixSIAR GUI in R Studio?
The package opens and works just fine in the regular R Console.

    > mixsiar_gui()
    Loading required package: ggplot2
    Loading required package: gWidgetsRGtk2
    Loading required package: RGtk2
    Loading required package: gWidgets
    Loading required package: cairoDevice
    Loading required package: R2jags
    Loading required package: rjags
    Loading required package: coda
    Linked to JAGS 3.4.0
    Loaded modules: basemod,bugs

    Attaching package:R2jagsThe following object is masked frompackage:coda:

        traceplot

    Loading required package: MASS
    Loading required package: RColorBrewer
    Loading required package: reshape
    Loading required package: lattice
     Show Traceback

     Rerun with Debug
     Error in file(filename, "r", encoding = encoding) : 
      cannot open the connection

    In addition: Warning message:
    In file(filename, "r", encoding = encoding) :
      cannot open file 'build_mix_win.r': No such file or directory

Order of nested random effects

When including 2 random effects, there is only an option for nesting the 2nd within the 1st. I.e., in the Wolves example, if you load "Pack" and then "Region", you are only allowed to nest "Region" within "Pack".

The inconsistent results with the same input data

I have run MixSIAR model several times with the same input data. However, the model predictions (such as median (50th percentile) values) were inconsistent. The Gelman diagnostic of some variables was not < 1.05. The Geweke diagnostic of some chains was not expected to be 5% outside +/-1.96. Did it mean the results of my own data were not reliable?

Many thanks!

Possible bug while plotting data as .png

Version: 2.1.2
Using RStudio
Issue: I've been trying to output my data plots as .png, seeing that plotting them as .pdf seems to pull the image from the graphic device, and it makes for a very "crammed" plot. However, while in .pdf the isotopes in the plot are in the correct order, in .png the function confuses the order of the isotopes. Thus, isosapce_plot_1_2.png shows isotpoes 1 and 3 like this:
michahellis_isospace_plot_1_2

isospace_plot_1_3.png plots isotopes 2 and 3 like this
michahellis_isospace_plot_1_3

and isospace_plot_2_3.png plots nothing, just produces a blank square...

I have tried adding noRStudioGD = TRUE in all the dev.new()instances in the plot_data.r function, but it doesn't work either.

Besides, I require svereal dev.off()to be able to open my .png files. I am not sure if these are problems with Rstudio or with the code, but as I am using the script version of mixsiar, using RStudio really makes my life easier...

UPDATE: I have also tried adding windows()before every dev.new()to force it to open the plots in an independent window, but the problem persists.

use means and st. devs. for mixtures?

I'm using MixSIAR to estimate food source contributions to macroinvertebrates. I was planning to run the models with functional feeding group (FFG) as a categorical covariate. Replicate data for individuals across FFGs is not good, so I have decided to not use FFG as a covariate. However, I don't want my model results to be biased by the FFG with the most individuals, so is there a way for me to enter mixture data into MixSIAR as means and standard deviations, like I would for sources? This should eliminate the bias. Thanks!

Option to Suppress Scaled Posterior Density Plots for Random Effect Levels

I am working with a large bird dataset with multiple measurements from the same individual (i.e., multiple feather samples were collected from the same individual). I am treating the individual bird as a random effect. When I process the output, MixSIAR attempts to create a scaled posterior density plot for every individual bird (i.e., every level of my random effect). I generally like this behavior, except in this case:

  1. I have over 100 individual birds and R won't open that many plotting windows, so I see the first 60 plots and then R throws up a "too many windows open" error. I would like the ability to suppress these plots for the random effect. Unchecking all of the "save plots as" boxes has no effect.

  2. [more importantly] The "too many open devices" error prevents the model summary statistics and diagnostics from being printed to the screen and it prevents the creation of the .txt summary file. I know that I can manually create this summary file from the BUGS output.

In lieu of adding the "suppress scaled posterior density plots" feature, perhaps just tweaking the code so that the command to write and print out the summary/diagnostic statistics comes before the command to print out the scaled posterior density plots.

Running MixSIAR with >2 tracers

I am trying to run the MixSIAR on CSIA of amino acid data. This means that I have 5 tracers (amino acids) to put into the model and all the TEF is set to zero, as there is no trophic fractionation with CSIA of essential amino acids.
However, when I run 2 tracers the model works. However, increasing it to 3 tracers it gives the following error:
Error: RUNTIME ERROR:
Cannot invert matrix: not positive definite

I have tried several combinations of 2 amino acids and the model runs. Therefore, it could not be the data of individual tracers itself. However, adding a 3rd tracer will result in the above error message.
Any ideas of why this is happening? Is this model built for only 2 tracers (normally C and N)?

DIC model selection and individual variation

A few questions for anyone that might have some insight.
I am interested in partitioning the variation of the population niche by sub-groups and individuals. When I include the group covariate and individual as random effects the median value for groupSD=1.04 and indSD=0.48 indicating that the majority of the variation in the population niche is attributable to the group effect as demonstrated in the wolf example from the user manual.

However, does the relative lack of support for a model, indicated by higher DIC value, that includes individual and group as random effects (Model 1) compared to a model with only the group covariate (Model 2) preclude me from making such an inference? Does this indicate that indeed individual variation is minimal and I can still make the inference that the population variation is driven by the group effect despite the model is not the "best fit" to the data? Both models have converged by the way.

Can I still make the inference regarding the relative level of variation between group and individual from Model 1 and then use Model 2 when making specific inferences for population and group diet estimates? Can I make any inference on niche variation when including only group as a random effect?

Any thoughts or comments would be appreciated
-Adam DuBour

Intra-individual variability in diet

For some of my consumers I have 1 isotopic value and for some of them I have 2 (representing two sampling moments). I am interested on knowing (1) if there is variation in the diet of individuals, and (2) diet of the population. How can I model this information with MixSIAR? Thank you very much for your help.

How to replicate MixSIR?

Hi Brian,
Thank you for your previous emails/help with MixSIAR. I have been using the script instead of the GUI, and it is great! I am just having some issues replicating a few mixing models that I originally did in MixSIR (the MATLAB one). I would like to use the best model for my data, but I want to be able to replicate what I did before so I know what is changing.

I thought the following would give me the same results that MixSIR did back in the day. I have isotope data for 5 sources across 4 sites. With MixSIR, I did the following:

Model A) Analyze all the sites together

Model B) Each site is analyzed separately (with consumers and sources only from that site)

So in the script right now I have:

Model A) Site is a random effect (in mix and sources).
NO residual error (just to try to replicate SIR-- I don't think this is realistic!). Individuals are also a random effect.

Model B) Site is a fixed effect (again no resid error).

The posteriors I'm comparing to the mixsir results from back in the day are globalP. When I run the script this way, it has totally different results than I got when I used mixsir. Are my settings for mixsiar correct?

Thanks!

obtaining alpha values for priors

Version: 2.1.2
Issue: I've been trying to find, inside MixSIAR code, a way to obtain alpha parameters. I didn't succeed, so I adapted this bit of code from the siarelicit() function in SIAR, to use the vector it produces as alpha.priors in the MixSIAR models. Can anyone confirm that it is correct to use the values obtained in MixSIAR models?

meanprops <- c(0.5, 0.2, 0.2, 0.1) #mean proportions based on prior info
propsum <- sum(meanprops) #must add to 1

sdans <- 1 #which source are we giving the SD of? (nº of position in meanprops vector)
sourcesd <- 0.05

Q <- (meanprops[sdans] * (1 - meanprops[sdans])/sourcesd^2) - 1
alphapars <- meanprops * Q
alpha <- paste(as.numeric(alphapars), collapse=", ")
print(alpha)

(meanprops[sdans] * (1 - meanprops[sdans])/sourcesd^2)  #cannot be <1

Thank you very much.

Virginia

MixSIAR density plots

Hi Brian,

Is it possible to generate density box plots, such as the 50-75-95% CI plots as per SIAR, with MIxSIAR. Although not as informative as the current MixSIAR density plots, they are easier to manipulate and present in papers etc. Also, is it possible to test for differences in resource use between groups, other than a comparison of 95% CIs.

Top work, thanks

B

obtaining SD posterior distributions.

Hi,
I'm trying to extract the posterior distributions for the SD across the 2 levels of my data. I assumed that they where in

attach.jags(jags.1
ind.sd <- ind.sig
year.sd <- fac1.sig

but since I've realised there is actually an object inside jags.1$BUGSoutput called sd with a bunch of numerical objects inside... None of them are actually a posterior, but they got me thinking. What are they? Am I using the right posteriors for the SD?

Any ideas will be much appreciated!

Virginia.

Error when including fixed effects

I am having difficulty running models with mixed effects. My most basic model for examining the variation in diet of ducklings includes the covariate "Lake" as a random effect. I'd like to add the covariate "Age Class", a factor with 4 levels, as a fixed effect. When loading my mixture file with both covariates included I get the following error message:
(Error in [.data.frame(X, , fixed_effects[i]) :
undefined columns selected).
I do not get this error message if I include both covariates as either random or fixed effects.
Has anyone else experienced the same? Any suggestions?
Thanks

Problem with reading data

Hi!

     I am trying to put my data in to MixSIAR and I can manage to get the priors graph to be produced but when I try and get the model to run I get an error message: 

Error in jags.model(model.file, data = data, inits = init.values, n.chains = n.chains, :
RUNTIME ERROR:
Compilation error on line 139.
Unknown variable frac_sig2
Either supply values for this variable with the data
or define it on the left hand side of a relation.

I am assuming its an error with the data file but I am not quite sure what.I have tried the wolves, geese and the Clacoderan sample data and they all worked. I have 19 Fatty acids, and 4 species with 6 prey that I am entering raw and no discrimination factors. What should I be seeing in the data to make these errors?

When I first started getting these errors I had included dC and dN with the model which I do have discrimination factors and concentration amounts. But I thought this might have created the errors as I didn't have values for the fatty acid discrimination factors or concentration - If I'd put 0 I presume the model would not be accounting for the error of not knowing the value. Would it work to put NAs instead? In fact can NA be used anywhere in the data?

Fixed and random effects

Hi Brian,

I'm helping someone run a script and I can't get it to run a model where they have both a random effect and a fixed effect. In the `load_mix_data' function it seems to be calculating a value for the total number of effects and then looping through these which means that it's looking for e.g. the second fixed effect in the mix data which only has one fixed effect.

Drop me a line if that's unclear.

Andrew

updates for MixSIAR manual

The file "MixSIAR GUI User Manual 1.0.pdf" requires a bit of updating.
(below sent to me by Igor Eulaers)
The manual states the following code:
source('mixsiar.r')
mixsiar()

while in fact it should be updated to:
source('mixsiar_gui.r')
mixsiar_gui()

Then the text about how error is included on fractionation / enrichment correction factors needs some editing so that it is clear that variation can be included, but only via means and standard deviations, and can't be fitted to raw data in the same way source error can be estimated. This is the discussion we recently had with Chris Harrod.

One way to consider facilitating edits to this manual is to upload the raw code for it in e.g. R-markdown *.Rmd format which is LaTeX friendly. Then we could create pull requests for proposed edits.

Combine sources a posteriori

Is there a way to combine sources a posteriori following "Process output"? I'd like to explore this option rather than a priori combination.

plotting biplots of three tracers

Hi Brian, When using the mixsiar script with a dataset that has 3 tracers, it produces a biplot of the first 2 tracers but not the third one.
Thanks!
Zou Zou

Accessing MixSIAR output (posterior chains) for plotting

Hello again Brian;

Thanks again for sending the code for the CI boxplots.

I have been trying to work through it with my own data today, and admittedly, I am rather new to R, so forgive me if this is a stupid question.

I am wondering if all the data that you are using in your plots comes out of the "summary_statistics.txt" file? In looking through the GUI directory, I can't find any other objects that look like they contain the posterior chains.

If you have any insights about where I might find the objects that you use to construct your data frames as below, I'd be super grateful.

Thanks again for your help.

kbg

Get posterior chains into one tidy data frame

attach.jags(jags.1)
post.grass <- data.frame(habitat = "Seagrass",aw = p.fac1[,1,1], bs = p.fac1[,1,2], clam = p.fac1[,1,3], crab = p.fac1[,1,4], fish = p.fac1[,1,5], snail = p.fac1[,1,6])
post.coral <- data.frame(habitat = "Coral",aw = p.fac1[,2,1], bs = p.fac1[,2,2], clam = p.fac1[,2,3], crab = p.fac1[,2,4], fish = p.fac1[,2,5], snail = p.fac1[,2,6])
grass <- post.grass %>% gather(source,value,2:7)
coral <- post.coral %>% gather(source,value,2:7)
all <- rbind(grass,coral)

MixSIAR 2.1-2.2 is not creating Isospace or Processing Output on OSX Yosemite

I am having some problems running MixSIAR 2.1-2.2 in RStudio using a Mac running OS X Yosemite. I have managed to get the MixSIAR Gui to run, but I am finding that I am unable to generate an isospace or process the output. I have received a number of different errors but they all appear to be related to plotting functions. For example when I run the Wolves example described in the MixSIAR Gui manual, I receive the following error after clicking Make isospace plot.

Error: Incompatible lengths for set aesthetics: size, linetype 

Then after running the model, which appears to run and clicking Process output I receive the error.

Error in print(xyplot(as.mcmc(p.global), strip = strip.custom(factor.levels = source_names))) : 
  could not find function "xyplot"

changing order of sources

Version: 2.1.2
This issue is related to #15

Issue: I've come to realise that in the source list that MixSIAR creates, the sources are ordered alphabetically, regardless of what order they where in the original data. Does that mean that, when using alpha parameters as priors, I have to enter the proportions of the sources in the alphabetical order, or in the order the original data was (were?)?

To clarify: my sources.csv had the sources ordered like this: 1Marine, 2Freshwater, 3Terrestrial, 4Refuse, but source$sourcenames[1] returns Freshwater, source$sourcenames[2] returns Marine, and so on.

My question is, how do I order the alpha parameters in the model
run_model(... ..., alpha.prior = alpha.parameters)?

Thank you!

Error message in load source data

I am having difficulty running models with mixed effects for “Lake” and “Palmyra” examples.
When I try to load “source data”, it always shows an error message as “Error in colVars(x, ...) : Argument 'x' must be a matrix or a vector.”
Can you tell me how to solve this problem.

LanFeng

5% and 25% quantiles swapped in summary stats

From Jason Waite:

I discovered a bug in the “output_JAGS.R” script that causes the 5% and 25% quintiles for all of the non-global parameters to be swapped. The issue occurs when the cast() function is applied to the melted data array, as in the following line (and in 2 other similar lines):

fac1_quants <- as.matrix(cast(melt(round(apply(p.fac1,c(2,3),getQuant),3)),X3+X2~X1)[,-c(1,2)])

If you step through this line step-by-step, you will notice that the sorting of the quintiles switches from numeric (2.5, 5, 25, 50, 75, 95, 97.5) to something different (2.5, 25, 5, 50, 75, 95, 97.5).

Error with MixSIAR in MacYosemite

After a bit of an ordeal I managed to install rjags and R2jags to work fine in Yosemite. Now when I call MixSIAR I get this...

Error in grid.Call(L_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
invalid multibyte string at '<83>0)'

Is there a way of correcting this???

I am running R 3.0.3

Thanks!

Results from MixSiar working examples do not match

Hi,

I installed the MixSiar in my computer a week ago and started to practice the working examples. The model runs, everything is fine, however the results I´ve got from it were slightly different compared to those shown in the manual (wolves example, zooplankton example...)...I reinstalled all of it again, double checked the inputs data and variables but it still gives results a little bit different from what it´s expected. Not feeling confortable to run my own data under this situation. Did anyone had similar problems and could help me, please?

Problems loading data

I have just loaded GUI MixSIAR on my Mac OSX 10.11.1, R 3.2.2 fire Safety and started to practise with the wolves sample data and got warnings at the end of this message (although Brian answered in an email that he also gets warnings).

I carried on at first as I was able to load some of the data i.e. the Discrimination data but not the source data (a blank box) and the mixture data appeared to work but no tick - however when I went back through it to check if I did everything correctly I saw that I didn't get the option box to tick nested/hierarchical.

I tried

mixsiar$mix
NULL

Thanks in advance for your help!

(R:1199): Gtk-WARNING **: Attempting to set the permissions of `/Users/sharonevery1/.local/share/recently-used.xbel', but failed: No such file or directory
Error in if (n.re == 2 & fac_nested[2]) { :
missing value where TRUE/FALSE needed
Error in if (n.effects > 0) { : argument is of length zero

(R:1199): Gtk-WARNING **: Attempting to store changes into `/Users/XXX/.local/share/recently-used.xbel', but failed: Failed to create file '/Users/1/.local/share/recently-used.xbel.MS137X': No such file or directory

(R:1199): Gtk-WARNING **: Attempting to set the permissions of `/Users/xxx1/.local/share/recently-used.xbel', but failed: No such file or directory
Error in if (n.effects > 0) { : argument is of length zero the warning below

Fixed effects report in summary stats

There is no "global" population with a fixed effects model - the group effects are estimated separately. In the MixSIAR code, ilr.fac1[1,src] is set to 0, which means the first level of the fixed effect IS the "global" population and all other levels are deviations from that. Need to remove the "p.global" variables from the summary stats report in the case of a fixed effect.

Working with single data

Hi! I wanted to know if is it possible to work with single data in the MixSIAR_script with priors (preferably) or in MIxSIAR.
SIAR has a special command named siarsolomcmcv4 for this purpose. Is it the same in this case when we run the model?

Error message using SIAR

I have getting the error message "Error in siarmcmcdirichletv4(RBT.NT.pred, RBT.NT.prey, RBT.NTdisc, concdep = 0, : NAs in foreign function call (arg 5)" when I run SIAR with one of my datasets (this is rainbow trout diet to be specific).

I've examined the data every which way and everything looks fine. The model runs perfectly for another fish species, but it just won't for this one. Has anyone else had this issue before? Looking for helpful advice and suggestions...

Megan

More information about MCMC

Hi,
I'm using MixSIAR v. 2.1.2, and I am wondering what the values are for specific parameters when you choose an MCMC run length. For example, if I choose MCMC run length of "normal," what does this mean with respect to the number of chains, number of iterations, and burnin period?
I could not find this information in summary statistics or in diagnostics. Does anyone know where to find this information?
Thank you,
Mikey

Licence

What's the licence for MixSIAR?

Interpreting posterior density

Hello All,
I had a few questions for any of the MixSIAR administrators or users regarding the interpretation of the posterior density plots.
For the plot showing global population diet proportions the Y-axis shows the "posterior density". Does this value correspond to a posterior probability for a particular source's diet proportion? For example if the distributions for sources "A" and "B" peak at 4 and 2 respectively, does that imply that there is a higher posterior probability that the mean diet proportion for source "A" is correct? Also, please correct me if I am wrong but I believe that the width of the distributions correspond to the quantiles in the summary statistics.
Finally, how would one then interpret the "scaled posterior density" found on the plots for diet proportion by the covariates in the model?
Thank you,
Adam

Update manual

  • New examples: fixed effect (#7), one iso (#13), informative prior (killer whale).
  • Changes to GUI
  • Scripted version
  • Accessing jags output manually (code, examples)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.