shintoo / darwin Goto Github PK
View Code? Open in Web Editor NEWPhylogenetic tree builder and explorer
Home Page: https://darwintree.app
Phylogenetic tree builder and explorer
Home Page: https://darwintree.app
E.g. if the tree is:
Then there should be a button for the class Aves node that expands the tree into:
By doing something like the following:
function expand(node):
for each child of node:
addNode(child.ancestors.indexOf(node.id) - 1)) # Add the next lowest ancestor (e.g. pass. or cora.)
This will allow users of shintoo/darwin-browser-extension to import any arbitrary iNaturalist observation search into Darwin.
Could be done by just adding a route that passes the query straight to the iNat fetch
For example if you are on this page, which is the iNaturalist search results for observations of birds made in the past year at Mead Botanical Gardens, Darwin's iNat query route should be able to take the same URL params as iNaturalist is and fetch the same observations. In short https://www.inaturalist.org/observations?foo=3&bar=5...
should map to https://darwintree.app/b/iq?foo=1&bar=5...
Currently, "No photo" is displayed if a taxon has no iNaturalist-provided image. Instead of "No photo", display the icon for the taxon's iconic taxon.
Images can be found here.
Instead of using the taxon image as per usual, use the 'square' version of the observation's actual image when loading a tree using the iNat button (/inat/[user]-[count]
route)
The user should be able to annotate nodes (maybe branches?)
Or, the user can simply annotate the canvas, and it moves as the canvas is panned around; the only issue there being when the tree is updated, the annotation would not automatically move to where it should be (e.g. if Passeriformes is annotated, then a node addition moves that node on the canvas, the annotation would now know to follow the Passeriformes node)
And for that reason - I am more in favor of simply annotating nodes.
(This probably depends on Canvas clicks being fixed)
Create taxa not in the iNat API for Archaea, Bacteria, Eukarya, and assign the kingdoms to each by inserting the correct domain in a taxon's ancestor ID list
It's 2021
Hi there, I don't have a problem or question, but wanted to say this looks like a super cool project!
It's also worth mentioning there are some other developers of "fanmade" iNaturalist-related projects who hang out on the Discord server here: https://discord.gg/uskv2yx It might be worth showing off Darwin there, maybe in the 'research and tech' channel, and also on the iNat forums if you haven't already.
There's also this server, mainly for chat about development of an iNat Discord bot, but also stuff about the iNat API in general: https://discord.gg/pUbZFDbDdD I think a couple others there also work with the eBird API.
Preliminary to the mobile implementation, have a mobile home page saying it is only available on desktop
Clicking on a button on the canvas can cause multiple click events. Fixing this would allow for buttons that do more interesting things, such as opening the wikipedia page for a taxon, or the iNat observation page for an observation's taxon.
Multi-part issue!
1.Fix repeated taxa being loaded during infinite scroll loading, e.g. on the default query view, if you keep scrolling, you will see the first taxa repeat (Aves stands out)
2. Cancel a pending scroll query when a taxon card is clicked or new query is made:
If you scroll and then click on a taxon card before the new results load, the taxon's children will load but then be replaced with the taxa pulled from the scroll's query
Things to maybe implement:
Show delete button on non-leaf nodes, and on click show confirmation button then delete the whole subtree.
Currently, we load the iNat images and taxon IDs when loading an iNat tree, and then load taxon data using the iNat taxon endpoint for each ID. The taxon data is already provided in the original response used to get the observations, use this instead of the taxon endpoint. This will make iNat tree loading use only 1 iNat API call.
Current:
observations = getObservations(query)
for obs in observations:
taxon = getTaxon(obs.id)
addNode(taxon, obs.photo)
Should be:
observations = getObservations(query)
for obs in observations:
addNode(obs.taxon, obs.photo)
Just need to pass more data from the initial call to the builder props, rather than just the IDs and photos.
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.