Clinical-Genomics / scout

VCF visualization interface
https://clinical-genomics.github.io/scout
BSD 3-Clause "New" or "Revised" License
150 stars 46 forks source link

Workaround fix #4682 - sort case file load order alphabetically #4684

Closed dnil closed 3 months ago

dnil commented 3 months ago

This PR adds a functionality or fixes a bug.

The load order was perturbed last week with 4.83 introducing sets of file type categories, to accommodate nf-core raredisease MT VCFs. Introducing an alpabetical sort will work around the problem encountered in #4682 in the sense that SNVs will be loaded before SVs, and in particular cancer before cancer_sv, and the collision resolution should be consistent.

Testing on cg-vm1 server (Clinical Genomics Stockholm) **Prepare for testing** 1. Make sure the PR is pushed and available on [Docker Hub](https://hub.docker.com/repository/docker/clinicalgenomics/scout-server-stage) 1. Fist book your testing time using the Pax software available at [https://pax.scilifelab.se/](https://pax.scilifelab.se). The resource you are going to call dibs on is `scout-stage` and the server is `cg-vm1`. 1. `ssh @cg-vm1.scilifelab.se` 1. `sudo -iu hiseq.clinical` 1. `ssh localhost` 1. (optional) Find out which scout branch is currently deployed on cg-vm1: `podman ps` 1. Stop the service with current deployed branch: `systemctl --user stop scout.target` 1. Start the scout service with the branch to test: `systemctl --user start scout@` 1. Make sure the branch is deployed: `systemctl --user status scout.target` 1. After testing is done, repeat procedure at [https://pax.scilifelab.se/](https://pax.scilifelab.se), which will release the allocated resource (`scout-stage`) to be used for testing by other users.
Testing on hasta server (Clinical Genomics Stockholm) **Prepare for testing** 1. `ssh @hasta.scilifelab.se` 1. Book your testing time using the Pax software. `us; paxa -u -s hasta -r scout-stage`. You can also use the WSGI Pax app available at [https://pax.scilifelab.se/](https://pax.scilifelab.se). 1. (optional) Find out which scout branch is currently deployed on cg-vm1: `conda activate S_scout; pip freeze | grep scout-browser` 1. Deploy the branch to test: `bash /home/proj/production/servers/resources/hasta.scilifelab.se/update-tool-stage.sh -e S_scout -t scout -b ` 1. Make sure the branch is deployed: `us; scout --version` 1. After testing is done, repeat the `paxa` procedure, which will release the allocated resource (`scout-stage`) to be used for testing by other users.

How to test:

  1. how to test it, possibly with real cases/data

Expected outcome: The functionality should be working Take a screenshot and attach or copy/paste the output.

Review:

codecov[bot] commented 3 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.42%. Comparing base (976bb25) to head (f8c4c0d).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #4684 +/- ## ======================================= Coverage 84.41% 84.42% ======================================= Files 310 311 +1 Lines 18748 18756 +8 ======================================= + Hits 15827 15835 +8 Misses 2921 2921 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

dnil commented 3 months ago

Approving because it's working and we need a quick fix, but I'm not very fond of the solution. I think it's good for now but we should consider refactoring soon for simplifying so the code would be more readable and maintainable.

But as I said, it works so it's good for me! 👍🏻

I liked alphabetical better too. :) We could make two ordered dicts, one with categories and one with files. Or we could refactor to make it one call per file instead of the outer and inner thing. It probably doesn’t save much to do a few things only once per category. But not this week! 😸

sonarcloud[bot] commented 3 months ago

Quality Gate Passed Quality Gate passed

Issues
0 New issues
0 Accepted issues

Measures
0 Security Hotspots
0.0% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud