Giter Club home page Giter Club logo

primacy_demo's Introduction

Primacy GUI

GUI front end for the massively-multiplexed pathogen detection pipeline Primacy

Installing

Dependencies

Install Conda, and follow the Primacy install instructions. Ensure that Primacy is added to your path.

Binaries

Binaries for Linux, OSX, and Windows are available for download from the releases page.

Cloning

To clone and run this repository you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
git clone https://github.com/PathLabs/primacy_demo

# Go into the repository
cd primacy_demo

# Install dependencies
make install

# Run the app
make start

# Clean the node_modules
make clean

Documentation

Docs are available via JSDoc. To create documentation, follow the instructions for cloning the repo and execute:

npm run docs

HTML docs will then be available for viewing in the docs directory

Contributors

Acknowledgements

primacy_demo's People

Contributors

skate54345 avatar chance-nelson avatar turanoo avatar alex-lacy avatar ian-otto avatar

Stargazers

 avatar  avatar

Watchers

James Cloos avatar  avatar  avatar  avatar

primacy_demo's Issues

Create Parameters for the Data Input Tabs

Construct a document outlining the parameters for the first two tabs. This will be used to construct GUI elements, which will be passed to input validation, and then passed to the final graphics tab.

Target Region Picker on Module 1 overflows

Describe the bug
Target region picker on module 1 overflows in a non-sane way.

Expected behavior
On population, target region picker boxes should be spawned on their own rows, with overflow wither truncated or scroll-able.

Screenshots
Example

Add copy/paste support to viz 1

Add the ability to take any selected sequence, and create a search string that can be used in module 1. The current spec of the search in module 1 allows for either labels, or FASTA sequences depicting the target region of any given target region identifier. Multiple independent searches can be conducted from a single string by separating each query with a semicolon. For example:

some label;another label;ATGCGCCG

Add functionality to Viz 1 to copy a valid search string to the clipboard, either through a button or an interceptor of the window's close event.

Redesign Module 1 Layout

Is your feature request related to a problem? Please describe.
Redesign the Module 1 layout, such that the target sequences take up the entire screen, with an expandable side menu that contains the PCR salt inputs, and the background sequence picker.

Add button for executing and viewing viz to module 2

Add a new button to module 2 and sends an EXECUTE IPC message, then subsequently sends a LOADVIZ message with the correct viz argument of 2. Also, refactor the current 'next module' button to simply send a LOADMODULE IPC message.

Model this after the current setup for module 1.

Finish IPC for module 2

Module 2 requires a completed set of senders and listeners for IPC events. This includes:

  1. NEW: bootstrap the page based off of the current state
  2. EXECUTE: Request an execution of Primacy. Assume that primacy is in the path, so it will be something like primacy <whatever phase>
  3. LOADMODULE and LOADVIZ: Request the loading of either the next module, or the visualization, if applicable.

Add input validation to Module 1 target sequences

Is your feature request related to a problem? Please describe.
Add the requested input validations for the target sequence list in Module 1:

The range must be bounded by the size of the provided sequence and should provide enough sequence (greater than 50 nucleotides) on both sides of the target region. Start should be less than end. There must be a target region for each sequence and it should include at least one nucleotide.

Visualization Popups

Add logic to main.js for the creation of sub windows for viewing the Module 1 and 3 visualizations.

ReDo Module 1 Target Region Picker Design

Is your feature request related to a problem? Please describe.
The current Target Region Picker design is not effective.

Describe the solution you'd like
Region pickers should consist of:

  1. A title
  2. An editable text box, containing the actual sequence
  3. Two text boxes, denoting the start and end of the critical FASTA subsequence

Windows launch error

JS error in main process on windows launch. This likely has to do with the file paths using backslashes instead of regular slashes when a directory is attempted to be made.

image

Add Fade between Tab Select

It may be a good idea to add a fade in/out in CSS for tab selection, as of right now it's just a snap to black, then to the next tab.

@skate54345, is this doable?

Update Help Menu Documentation Links

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Once GitHub documentation is finalized, update the URL to the correct path
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Add icons during packaging process

Is your feature request related to a problem? Please describe.
Logo shows default electron app symbol

Describe the solution you'd like
use .ico file in img as favicon for all available operating systems, convert .png in img as needed for application logo

Additional context
Must be done during packaging process from what I can tell

BUG: FASTA file uploader doesn't display selected file name

Describe the bug
FASTA file uploader does not show what file is selected.

To Reproduce
Steps to reproduce the behavior:

  1. Select a File to Bulk Upload

Expected behavior
Should show the name of the file uploaded and change when the file upload is changed.

Redesign Back End State Tracking to Work with Module Outputs

Is your feature request related to a problem? Please describe.
The back end currently tracks state via an array of arguments from the front end, and an array of return JSON from the pipeline. This will not work with Tara's implementation, as all JSON must be together in a single file.

Describe the solution you'd like
Redesign main.js state tracking system.

Ensure the User does not Leave a Module with Work on it

Is your feature request related to a problem? Please describe.
When a user edits a module, they can jump back to previous one and lose any work they have done in the current one. For example, if a user edits inputs on module 2, jumps to module 1, then goes back to module 2, their work will be gone.

Describe the solution you'd like
When leaving a module without submitting, ask the user if they really would like to leave and lose their work.

Add Save/Load States

Add the ability to export the current pipeline state to a file, and be able to import said file

Create Visualization Scheme for Module 2

Is your feature request related to a problem? Please describe.
The output of module 1 needs to be listed in a visually pleasing way, in order to select primers for further work in module 2.

Describe the solution you'd like
Utilize chart.js to create some sort of visualization, that users can interact with and narrow down the list of primers for use in module 2.

loadURL is null after soft close

Describe the bug
When the main window is exited and the dialog box asking if you are sure is cancelled, loading other tabs throws an exception and the URL for each page are set to null

Finish IPC for module 3

Module 3 requires a completed set of senders and listeners for IPC events. This includes:

  1. NEW: bootstrap the page based off of the current state
  2. EXECUTE: Request an execution of Primacy. Assume that primacy is in the path, so it will be something like primacy <whatever phase>
  3. LOADMODULE and LOADVIZ: Request the loading of either the next module, or the visualization, if applicable.

Redesign Module 1 to Allow For Large Amounts of Target Region Identifiers

Is your feature request related to a problem? Please describe.
The current design of module 1 does not play nice with over 5 target region identifier boxes.

Describe the solution you'd like
Move the list of target region identifiers to a separate column, taking up at least half of the screen.

Add search functionality to Module 1

Is your feature request related to a problem? Please describe.
The current viz solution makes reconfiguring module 1 target sequences difficult

Describe the solution you'd like
Add a search bar, that can accept either labels or FASTA subsequences, that upon entering will highlight any target regions that contain those values.

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.