Skip to content
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

Prepare for upcoming Seurat v5 release #93

Closed
Gesmira opened this issue Oct 3, 2023 · 5 comments · Fixed by #95
Closed

Prepare for upcoming Seurat v5 release #93

Gesmira opened this issue Oct 3, 2023 · 5 comments · Fixed by #95
Labels
bug Something isn't working

Comments

@Gesmira
Copy link

Gesmira commented Oct 3, 2023

I am opening this issue as a notification because clustree is listed here as a package that relies (depends/imports/suggests) on Seurat. As you may know, we recently released Seurat v5 as a beta in March of this year, with new updates for spatial, multimodal, and massively scalable analysis. For more information on updates and improvements, check out our website https://satijalab.org/seurat/.
We are now preparing to release Seurat v5 to CRAN, and plan to submit it on October 23rd. While we have tried our best to keep things backward-compatible, it is possible that updates to Seurat and SeuratObject might break your existing functionality or tests. We wanted to reach out before the new version is on CRAN, so that there's time to report issues/incompatibilities and prepare you for any changes in your code base that might be necessary.

We apologize for any disruption or inconvenience, but hope that the improvements to Seurat v5 will benefit your users going forward.
To test the upcoming release, you can install Seurat from the seurat5 branch using the instructions available on this page: https://satijalab.org/seurat/articles/install.

Thank you!
Seurat v5 team

@lazappi lazappi added the bug Something isn't working label Oct 4, 2023
@lazappi
Copy link
Owner

lazappi commented Oct 4, 2023

Hi @Gesmira. Thanks for the notification. I have done a quick check and it looks like things might break with the new version 😿. Is there any documentation about what has been changed and what changes developers need to make for compatibility?

@Gesmira
Copy link
Author

Gesmira commented Oct 4, 2023

Hi,
First I would make sure you have all of the v5 versions installed of the packages listed here. Explanations of updates are included here and v5 vignettes are here.

The SeuratObject structure has changed significantly in Seurat V5. Within each assay, we now have layers. Layers can have different cells and/or features from each other to allow for more flexibility in single-cell analyses. We expect that the change in object structure might be the cause of potential issues if there are any. More details on how to access data in the new structure can be found here.

We've tried to maintain backwards compatibility so ideally there shouldn't be any large issues. If you could also include some details of the errors you're facing, that would be helpful for us and might help in debugging as well. Finally, I would recommend checking out our issues to see if what you're facing has been previously reported!

Best,
Gesi

@saketkc
Copy link

saketkc commented Oct 23, 2023

Hi @lazappi,
Seuratv5 will make its way to CRAN soon and reverse-dependency checks indicate following tests will fail:

Running the tests in ‘tests/testthat.R’ failed.
Last 13 lines of output:
    1. ├─testthat::expect_warning(...) at test-clustree.R:165:4
    2. │ └─testthat:::quasi_capture(...)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ └─base::withCallingHandlers(...)
    5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    6. ├─clustree::clustree(...)
    7. └─clustree:::clustree.Seurat(...)
    8.   ├─Seurat::FetchData(x, vars = node_aes_value, slot = exprs)
    9.   └─SeuratObject:::FetchData.Seurat(x, vars = node_aes_value, slot = exprs)
   10.     ├─SeuratObject::FetchData(...)
   11.     └─SeuratObject:::FetchData.Assay5(...)
   12. ```

One potential fix would be to do:

op <- options(Seurat.object.assay.brackets = "v3")
on.exit(options(op), add = TRUE)

so that your users will stick to V3 assays. But it is possible you might have to update your accessor methods to be compatible with Seurat5 going ahead.

@lazappi
Copy link
Owner

lazappi commented Oct 24, 2023

Hi @saketkc. Yes, I am aware the tests are currently failing. I just haven't had a chance to make the changes yet.

As a sidenote, it would have been great if you sent out these messages in March when you say the changes were announced rather than waiting a few weeks before you want to do the release.

lazappi added a commit that referenced this issue Oct 24, 2023
@lazappi
Copy link
Owner

lazappi commented Oct 24, 2023

I have pushed a version to the develop branch that should be compatible. I am happy to release this on CRAN but wanted to check if there are any timelines etc. I should be available of first.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants