Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2741

Make an App that allows filtering by "id" - part 1

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Story Points:
      3
    • Sprint:
      Winter 1 Dec 28 - Jan 8, Winter 2 Jan 11 - Jan 22, Winter 3 Jan 25 - Feb 5, Winter 4 Feb 8 - Feb 19, Winter 5 Feb 22 - Mar 5, Winter 6 Mar 8 - Mar 19, Spring 1 2021 Mar 22 - Apr 2

      Description

      Nearly every single-cell RNA-Seq pipeline aligns the "raw" sequence data onto a reference, usually a reference genome sequence. This is an essential step in the workflow. This step is done in order to generate "counts per gene per cell" spreadsheets that are then analyzed using unsupervised clustering methods and other such methods. The "counts per gene per cell" numbers are supposed to reflect the number of RNAs observed from the gene. However, there is a problem with that!

      Because the methods for creating the sequence data start with minute amounts of RNA per cell, the protocols use PCR amplification in order to produce enough material for sequencing. This means that the same fragment of RNA will often get copied many, many times. Thanks to this, the number of sequences observed per gene will be only loosely related to the number of mRNAs from that gene that were in the original sample.

      To get around this, the experimental protocols include a step that adds a "UMI" sequence tag to every read that came from the same RNA molecule. (UMI stands for "unique molecular identifier.") So instead of counting every single read, the data analysis protocols instead count the number of unique "UMIs" per gene. To keep track of UMIs in the data processing steps, the computational pipelines typically append the UMI sequence to the read name. In IGB, this "read name" is also the "id" attribute.

      In addition to copying the UMI sequence, the pipelines also often copy another string that uniquely identifies the particular cell that the read came from. This is called a "cell barcode" and is also introduced into every read as part of the experimental protocol that produces the data.

      Therefore in IGB it would be super-useful if we can create a filter that limits the reads being show to a specific string that the user enters. This would allow users to get a better sense of how often a given UMI appears in their data. It would also allow them to visualize gene expression for a single cell instead of looking at all of the data at once for every cell.

      Also, this type of thing would be useful for any type of track, not only BAM tracks.

      For this App, please implemented a new "filter by name" option that lets a user hide all items in a track that do not match the name.

      Lastly, it is not clear yet whether we can introduce new filters as Apps. So a big part of this task will involve understanding the existing filtering system for tracks to see if an App can be added to implement a new one.

        Attachments

          Issue Links

            Activity

            Hide
            ann.loraine Ann Loraine added a comment -

            Is this now ready for review again? If yes, please move it forward. If you leave something in "To-Do", it means that something is still needing to be done on it and I will not look at it.

            Show
            ann.loraine Ann Loraine added a comment - Is this now ready for review again? If yes, please move it forward. If you leave something in "To-Do", it means that something is still needing to be done on it and I will not look at it.
            Hide
            ann.loraine Ann Loraine added a comment -

            The code looks good. Also, it appears that the filter will allow anything that contains the search string to pass, which is the desired behavior.
            For the next steps, someone should test the functionality in their IGB and confirm that the app functions as expected.
            Also please confirm that the directions on how to use the App and what to expect are sufficiently clear.

            Show
            ann.loraine Ann Loraine added a comment - The code looks good. Also, it appears that the filter will allow anything that contains the search string to pass, which is the desired behavior. For the next steps, someone should test the functionality in their IGB and confirm that the app functions as expected. Also please confirm that the directions on how to use the App and what to expect are sufficiently clear.
            Hide
            rweidenh Logan Weidenhammer (Inactive) added a comment -

            Functional Review:
            I right clicked an alignment track from a loaded BAM file in the Human genome > "Filter..." > "Add" > "Show Only: ID" was already selected.
            In the ID section I tried filtering with characters from the beginning, middle, end, numbers, letters, underscores, decimals, partial ID's, and whole ID's.

            All filtered as expected. I would recommend for pull request as far as functionality working properly.

            Irvin Naylor
            One comment I would like to make is that the description/instructions for how to run the app in the "IGB App Manager" window are not as visually clean and easy to read as all the other apps. On the ID-filter app the instructions are chunked together as one paragraph, whereas the other apps present this information with one instruction step per line.

            The description also talks about the user in the third person, as if they aren't there. It feels weird to me as a user to feel the app talk about me instead of to me.

            Show
            rweidenh Logan Weidenhammer (Inactive) added a comment - Functional Review: I right clicked an alignment track from a loaded BAM file in the Human genome > "Filter..." > "Add" > "Show Only: ID" was already selected. In the ID section I tried filtering with characters from the beginning, middle, end, numbers, letters, underscores, decimals, partial ID's, and whole ID's. All filtered as expected. I would recommend for pull request as far as functionality working properly. Irvin Naylor One comment I would like to make is that the description/instructions for how to run the app in the "IGB App Manager" window are not as visually clean and easy to read as all the other apps. On the ID-filter app the instructions are chunked together as one paragraph, whereas the other apps present this information with one instruction step per line. The description also talks about the user in the third person, as if they aren't there. It feels weird to me as a user to feel the app talk about me instead of to me.
            Hide
            ann.loraine Ann Loraine added a comment -

            Replying to comment from Irvin Naylor:

            • Kindly improve the description/instructions for how to run the app in the "IGB App Manager" window as you have noted above.

            Regarding voice: Yes, when we write documentation for users to read, we address them directly, as you have noted. This is following advice from the Microsoft Manual of Style, which we follow.

            Show
            ann.loraine Ann Loraine added a comment - Replying to comment from Irvin Naylor : Kindly improve the description/instructions for how to run the app in the "IGB App Manager" window as you have noted above. Regarding voice: Yes, when we write documentation for users to read, we address them directly, as you have noted. This is following advice from the Microsoft Manual of Style, which we follow.
            Hide
            inaylor Irvin Naylor (Inactive) added a comment -

            [~aloraine] - IGBF-2817 has been completed and is ready for review, however, I did have a question: For apps and repos that don't directly connect to the main IGB repo, how do we go about doing the pull request for this issue since there isn't anything for the app to merge into?

            Show
            inaylor Irvin Naylor (Inactive) added a comment - [~aloraine] - IGBF-2817 has been completed and is ready for review, however, I did have a question: For apps and repos that don't directly connect to the main IGB repo, how do we go about doing the pull request for this issue since there isn't anything for the app to merge into?

              People

              • Assignee:
                inaylor Irvin Naylor (Inactive)
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: