AlexsLemonade / refinebio-frontend

Frontend app for refine.bio
https://www.refine.bio
Other
7 stars 7 forks source link

Experiment Page: Add processing information modals #22

Closed ramenhog closed 6 years ago

ramenhog commented 6 years ago

Description

When user clicks on the link in the "Processing Information" column in the samples table, they should get a modal that displays all the processing information associated with that sample.

Mockup

refine.bio processed with 1 middle step

screen shot 2018-05-18 at 2 25 22 pm

refine.bio processed with 2 middle steps

screen shot 2018-05-18 at 2 26 43 pm

submitter processed

screen shot 2018-05-18 at 2 26 23 pm

ramenhog commented 6 years ago

@Miserlou correct me if I'm wrong, but we don't get this info from the samples endpoint yet right?

arielsvn commented 6 years ago

It seems so, @ramenhog. I checked the latest version of the samples endpoint and it's returning this information as a string under annotations

"data_processing": "['Expression data (CEL files) were normalized with the MAS5.0 algorithm (target signal = 100) using GCOS software (Affymetrix).']",

I guess it will need further processing to be able to extract this information. Do we have an issue for this in the backend??

Entire response for reference `/samples/5/`

```json { "id": 5, "title": "Neuroblastoma, #5", "accession_code": "GSM414004", "organism": { "name": "HOMO_SAPIENS", "taxonomy_id": 9606 }, "annotations": [ { "data": { "type": "['RNA']", "title": "['Neuroblastoma, #5']", "status": "['Public on Mar 08 2012']", "label_ch1": "['biotin']", "series_id": "['GSE16254', 'GSE16476']", "taxid_ch1": "['9606']", "description": "['ITCC0009-inss-2']", "platform_id": "['GPL570']", "contact_city": "['Amsterdam']", "contact_name": "['Rogier,,Versteeg']", "hyb_protocol": "['10 µg of labeled cRNA was hybridized to Affymetrix Human genome U133 Plus 2.0 arrays according to manufacturer’s protocol (Affymetrix).']", "molecule_ch1": "['total RNA']", "organism_ch1": "['Homo sapiens']", "channel_count": "['1']", "contact_email": "['r.versteeg@amc.uva.nl']", "geo_accession": "['GSM414004']", "scan_protocol": "['Arrays were scanned with a GeneChip Scanner 3000 (Affymetrix) according to manufacturer’s protocol.']", "data_row_count": "['54675']", "contact_address": "['P.O. Box 22700']", "contact_country": "['Netherlands']", "data_processing": "['Expression data (CEL files) were normalized with the MAS5.0 algorithm (target signal = 100) using GCOS software (Affymetrix).']", "source_name_ch1": "['Neuroblastoma tumor']", "submission_date": "['Jun 07 2009']", "last_update_date": "['Mar 08 2012']", "contact_institute": "['Academic Medical Centre, University of Amsterdam']", "contact_department": "['Department of Oncogenomics']", "label_protocol_ch1": "['4 µg of total RNA was used for cRNA synthesis and fragmented. Labeling was performed with One-Cycle cDNA synthesis Kit (Affymetrix) according to manufacturer’s protocol. Sample quality was checked on a Bioanalyzer prior and after fragmentation.']", "supplementary_file": "['ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM414nnn/GSM414004/suppl/GSM414004.CEL.gz']", "characteristics_ch1": "['tissue: Neuroblastoma tumor']", "extract_protocol_ch1": "['Total RNA was isolated using Trizol (Invitrogen) and purified with RNeasy (Qiagen) according to manufacturer’s protocol. RNA sample integrity was checked on an Agilent 2100 Bioanalyzer (Agilent Technologies).']", "contact_zip/postal_code": "['1100DE']" }, "is_ccdl": false, "created_at": "2018-05-30T18:41:29.962438Z", "last_modified": "2018-05-30T18:41:29.962438Z" } ], "results": [], "source_archive_url": "", "has_raw": true, "sex": "", "age": null, "specimen_part": "neuroblastoma tumor", "genotype": "", "disease": "", "disease_stage": "", "cell_line": "", "treatment": "", "race": "", "subject": "", "compound": "", "time": "", "is_downloaded": false, "is_processed": false, "created_at": "2018-05-30T18:41:29.960150Z", "last_modified": "2018-05-30T18:41:29.960150Z" } ```

cgreene commented 6 years ago

~My impression is that this isn't landing until after Keytar Kurt. It looks like it will depend at least on https://github.com/AlexsLemonade/refinebio/issues/101 which is not in the Keytar milestone.~ Edit: edited to account for @jaclyn-taroni's reply. Basically look 👇

jaclyn-taroni commented 6 years ago

I would argue that it requires the copy on AlexsLemonade/refinebio#170

cgreene commented 6 years ago

Oh! Spiffy! Then is https://github.com/AlexsLemonade/refinebio/issues/101 going to be different than what is in https://github.com/AlexsLemonade/refinebio/issues/170?

arielsvn commented 6 years ago

Ok, I'll remove this issue from the Keytar Kurt milestone.

jaclyn-taroni commented 6 years ago

I'm imagining that it will be a bit more comprehensive in that it will include links to repositories where we've done bits of analysis, etc.

ramenhog commented 6 years ago

Ok, just to confirm, we don't need to worry about showing any processing information for Keytar Kurt?

jaclyn-taroni commented 6 years ago

we don't need to worry about showing any processing information for Keytar Kurt?

I think we do, because we have the copy needed. What do you think @cgreene?

cgreene commented 6 years ago

Actually, I got confused by a separate issue that I've been watching in the waffle. It looks like there is enough information in https://github.com/AlexsLemonade/refinebio/issues/170 to do a first iteration of this page.

jaclyn-taroni commented 6 years ago

I believe this is also related (package versions, etc): AlexsLemonade/refinebio#229

arielsvn commented 6 years ago

I read through these issues, but I still have one question: How can I know which pipeline was used to process a given sample??

@jaclyn-taroni told me the field is_ccdl can be used to identify when the Sample was processed by the submitter.

Also, we need to show version information for these tools: Salmon, Scan, txtimport, etc https://github.com/AlexsLemonade/refinebio/issues/229 talks about this... Is this information exposed on any endpoint??

image

arielsvn commented 6 years ago

Tagging @Miserlou, we just spoke about this... One solution we discussed was adding a field to the Sample Details, that contains information of the pipeline that was used.

arielsvn commented 6 years ago

https://github.com/AlexsLemonade/refinebio/pull/299 Adds a pipelines field to each sample. This field will be an array of strings with the following possible values:

  1. Submitter-processed
  2. Affymetrix SCAN
  3. Salmontools
  4. Agilent SCAN TwoColor
  5. Illumina SCAN
  6. tximport
  7. Salmon
  8. MultiQC

@Miserlou had the idea of showing multiple values in the Processing Information field, for the samples that have more than one pipeline.

arielsvn commented 6 years ago

We talked about this issue, and for Keytar Kurt these are the possible values of pipeline for which we'll be able to show information.

For the others, if they appear, we'll just show the text on the Processing Information column.

Also, https://github.com/AlexsLemonade/refinebio/issues/229 contains information about versions.

arielsvn commented 6 years ago

https://github.com/AlexsLemonade/refinebio-frontend/pull/50 Adds the processing information dialogs, but the package version information is static until the endpoints are exposed on the backend. AlexsLemonade/refinebio#229

arielsvn commented 6 years ago

https://github.com/AlexsLemonade/refinebio-frontend/pull/50 Added the last two processing information modals that we planned. Now we need to add version information. I opened #65 to keep track of that, so I'm closing this issue.