Age | Commit message (Expand) | Author |
2021-10-19 | Swap axis labels...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/non-clustered-heatmaps-and-flipping.gmi
* Switch the axis labels to make them less confusing for the user.
| Frederick Muriuki Muriithi |
2021-10-19 | Add typing. Simplify arguments....Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/non-clustered-heatmaps-and-flipping.gmi
* Add type-hints to the functions
* Merge the axis data and labels to simpler dict arguments to reduce number of
parameters to the function.
| Frederick Muriuki Muriithi |
2021-10-19 | Remove file I/O statements...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/non-clustered-heatmaps-and-flipping.gmi
* Remove file I/O from the function. If file I/O is needed, it will be
provided outside of this function.
| Frederick Muriuki Muriithi |
2021-10-19 | Implement `dictify_by_samples`...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/partial_correlations.py: implement `dictify_by_samples` function
* tests/unit/test_partial_correlations.py: implement tests for
`dictify_by_samples` function
Implement the `dictify_by_samples` function as a partial migration of the
`web.webqtl.correlation.correlationFunction.fixStrains` function from GN1.
| Frederick Muriuki Muriithi |
2021-10-18 | Implement `control_samples` function as is in GN1...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/partial_correlations.py: Implement `control_samples` function
* tests/unit/test_partial_correlations.py: add tests for `control_samples`
function
Implement the function `control_samples` and make it mostly bug-compatible
with the `web/webqtl/correlation/correlationFunction.controlStrain` function
in GN1.
This implementation in GN3 does not do any calls to the database. It will
rely on other functions to provide the data from the database to it.
| Frederick Muriuki Muriithi |
2021-10-18 | Move `export_informative` function to `gn3.db.traits` module...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/db/traits.py: Move `export_informative` function here
* gn3/partial_correlations.py: Remove `export_informative` function
* tests/unit/db/test_traits.py: Move `export_informative` function tests here
* tests/unit/test_partial_correlations.py: Remove `export_informative`
function tests
The `export_informative` function relates more to the traits than to the
partial correlations, and could find use in more than just the partial
correlations stuff. This commit moves the function to the more
traits-specific `gn3.db.traits` module.
| Frederick Muriuki Muriithi |
2021-10-18 | Move 'export_trait_data' to 'gn3.db.traits' module...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/db/traits.py: Move function `export_trait_data` here
* gn3/heatmaps.py: Remove function `export_trait_data`
* tests/unit/db/test_traits.py: Move function `export_trait_data` tests here
* tests/unit/test_heatmaps.py: Remove function `export_trait_data` here
Function `export_trait_data` more closely corresponds to the traits and is
used in more than just the `gn3.heatmaps` module. This commit moves the
relevant code over to the `gn3.db.traits` module and also moves the tests to
the corresponding tests modules.
| Frederick Muriuki Muriithi |
2021-10-18 | Migrate `export_informative` function...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/partial-correlations.gmi
* gn3/partial_correlations.py: Implement a mostly, bug-compatible
`export_informative` function as part of migrating the partial correlations
feature over to GN3 from GN1
* tests/unit/test_partial_correlations.py: Implement tests to ensure the code
work in a similar manner as that one in GN1.
| Frederick Muriuki Muriithi |
2021-10-12 | Merge branch 'main' of https://github.com/genenetwork/genenetwork3 into bug/f... | zsloan |
2021-09-28 | Provide loci names to heatmap...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Provide the loci names to the heatmaps so that hovering over the heatmap
cells displays the associated locus name.
| Frederick Muriuki Muriithi |
2021-09-28 | Retrieve loci names ordered by chromosomes...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/heatmaps.py: implement function
* tests/unit/test_heatmaps.py: add test
Add a function to retrieve the loci names from the traits, ordered by
chromosomes, in alphabetical order.
This is useful to provide the user with more information on hovering over
the heatmap cells: each cell will now display the locus name, trait name and
value associated with it.
| Frederick Muriuki Muriithi |
2021-09-28 | Approximate single-spectrum colour scale in GN1...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* To provide a somewhat similar experience to GeneNetwork1, this commit
approximates the single-spectrum colour scale in GeneNetwork1 for the
heatmaps in GeneNetwork3.
Work to get the multiple-spectrum colour sc(ales/hemes) will be done in
other commits, since that might require digging even deeper into Plotly's
guts to figure out.
| Frederick Muriuki Muriithi |
2021-09-27 | add file not found exception | Alexander Kabui |
2021-09-27 | return str error for exception | Alexander Kabui |
2021-09-27 | fix merge conflicts | Alexander Kabui |
2021-09-27 | Remove unnecessary variable....Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Fix issue according to review
https://github.com/genenetwork/genenetwork3/pull/37#discussion_r714549781
| Frederick Muriuki Muriithi |
2021-09-27 | Narrow the exception and add comments...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Only catch the `FileExistsError` allowing any other exception to pass
through. This tries to conform a little to the review at
https://github.com/genenetwork/genenetwork3/pull/37#discussion_r714552696
| Frederick Muriuki Muriithi |
2021-09-27 | Update terminology: `riset` to `group`...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Update terminology to use the appropriate domain terminology according to
Zachary's direction at
https://github.com/genenetwork/genenetwork3/pull/37#issuecomment-926041744
| Frederick Muriuki Muriithi |
2021-09-27 | Update terminology: `strain` to `sample`...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Update the terminology used: use `sample` in place of `strain` according to
Zachary's direction at
https://github.com/genenetwork/genenetwork3/pull/37#issuecomment-926043306
| Frederick Muriuki Muriithi |
2021-09-23 | minor fixes for endpoint | Alexander Kabui |
2021-09-23 | Return r error if returncode!=0 | Alexander Kabui |
2021-09-23 | read generated files from r and return output | Alexander Kabui |
2021-09-22 | Fix more pylint errors | Frederick Muriuki Muriithi |
2021-09-22 | Fix typing issues...* Ignore some errors
* Update typing definitions for some portions of code
* Add missing imports
| Frederick Muriuki Muriithi |
2021-09-22 | Fix pylint errors...* Add missing function and module docstrings
* Remove unused imports
* Fix import order
* Rework some code sections to fix issues
* Disable some pylint errors.
| Frederick Muriuki Muriithi |
2021-09-22 | Update check: Heatmaps need at least 2 items...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Update the check to look for at least 2 traits before trying to generate the
heatmap.
| Frederick Muriuki Muriithi |
2021-09-22 | Return serialized plotly figure...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/api/heatmaps.py: Serialize the figure to JSON
* gn3/heatmaps.py: Return the figure object
Serialize the Plotly figure into JSON, and return that, so that it can be
used on the client to display the image.
| Frederick Muriuki Muriithi |
2021-09-22 | jsonify results | Alexander Kabui |
2021-09-20 | Enable Cross-Origin Resource Sharing...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/api/heatmaps.py: Fix bugs in data parsing
* gn3/app.py: enable CORS
* gn3/settings.py: add flask-cors configurations
* guix.scm: Add flask-cors dependency
For easier testing of the heatmaps generation feature, this commit activates
the cross-origin resource sharing for all "localhost" origins.
| Frederick Muriuki Muriithi |
2021-09-20 | Return only the data...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* gn3/api/heatmaps.py: Parse incoming data to build up correct trait names and
respond with only the computed heatmap data.
* gn3/heatmaps.py: Return only the computed data for heatmaps and clustering.
Since GN3 is supposed to handle only the data, and db-access, this commit
ensures that GN3 responds to the client with only the computed heatmap data,
and does not try to generate the heatmaps themselves.
The generation of the heatmaps will be delegated to the UI clients, such as
GeneNetwork2.
| Frederick Muriuki Muriithi |
2021-09-17 | Fix a number of linting issues...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
| Frederick Muriuki Muriithi |
2021-09-17 | Return path to generated filename for now...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* To help with demonstrating that the code is producing the expected output,
for now, we return the path to the generated html file that displays the
interactive heatmap.
At this point, it is mostly useful in the development environment. Moving
forward, we might have to actually stream the raw html, or if we can get the
Kaleido library packaged for GNU Guix, stream the images binary data instead.
| Frederick Muriuki Muriithi |
2021-09-17 | Fix some layout issues and update colorscale...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Update the plot layouts and size to display the dendrogram and individual
chromosome heatmaps side by side
* Update the colour scale to begin with the grays rather than absolute black
| Frederick Muriuki Muriithi |
2021-09-17 | Create dendrogram to show clustering tree...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Provide the clustering data to be used for the creation of the clustering
dendrogram in the final clustered heatmap plot.
| Frederick Muriuki Muriithi |
2021-09-16 | Add WGCNA_SCRIT env to settings | Alexander Kabui |
2021-09-16 | pass user input to call script | Alexander Kabui |
2021-09-16 | Intergrate the heatmap generation with the API...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Intergrate the heatmap generation code on the /api/heatmaps/clustered
endpoint.
The endpoint should take a json query of the form:
{"traits_names": [ ... ] }
where the "traits_name" value is a list of the full names of traits.
A sample query to the endpoint could be something like the following:
curl -i -X POST "http://localhost:8080/api/heatmaps/clustered" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"traits_names": [
"UCLA_BXDBXH_CARTILAGE_V2::ILM103710672",
"UCLA_BXDBXH_CARTILAGE_V2::ILM2260338",
"UCLA_BXDBXH_CARTILAGE_V2::ILM3140576",
"UCLA_BXDBXH_CARTILAGE_V2::ILM5670577",
"UCLA_BXDBXH_CARTILAGE_V2::ILM2070121",
"UCLA_BXDBXH_CARTILAGE_V2::ILM103990541",
"UCLA_BXDBXH_CARTILAGE_V2::ILM1190722",
"UCLA_BXDBXH_CARTILAGE_V2::ILM6590722",
"UCLA_BXDBXH_CARTILAGE_V2::ILM4200064",
"UCLA_BXDBXH_CARTILAGE_V2::ILM3140463"
]
}'
which should respond with a json response containing the raw binary string
for the png format and possibly another for the svg format.
| Frederick Muriuki Muriithi |
2021-09-16 | Fix minor bugs...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Fix a few minor bugs left over from the integration of code from the
proof-of-concept code.
| Frederick Muriuki Muriithi |
2021-09-16 | Add missing imports...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add missing imports that are needed in the code.
| Frederick Muriuki Muriithi |
2021-09-16 | run cmd and add exception handler | Alexander Kabui |
2021-09-16 | register wgcna blueprint | Alexander Kabui |
2021-09-16 | add initial endpoint for wgcna | Alexander Kabui |
2021-09-16 | add function to compose and run wgcna script | Alexander Kabui |
2021-09-16 | function to parse form data and write to json file | Alexander Kabui |
2021-09-15 | init wgcna file to run r script and preprocess data | Alexander Kabui |
2021-09-15 | Update entry-point function for heatmap generation...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Copy over code from the proof-of-concept implementation and clean it up a
little for the entry-point function for heatmap generation via the API
| Frederick Muriuki Muriithi |
2021-09-15 | Generate heatmaps in a single plot...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* Add a function to generate the heatmaps for each chromosome into a single
plot.
| Frederick Muriuki Muriithi |
2021-09-15 | Process data into format usable by heatmaps...* gn3/heatmaps.py: implement `process_traits_data_for_heatmap` function, that
will process the data into a form usable by heatmaps.
* tests/unit/test_heatmaps.py: check that the function processes the data into
the correct form.
| Frederick Muriuki Muriithi |
2021-09-15 | Integrate get_lsr_from_chr function...* gn3/heatmaps.py: copy over function
* tests/unit/test_heatmaps.py: add tests
Copy function over from proof of concept and add some tests to ensure it
works as expected.
| Frederick Muriuki Muriithi |
2021-09-15 | Reorganise modules...Issue:
https://github.com/genenetwork/gn-gemtext-threads/blob/main/topics/gn1-migration-to-gn2/clustering.gmi
* The heatmap generation does not fall cleanly within the computations or db
modules. This commit moves it to the higher level gn3 module.
| Frederick Muriuki Muriithi |