Giter Site home page Giter Site logo

ecojulia / diversity.jl Goto Github PK

View Code? Open in Web Editor NEW
33.0 5.0 9.0 2.08 MB

Julia package for diversity measurement

License: BSD 2-Clause "Simplified" License

Julia 100.00%
julia diversity-measurement partitioning-diversity biodiversity phylogenetic-diversity ecology

diversity.jl's People

Contributors

claireh93 avatar github-actions[bot] avatar michaelhatherly avatar mkborregaard avatar peetoomheida avatar richardreeve avatar staticfloat avatar tkelman 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

Watchers

 avatar  avatar  avatar  avatar  avatar

diversity.jl's Issues

Improving documentation

I am trying to read through the documentation to understand how to use this package. I am impressed with the overall coverage of possible analyses that someone might want to run, however I think that the package is designed in a fairly opinionated manner/with a specific paradigm in mind, this is not a problem per se, but without more explicit documentation to hold the hands of new users, I think it is a very steep learning curve. I am coming from R's vegan, and am having a hard time figuring out what some of the options available are for, or how they relate to real world datasets. I am happy to help try to flesh out some of the documentation. I think the first part would be to give better examples of different Metacommunity constructions and to show how partitions can affect the output from various diversity functions. Additionally, I think adding a more explicit description of how to conceptualize "order" in the package and in general would go a long way towards improving the user experience for new users or those coming from vegan.

Phylogenetic diversity

Now that BioJulia is progressing, we should use it to create phylogenetic and genetic diversity measures.

Inconsistent output when measuring diversity

Measuring a single diversity of a supercommunity generates a number, vector or matrix, depending on what is being measured. Furthermore, measuring several diversities simultaneously generates a vector of these. We need a common output format for all diversity measurements, and the most sensible is a DataFrame for now.

  • Decide on a standard output for diversity calculations
  • Implement for individual inddiv() calculations along with tests
  • Implement for individual subdiv() calculations along with tests
  • Implement for individual metadiv() calculations along with tests
  • Implement for diversity()
  • Ecology.jl
  • Jost.jl
  • Hill.jl

Multiple diversity measures in an output...

We need a way of saying what diversity was just calculated so we can combine multiple outputs in a single dataframe. In particular, handle multiple phylogenies, calculating diversity for each...

Need to create genetic diversity measures

I'm splitting this off from the joint issue #5, which is now just about the phylogenetic work and is now ready to release.

  • Choose which framework to use for genetic work - presumably from BioJulia
  • Adapt framework as necessary to provide necessary information for diversity calculations.
  • Code to generate Z matrix from sequence data
  • Basic testing code
  • More advanced testing code using RCall and boydorr/rdiversity

Every diversity function has to handle every input type

At the moment, every input type (populations and similarity matrix, but also genetic sequence data and phylogenies, etc) has to be interpretable by every diversity function. This is not sustainable. Instead, we need to create an intermediate class type that anything can handle:

  • Create a new similarity branch for this work (to handle any kind of similarity)
  • Create a Partition type to hold subcommunity relative abundances
  • Write tests
  • Create a Similarity type to hold similarity values
  • Write tests
  • Create a Supercommunity type to hold all of this information
  • Write tests
  • Cache ordinariness in Supercommunity type
  • Write tests
  • Write functions to calculate alpha/beta/gamma diversities of a Supercommunity
  • Write tests
  • Write functions to calculate sub- and super-community diversities of alpha/beta/gamma values
  • Write tests
  • rewrite existing code to use these functions instead of separate code
  • Deprecate redundant functionality

A common base for SpatialEcology.jl, Diversity.jl and Microbiome.jl?

I'm not sure if this is the best place to start, but I've been following the conversation on BioJulia/Phylogenies.jl#1 and I thought it might be worth starting a conversation (inspired by @mkborregaard 's comment somewhere... maybe discourse?) about moving some of the functionality I've been developing in Microbiome.jl to a more generic package. My hope for that package is ultimately to be a sort of wrapper around functionality pulled in from a lot of other places.

Anyway, I implemented principal coordinate analysis using a distance matrix as input, as well as some plot recipes to make them pretty. Would this be the right package to add them in to? Happy to go with a different implementation than I have, I just wrote what worked for me at the time.

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

boydorr/rdiversity cross-comparison

We should be cross-checking R against julia to confirm the codebases agree:

  • Set up RCall interface and testing on my machine for standard tests
  • Get RCall interface and testing working on travis and / or appveyor
  • Test for outliers - empty types, empty subcommunities
  • Standardise dataframe column names in output
  • Once phylogenetic work is implemented (#5), validate against rdiversity

Ways of iterating through a metacommunity?

There should be some way of iterating over the subcommunities to calculate diversity for arbitrary structures irrespective of representation, but that should also allow us to extend the diversity measures so that we can iterate over species or communities in a supercommunity, or supercommunities in a metacommunity, etc.

  • allow iteration over subcommunities in a metacommunity.
  • test that iteration works.
  • strategy for iteration over species?
  • code and tests for iterating over species.

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.