Giter Site home page Giter Site logo

uoa-eresearch / edna Goto Github PK

View Code? Open in Web Editor NEW
4.0 14.0 1.0 20.86 MB

Heatmap system to geographically display eDNA (Environmental DNA) data from New Zealand

Home Page: https://uoa-eresearch.github.io/eDNA/

License: MIT License

JavaScript 77.49% CSS 2.36% TypeScript 20.15%

edna's Introduction

Biological Heritage National Science Challenge eDNA Virtual Hub Project

Goal of this pilot project is to produce a working example of a visualization system used to geographically display eDNA data from New Zealand. The display is, by default, a scalable grid of NZ, with samples falling into bins based on their latitude/longitude. The bins display as a heat map based on abundance. This will toggle between a sample view (where each sample contributes a count of one to the heat map), and a species view (where the heat map is made by summing abundances of all species). These heat map visualizations can be sub-selected by search functions of the metadata. Ultimately, it should be possible to sub-select any combination of metadata, but for the pilot this can just be some simple examples (e.g. elevation, basic environment type). This may also include some broad taxonomic divisions selectable as clickboxes (e.g. bacteria/archaea/animals/plants/fungi/protists). The species view should have a toggle between normalizing the heat-map to the number of samples from that grid bin, or not.

Clicking on a grid point (or hovering) brings up a list of all samples present in that grid point (or that fit the search criteria). In addition, perhaps as an active window alongside the map view, summary metrics of samples, either from clicking a grid point or sub-selecting the data, compared to all the data will be displayed. This is using the metric displays being developed by Andrew Dopheide (Biological Heritage National Science Challenge/Landcare Research).

For the pilot this is will be done from datasheets supplied, although ultimately the underlying data will come from a database being developed by us.

edna's People

Contributors

warrickct avatar neon-ninja avatar

Stargazers

 avatar Ethan Crann avatar  avatar Grahame Bowland avatar

Watchers

Martin avatar James Cloos avatar Sam Kavanagh avatar Jason He avatar  avatar  avatar Marcus avatar Cameron McLean avatar Prashant Gupta avatar Manish Kukreja avatar  avatar Julius Karl Macrohon avatar  avatar  avatar

Forkers

diksha1621

edna's Issues

performance

Not needed yet but if performance gets too slow:

  • compress the abundance response to send one set of sample context columns to remove the need for headers on every site included.

  • even further: send colours of the boxes for the grid cells only + the coordinates - load everything as it's needed.

Otu name lookups using otu pk failing sometimes

  • I think this is due to filling the otu lookup via paginated results (50) whereas sample otu requests get as many ids as corresponds to a query (can include more than the 50 otus stored).
  • Need to populate otu lookup table using sample otu requests I think.

Name search issues

Hi Warrick,
Here are some problems I've had when trying to search for taxon names. If I type in a name, it doesn't autocomplete like it used to do. That means that you have to actually scroll to the name, and don't have any obvious way of knowing whether that name is present or not (only tried this in the genus and species fields).
If I do select a name, the fields above (higher taxonomic levels) are restricted to those that contain whatever I selected (eg. that genus). This is cool, but not always useful, so it would be good to have the option to turn this on or off (off meaning you can select any name from the higher taxonomic rank).
Finally, the display is buggy, in that if I end up not selecting something or try to delete the selection, I can't get rid of the drop-down box to leave it blank/see the other fields. I've attached a screenshot that might help explain what I mean.
A-
Screen Shot 2019-10-10 at 10 03 18 AM

add sidebar

Look into combine panels into a tabulated sidebar.

Dynamically request missing otu names when loading popup content.

Currently taxonomic names are incrementally cached from otu filter suggestion results but selecting a grid cell requires all taxonomic names within that region including ones that have yet to be received by filter suggestion API. (e.g. when first 50 archaea names cached then clicking on a cell with 200 archaea species there will be at least 150 missing names.)

Solution: When a cell is clicked, calculate missing names, request the missing names then generate the popup content.

Colour circles by year

Colour the plot circles by year. Currently contextual fields is just a string in the database which will need to be changed.

re-implement cascading suggestions

Can no longer easily search for all fungi/etc as there's no option to search the parent of an otu entry. i.e. need one less level specificity to search a whole category.

Change d3 plot sizing.

Two ideas:

1

  • scale circles so they should overlap less.
  • magnify the hovered region so you can view the different plots in detail.

2

  • increase the size and add a scrollbar

taxonomic select initialization and contextual select initialization both call filter suggestions api.

Both dropdowns both call the filter suggestions api for their initial suggestion data but the API returns both contextual and taxonomic suggests (as filter suggestion api was originally created for a singular search filter). Either separate the API for taxonomic suggestions and contextual suggestions or call for the suggestions on page load once and pass the corresponding data to the select bars.

Remove unused functions.

No longer using the old filtering and calculating functions so they can be removed.
Note: Need to rewrite the dropdown for the graph before this can be done as some of the d3 code relies on the dropdown (which relies on the old caulcating functions.)

Get missing otus from a search result.

  • Currently the taxonomic lookup table is populated by filter option API responses. These responses are paginated (limit 50 results) whereas the abundances are not so there are sometime incompatible with otu entries in the lookup table.

  • Need to get the missing ids then use them as a set to query the server then populate the popup content.

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.