-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add function to perform graph-based clustering #749
Add function to perform graph-based clustering #749
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good overall, but maybe file a separate PR with just the main
changes to make this one smaller and easier to review?
I had a number of small suggestions for now, but overall this looks on the right track to me.
|
||
|
||
# Transform results into a table and return | ||
# TODO: Should this have _all_ (non-default/user-specified) parameters in cluster.args? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it probably should, to allow easier bind_rows
to tidy form later. And not just non-default, but all args.
Co-authored-by: Joshua Shapiro <[email protected]>
I haven't really been able to think of anything better than this... I guess we could also return the |
Ready for another look, and in particular interested in your feedback on my docs wording about parameter defaults, and overall wording for |
Co-authored-by: Joshua Shapiro <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was actually suggesting something a bit different for the docs; consolidating the discussion of differences into the description. I wrote a bit of what I was thinking there, but you will probably want to rewrite it.
#' Be aware that the default of "louvain" is different from the bluster package default of "walktrap". This difference is | ||
#' because louvain clustering is more commonly-used in scRNA-seq analysis. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would actually leave off the explanation here. Instead, I was suggesting a paragraph of explanation before the @params
, which will end up in the function description.
Co-authored-by: Joshua Shapiro <[email protected]>
I think what you had there was mostly there tbh, so I expanded it a little bit with more specific bluster information but kept most of what you had. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Just a couple wording/format changes. Which will require rebuilding docs, unfortunately.
Co-authored-by: Joshua Shapiro <[email protected]>
Purpose/implementation Section
Please link to the GitHub issue that this pull request addresses.
Closes #745
What is the goal of this pull request?
This PR adds a function to perform clustering to the
rOpenScPCA
package. There are many file changes, because I've also merged inmain
to stay in sync, but review can focus only on code inpackages/rOpenScPCA
.I'm filing this as a draft to get some initial feedback, and then can implement the rest (including adding more tests, which I know are thin right now!) and mark for review. Here are the main questions I'm looking for feedback on, but of other high-level feedback is welcome :)
resolution
(used by louvain and leiden),objective_function
(used by leiden), andcluster_args
(for anything else). How does this choice feel to you? Prefer to see fewer or more of the algorithm-specific options pulled out as individual arguments?DataFrame
would be better since it store a lot of that info as metadata, but then I felt it might get confusing for users.Author checklists
Check all those that apply.
Note that you may find it easier to check off these items after the pull request is actually filed.
Analysis module and review
README.md
has been updated to reflect code changes in this pull request.Reproducibility checklist
Dockerfile
.environment.yml
file.renv.lock
file.