Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototype description (MVP) #5

Open
8 tasks
krassowski opened this issue Oct 4, 2021 · 2 comments
Open
8 tasks

Prototype description (MVP) #5

krassowski opened this issue Oct 4, 2021 · 2 comments

Comments

@krassowski
Copy link
Collaborator

A quick write up to describe the process that should be possible to follow in an ideal MVP:

  1. User should be able to visit a website without the need to login anywhere (low barrier of entry)
  2. User should be able to provide an URL to a GitHub/Lab repository with a single paste and click
  3. The code from the repository should be downloaded (onto the server OR into the users browser - needs decision) subject to reasonable size restrictions
  4. Any R markdown and Jupyter notebooks would be converted to a file to allow for simplified processing using readily available tools (nbconvert/jupytext)
  5. A directed acyclic graph (if possible, or network otherwise) would be created by static analysis of the code, searching for known expressions indicating file import/export across R and Python files; the toolset needed for this needs more exploration and discussion
  6. The network data would be sent to client to create a visualisation; a an algorithm to place the nodes in potentially complex DAGs needs to be chosen; I previously experimented with dagreD3 longest-path/finetop and graphviz. Apparently there is a recent progress in making it better: https://twitter.com/keenanisalive/status/1422318437590872076
  7. The user should be able to annotate the visualisation by linking it to the relevant sections of the publication, or adding other comments; the annotations should be exportable to a (JSON/yaml) file with a specific name (to be decided), which can be added to the repository to make these parameters apply by default
  8. The user should be able to download a static snapshot (e.g SVG) and maybe even an interactive version of the visualisation

Please feel free to work on any of the points by: researching, bouncing ideas, and drafting protocols, code/pseudo-code. If you would like to, please feel welcome to open a new issue asking questions and let's start narrowing down the implementation details.

@mstimberg
Copy link

User should be able to provide an URL to a GitHub/Lab repository with a single paste and click

Random thought: maybe even nicer would be if the user can give the doi or link to a publication and the tools finds the link to the github repository in the text itself :)

@krassowski
Copy link
Collaborator Author

That should be doable with Entrez API (for scanning full-text when available) and doi.org application/vnd.citationstyles.csl+json API (for fetching abstracts and metadata) example query.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants