GithubHelp home page GithubHelp logo

oluwadarelab / robin Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 104.4 MB

JavaScript 26.75% HTML 41.59% CSS 6.20% TypeScript 13.13% Shell 2.82% R 3.93% Python 0.14% SCSS 4.75% Jupyter Notebook 0.70%

robin's Introduction

start cmd

    docker compose up

old readme

to start the robin docker docker run -it -v $(pwd):$(pwd) -w $(pwd) -p 8086:8086 -p 8889:8888 robin

to run the api:

docker run --detach
--publish 8888:80
--volume ~/hg-data:/data
--volume ~/hg-tmp:/tmp
--name higlass-container
higlass/higlass-docker npm run start-api-worker

Note: this will be fixed when I care enough to fix it. but for now running 3 more commands to set up npm is not bad.

I had to rewrite a significant chunk of higlass to get it to run with react 18, as such it is included as part of the project rather than a module. it has its own dependancies and you need to run npm clean-install from inside /src/higlass to install its dependancies it is included as a submodule, run git submodule update --init --recursive the first time you clone the repo to clone it.
then just git submodule update --recursive --remote

Note: this project uses craco to override a few webpack configs of create react app. find them in craco.config.js,
webpack.config.js and tsconfig.json are not used execpt for react style guidist doc generation

For higlass to interact with our data we need to first upload it to the higlass server, thus we can start a higlass server with docker pull higlass/higlass-docker # Ensure that you have the latest. docker run --detach
--publish 8888:80
--volume ~/hg-data:/storage/store/Robin_ComprehensiveLoopCaller/data/higlassTracks/
--volume ~/hg-tmp:/storage/store/Robin_ComprehensiveLoopCaller/data/higlassTempData/
--name higlass-container
higlass/higlass-docker or my provided startHiglassserver.sh script in this folder

to upload a track

first check if its there: docker exec higlass-container ls /tmp

then upload it docker exec higlass-container python higlass-server/manage.py ingest_tileset --filename /tmp/test.txt --filetype vector --datatype vector

higlass-manage ingest --filetype vector --datatype vector ./test.txt

robin's People

Contributors

mattiefm avatar

Watchers

 avatar

robin's Issues

Overlap resolution selection collides/overlaps with dropdown menu

Description:
image
on the overlap page, the resolution dropdown will display under the "select tools to visualize" active selections it should display on top.

Reproduction Steps:
1: goto a job (Ex: http://biomlearn.uccs.edu/robin/results/14)
2: goto overlap tab
3: select a few tools from the list
4: open the dropdown.
5: observe the overlap occuring.

Expected behaviour:
Dropdown should be on top of the things below it when it opens so that the use can see all options and select easily.

Actual behaviour:
the dropdown is below active elements.

Overlap does not have a default selection

Description
image
When the user loads into the overlap page, as shown above, it appears as though nothing is there, it should by default select a resolution and a diagram so that the user does not think it is not working.

Reproduction steps:
1: goto a job (ex:http://biomlearn.uccs.edu/robin/results/14)
2: click the overlap tab
3: notice there is no default resolution selected
4: notice there is no default chart displayed

Expected behavior:
both resolution AND the displayed chart should have defaults that load when the page is loaded.

(optional) Ideally save the last selected graph from the user in cookies, this is not hard, but also not needed.

Actual Behaviour:
neither resolution nor chart display render a non empty default state.

[bug] higlass need to be reloaded a lot

description: higlass a lot of the time will not load untill the user presses "reload higlass" and then clicks back to the highglass tab

reproduction step:
1: load a job
2: click on high glass
3: click off high glass and reload the page
4: click back onto highglass
5: wait 30sec atleast
6: observe higlass has not loaded
7: click reload higlass
8: tab back over to higlass
9: it should be loaded again

notes: I think this is due to higlass being ment to cache results and use cookies, but this was broken in the fork I made porting the higlass repo to our version of react.

[Feature Request] Higlass optional toggle

description. Since higlass is somewhat heavy, we should give the users an option to disable it all together if they do not need it for their project, since this will save us some compute time for those who do not need higlass.

Add a toggle button, with a default "ON" state, in the job creation page IE: oneStepJobCreationPage.tsx

[MVP Feature] Fix logo

description: the logo for the browser tab does not load correctly

The already converted .ico file can be found in /src/public and the index.html is also there

[MVP Feature] higlass optionally allow user to upload new matrix files

Description:
A user should be able to upload their own matrix file to our server and injest into higlass, note: these files are very large so we will only cache them for a short time before deleting them. Discorage the user from using this option and ensure they know to use it as only a last resort if higlass's api does not have ANY data that would work for them

ONLY .cool files allowed. since higlass's clodious data prep script only has multithreading for injesting cool files we will only allow cool file uploads to reduce processing time.

[User Story] upload page cookies to keep track when user leaves without submitting

Overview: If a user leaves the upload page or accidently reloads or loses connection they should not have to reenter all their info

Story:
As a user, when uploading my data to the upload page, when I have to reload the page or get disconnected for any reason then when I come back to the page my data should still be there

Good path:
Given: the user has filled out some of the upload form
When:
1: the user reloads the page
2: the data should still be there

Dev Notes (Mattie):
I implmented about half of this solution inside of the oneStepUploadPage:

// //these are all wrapped with try catches since we are just checking if the data

most of the cookie side of things is done, but the components themselves seem to not read inital state from the props pased, it looks like they only pass their values back up to the prop callbacks rather than 2 way.

[MVP Feature] About page

description: the about page needs to be finished.

you can find it here: https://github.com/OluwadareLab/Robin/blob/main/src/pages/aboutPage.tsx
I already set up paths for you so all you need to do is fill out that page.

if you need custom css, create a css file in the pages folder like
/src/pages/aboutPage.css

then inside the page add

import "./aboutPage.css"

and that page will have the css for it isolated to that page not effecting anything else in the site.

The site uses React-Bootstrap, so if you are using boostrap components use their react-bootstrap alternative.
The components you most likely need are:

import { Container, Row, Col, Form, Button, Card, Collapse, Accordion, AccordionBody, NavLink, AccordionItem } from 'react-bootstrap';

<>
<Container>
<Row>
  Row 1
  <Col>
    col 1
  </Col>
  <Col>
    col 2
  </Col>
</Row>
//this is a horisonal rule to just make things look nicer if you want
<hr/>
<Row>
  row 2
</Row>
</Container>
</>

if you choose to use accordians to make collapsable sections see:https://github.com/OluwadareLab/Robin/blob/main/src/components/aiAssistant/aiInstructions.tsx
for an example of how to use them.

Then if you want the format I use for headers on the site you can either import

import { InstructionHeader } from '../misc/instructionHeader';

<InstructionHeader title="your title"/>

If you need to use markdown you may do the following:

import Markdown from 'react-markdown'

<Markdown>
 {`
## Your markdown here as a string

This is all markdown here

`}
</Markdown>

[Bug] Overlap Missing combinations issue

Description: On the overlap page of large jobs soon after they complete, there will be missing combinations that do not display.

Reproduction steps:
1; create a large job, I used 11 tools with 4 res each
2: wait for it to complete
3: once completed quickly veiw the overlap tab
4: click on combinations of tools till one shows the error that I coded for this senerio.

Notes: there are multiple reasons why this could occur. Either the job is not actuall correctly saying when its done and there are still some scripts running, if this is the case it is likely that it is waiting for all scripts to start before saying the job is done, so the last 50 scripts will still be running if this is the case.
The other case is that we send a ton of info in the same api call since its all bundled together, and there could be a network issue of some kind.

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.