maxplanck-ie/parkour2

Future requests

WardDeb opened this issue ยท 7 comments

The idea here is to gather all 'future requests' & enhancements. Not all of them have to be incorporated necessarily, this is more of a 'brainstorm' area / place to gather all ideas.

NGS

  • Runs-Statistics has >=Q30% fields for R1 & R2, I1 & I2 should be options as well
  • sampleSheet generated by parkour (csv files shipped with bcl files) seems 'cleaned' (e.g. " ' " are stripped), though with API call they are not.
  • 'flowcell builder' that maximises hamming distances with projects to be pooled. Idea is that if a combination has a minimum hamming distance < 3, an 'orange light' would be raised.
  • Once in a while, requests to pool single index (P5 == UMI) library w/ dual index libraries come up. Danger for index hopping but needs to be allowed in parkour ?
  • RELACS / scATAC have multiple barcodes / sample. We need 2-3 levels. We still want 2 sample sheets. Grouping/splitting.

Longreads

  • keep track what is illumina and what is nanopore
  • within nanopore, keep track what is 'simplex' and 'duplex'
  • Allow samples to have 'no index' (empty field), only for nanopore runs (see first point).
  • Something regarding R10. Ability to push relevant data.
  • pull data directly from sequencing platform using MinKNOW-generated API token, example

User Experience & Interface

  • ask whether project data should be submitted to galaxy.eu - only applicable for external users (MEDEP)
  • CSV upload of i5/ i7 indexes...
  • sample submission through spreadsheet file upload
  • Grant all Group Leaders (is_pi=True) accounts read access to all of their sequencing requests (matching user pi__name/ request__endswith). Useful because users (e.g. postdoc student) leave frequently.
  • Archival of old loaded data (e.g. hiding past cost units)
  • BUG Obsolete read length is the only one working, what's the bug with indexes? btw, this is not a bool, 1=False / 2=True (see tail -2 wui/settings/base.py and check this implementation)
  • See pptx from 9 aug. Last slide lists params that need revision (e.g. remove RQN, change size in bp to a discrete range instead of integers, etc). (== Reorganize fields on sample submission tab)
  • new template for the library preparation module
  • ux development: upgrade extjs? try community version? change to iommi? or svelte?
  • improve tracking history of changes to models registered in the admin panel

Extended Functionality

  • store information about analysis (e.g. folder, what workflow, ...)
  • check official support for redis and/ or unofficial extensions(django-cachalot, jazzband's)
  • for storage information also allow external links (fex, galaxy.eu, ...)
  • Paperless approval of requests (by PINs sent through email?)
  • Re-enable data["turnaround"] = report.get_turnaround() at the report URL classed view. See that the calculation is correct/ usable for the sequencing facility. We had TypeError: value should be a 'Timedelta', 'NaT', or array of those. Got 'int' instead. (see emailed debug on Mon 8/22/2022 2:06 PM).
  • Download of complete report (unfinished feature). All users want this when they're about to publish. Any user should be able to view more info after sequencing completes.
  • Dynamic sample flow. Allow moving requests (its samples) from one stage to another previous one (e.g. from pooling to index generator). Common problem lies on 'preparation', the parkour app is always one step ahead of the sequencing (wet lab practice)
  • Resequencing button! for users. Needs to have different library ID.
  • Allow admins to 'duplicate' an existing project into a new one (e.g. re sequencing efforts).
  • fetch pool ID of a flowcell with an API request
  • allow API request with project as key, returns flowcell
  • Don't allow duplicated last names ? API endpoint get_contact_details
  • jazzband/django-invitations ?
  • Using the API a user can (at the moment) submit a request with a cost_unit that she/he is not assigned to. It is also possible, using the API, to add the same sample to more than one request. These things are checked only via the frontend.
  • Double click should open request on respective app.

Misc

  • test precommit hook 4 upgrading django ๐Ÿ‘๐Ÿฝ
  • test local development (e.g. /docker/parkour/.vscode/*.json, debugpy compose yml...)
  • takeover old readthedocs rst build
  • bring old user manual to gh wiki; git rm ./docs
  • re-generate api docs
  • attend warnings (i.e. invoicing.LibraryPreparationCosts.library_protocol foreign key unique vs 1:1)
  • upgrade to latest pythonic slangs refurb
  • flake8 compliance (precommit.ci)
  • pytest-django (any gain?) + tox.ini
  • more thorough tests (incl. frontend): record user interaction through browser (selenium/ playwright)
  • lint migrations to avoid recurring issue with 'ALTER FIELD'
  • have tests for migrations using this
  • monkey typing (any gain?) && stubs
  • add 503.html to nginx for maintenance mode (see: docs, source or extension)
  • check postgres config server side cursors

WSGI

  • check shared memory size, gunicorn --workers=2 --threads=4 --worker-class=gthread --worker-tmp-dir /dev/shm... use more cores? 20% RAM to SHM?
  • uvicorn.org/deployment + code update(s) ? do we need async ?
  • our green unicorn is running as root inside docker. unsafe ?
  • check debugging functionalities @ dev deployment with: (A) werkzeug & runserver_plus and/ or (B) icescream

error

  • This menu only appears when right-clicking on Safari. It should be available to all browsers/ platforms
  • Also, deletion doesn't seem to work ๐Ÿคฆ๐Ÿฝโ€โ™‚๏ธ
  • This menu only appears when right-clicking on Safari. It should be available to all browsers/ platforms
  • Also, deletion doesn't seem to work ๐Ÿคฆ๐Ÿฝโ€โ™‚๏ธ

@adRn-s
That is weird, I get the context menu and I can delete libraries/samples no problem. I use Edge (Chromium) on Windows. Firefox works too.

Thanks! I was unable to get the menu, it might be related to my Firefox version and/ or installed Extensions. Without it, I couldn't reproduce the issue (reported by an end-user at MPI).

adRn-s commented

I'm keeping track of this locally