New and updated Bioconductor tooling for single-cell analysis#7961
New and updated Bioconductor tooling for single-cell analysis#7961kevinrue wants to merge 27 commits into
Conversation
pavanvidem
left a comment
There was a problem hiding this comment.
It is the right direction. Each of these functions has many more arguments that need to be integrated. For an LLM-assisted (?) initial version, it is not bad.
| ]]></token> | ||
|
|
||
| <token name="@CMD_read_inputs@"><![CDATA[ | ||
| sce <- import('sce.loom', format = "loom", type = "SingleCellLoomExperiment") |
There was a problem hiding this comment.
- is
importa scater function? or bioconductor function? - Is "SingleCellLoomExperiment" really a type?
There was a problem hiding this comment.
import() is a generic defined in BiocIO with methods defined in other packages like rtracklayer.
The SingleCellLoomExperiment type is defined in the package LoomExperiment here https://github.com/Bioconductor/LoomExperiment/blob/devel/R/import-method.R#L135
I haven't studied the internals of the import() function, but from the choice of three types it sounds like this helps the import() function work with the different "flavours" of Bioconductor single-cell objects that can be stored in loom files
| ]]></token> | ||
|
|
||
| <xml name="input_sce"> | ||
| <param name="input_loom" type="data" format="loom" |
There was a problem hiding this comment.
I initially took the RDS path, but had a discussion here encouraging me to use loom instead
There was a problem hiding this comment.
It's a great choice! Please make sure that the outputs are also always loom so that we don't need to use conversion tools in between.
| </section> | ||
| <output name="hidden_output"> | ||
| <assert_contents> | ||
| <has_text_matching expression="plotColData"/> |
There was a problem hiding this comment.
<has_text text="plotColData"/> should be enough in this case
| </output> | ||
| <output name="output_png" ftype="png"> | ||
| <assert_contents> | ||
| <has_size size="43418" delta="10"/> |
There was a problem hiding this comment.
there are better asserts for images, such as has_image_height, has_image_width and more has_image_*
| including quality control, normalisation, and transformation, built | ||
| around the SingleCellExperiment class. | ||
| name: scuttle | ||
| owner: iuc |
There was a problem hiding this comment.
eventually, needs a suite section because there are multiple tools
I used LLM (Claude Code) to produce the first draft that is about 80-90% of what you see, with me manually tweaking bits and pieces for fixes and things the LLM couldn't guess (e.g. size of the output files for the tests) |
Co-authored-by: Pavankumar Videm <pavanvidem@gmail.com>
Co-authored-by: Pavankumar Videm <pavanvidem@gmail.com>
FOR CONTRIBUTOR:
There are two labels that allow to ignore specific (false positive) tool linter errors:
skip-version-check: Use it if only a subset of the tools has been updated in a suite.skip-url-check: Use it if github CI sees 403 errors, but the URLs work.Context
For my BioFAIR Pathfinder project, I aim to wrap a number of Bioconductor packages and functions from the latest Bioconductor release to assemble a new GTN tutorial for single-cell analysis using (mostly) Bioconductor packges.
The two GTN single-cell tutorials that exist so far cover Seurat (R) and Scanpy (Python).
Draft PR
As a first time contributor to this repo, I strive to apply the best practices for Galaxy tool development, but I'm conscious that I might not be constantly aware of all of them.
This is why I open this draft PR. If anyone with experience could glance at my work so far and spot any bad practice, I'd be more than happy to fix the existing code where relevant, while writing better code in the tool wrappers that I am yet to write, to complete the workflow.
I'll be busy teaching most the of coming weeks, so it feels a good use of time to have someone look at this PR while I'm not actively adding to it.
EDIT 1
"This PR does something else"
This PR implements wrappers for:
scater::plotColData)For clarity and the avoidance of name clashes, I've named my tool wrappers
package-version. In particular,scater-1.38.0avoids a clash with the existingscater(1.22.0), whilescuttle-1.20.0andsinglecellexperiment-1.32.0didn't really need the version number.