Comments (15)
Hi @jaquol
Deleting the SCT and integrated assays is only a temporary solution to this error of course.
I tried to reproduce the error, but again, everything runs fine with me and I can select different assays (RNA, SCT) via the get_expressed_genes function
. In my case Assays(seurat_obj)
returns a vector and not a list, in contrast to what you mentioned before. Maybe there is again an issue with a conflict with another package (as for your other issue)?
The selection of which slot (RNA/SCT/integrated) in this get_expressed_genes()
function will only effect which genes will be considered to be expressed (which affects the background of genes for the ligand activity analysis and the selection of ligands/receptors used as input for this). This warning that this function throws when having a SCT and/or integrated assay in addition to the RNA assay is just to let users think about whether the way get_expressed_genes()
defines expressed genes is a correct way to do it for transformed data. get_expressed_genes()
will look at the fraction of cells having a non-zero expression value for a specific gene. Because data transformation could change zeroes to non-zeroes and vice versa, I would recommend using the unaffected RNA slot. But, out of experience I can say that choosing SCT / RNA / integrated does not make much difference in which genes you get out as expressed in the end. Typically, choosing RNA will result in a slightly higher number of expressed genes, but differences in number are minor (eg 5950 vs 6000 expressed genes).
from nichenetr.
Hi @jaquol,
I would suggest setting assay_oi = 'RNA'
to define expressed genes. Can you check whether this works?
from nichenetr.
Hi @browaeysrobin,
Thank you for your quick reply! I am afraid that assay_oi = 'RNA'
does not work either on my side; I get the same error as in my previous message.
from nichenetr.
Hi @browaeysrobin,
I thought that I might be able to overcome the issue above by deleting the "SCT" and/or "integrated" assays. Inspired by this, I deleted both the "SCT" and "integrated" assays with:
seuratObj@assays$integrated <- NULL
seuratObj@assays$SCT <- NULL
Unlike previously, this way I do not get any warning when running the get_expressed_genes
function:
expressed_genes_receiver = get_expressed_genes(receiver, seuratObj, pct = 0.10)
My questions are then:
- Does deleting the "SCT" and "integrated" assays makes sense?
- Is "RNA" the preferred assay to run nichenetr on?
Thank you!
from nichenetr.
I started implementing the NicheNet code to my sc dataset and I wanted to report the same issue. Switching the argument to "RNA"
does not work:
>expressed_genes_receiver = get_expressed_genes(receiver, baldataset, pct = 0.10, assay_oi = 'RNA')
Error in .normarg_assays(assays) :
'assays' must be a SimpleList, list or array
In my case, the integrated gene list is a lot smaller so I d rather use the RNA assay to have a bigger expressed gene list. If deleting the integrated slot works for some people, I would do it, but of course, an alternative would be more preferable.
Thanks in advance,
Theo
from nichenetr.
Hi @tkapello
Is it possible you loaded the SummarizedExperiment
package? If yes, could you try to run this code again without loading SummarizedExperiment
?
from nichenetr.
SummarizedExperiment
seems to be needed, otherwise:
Error in Assays(seurat_obj) : could not find function "Assays"
from nichenetr.
Hi @tkapello
Normally, SummarizedExperiment
is not needed, because Assays()
is also function of the Seurat package. So: did you load the Seurat package (should be yes)?
I also was able to replicate the error you both mentioned here above if SummarizedExperiment
was loaded after loading nichenetr/Seurat/tidyverse (because it overwrites some functions of Seurat/base R/tidyverse and loads other packages that also overwrite functions of Seurat/base R/tidyverse). However, no error was thrown when SummarizedExperiment
was loaded before.
So: I don't think there is an issue if you do the following
library(nichenetr)
library(Seurat)
library(tidyverse)
seurat_obj = readRDS("data/seuratObj.rds")
expressed_genes_receiver = get_expressed_genes("celltype X", seurat_obj, pct = 0.10)
Here, Assays should be used from Seurat.
If you do want to load other packages, the following should work:
library(SummarizedExperiments) # and other packages if really necessary
library(nichenetr)
library(Seurat)
library(tidyverse)
seurat_obj = readRDS("data/seuratObj.rds")
expressed_genes_receiver = get_expressed_genes("celltype X", seurat_obj, pct = 0.10)
In the near future, I will change the underlying code to avoid these conflicts such that the order in which you load the packages should not matter.
from nichenetr.
I tried the order of the packages you suggested, but the error remains:
Error in .normarg_assays(assays) :
'assays' must be a SimpleList, list or array
Does the Seurat object need to be loaded as a .rds? I load a class Seurat object from my environment.
from nichenetr.
Hi @tkapello
Could you once try this to see whether this resolves the issue?
from nichenetr.
I tried everything you suggested and still I get the same error :-(
Error in .normarg_assays(assays) :
'assays' must be a SimpleList, list or array
from nichenetr.
Hi @tkapello
Could you try to
- re-install nichenetr and run your script again ?
- let me know whether it works now and if not: provide me with your
sessionInfo()
?
from nichenetr.
I uninstalled and re-installed nichenetr
and now I have the following error:
> # Define a receiver cell type
> receiver = "Neutrophil_0"
> expressed_genes_receiver = get_expressed_genes(receiver, baldataset, pct = 0.10, assay_oi = 'RNA')
Error: 'Assays' is not an exported object from 'namespace:Seurat'
As you requested, my SessionInfo():
> sessionInfo()
R version 3.5.3 (2019-03-11)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Debian GNU/Linux 9 (stretch)
Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.19.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] parallel stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] circlize_0.4.6 forcats_0.4.0 stringr_1.4.0
[4] dplyr_0.8.0.1 purrr_0.3.2 readr_1.3.1
[7] tidyr_0.8.3 tibble_2.1.1 ggplot2_3.1.0
[10] tidyverse_1.2.1 Seurat_3.0.0 nichenetr_0.1.0
[13] SummarizedExperiment_1.12.0 DelayedArray_0.8.0 BiocParallel_1.16.6
[16] matrixStats_0.54.0 Biobase_2.42.0 GenomicRanges_1.34.0
[19] GenomeInfoDb_1.18.2 IRanges_2.16.0 S4Vectors_0.20.1
[22] BiocGenerics_0.28.0 BiocManager_1.30.4
loaded via a namespace (and not attached):
[1] reticulate_1.12 R.utils_2.8.0 tidyselect_0.2.5 RSQLite_2.1.1
[5] AnnotationDbi_1.44.0 htmlwidgets_1.3 grid_3.5.3 Rtsne_0.15
[9] munsell_0.5.0 codetools_0.2-16 ica_1.0-2 future_1.12.0
[13] withr_2.1.2 GOSemSim_2.8.0 colorspace_1.4-1 rgexf_0.15.3
[17] knitr_1.22 rstudioapi_0.10 ROCR_1.0-7 DOSE_3.8.2
[21] gbRd_0.4-11 listenv_0.7.0 Rdpack_0.11-0 GenomeInfoDbData_1.2.0
[25] bit64_0.9-7 downloader_0.4 generics_0.0.2 ipred_0.9-8
[29] xfun_0.6 randomForest_4.6-14 R6_2.4.0 rsvd_1.0.0
[33] fgsea_1.8.0 bitops_1.0-6 assertthat_0.2.1 SDMTools_1.1-221
[37] scales_1.0.0 nnet_7.3-12 gtable_0.3.0 npsurv_0.4-0
[41] globals_0.12.4 timeDate_3043.102 rlang_0.3.3 GlobalOptions_0.1.0
[45] splines_3.5.3 lazyeval_0.2.2 ModelMetrics_1.2.2 acepack_1.4.1
[49] broom_0.5.1 brew_1.0-6 checkmate_1.9.1 yaml_2.2.0
[53] reshape2_1.4.3 modelr_0.1.4 backports_1.1.3 qvalue_2.14.1
[57] Hmisc_4.2-0 caret_6.0-82 DiagrammeR_1.0.0 tools_3.5.3
[61] lava_1.6.5 influenceR_0.1.0 gplots_3.0.1.1 RColorBrewer_1.1-2
[65] ggridges_0.5.1 Rcpp_1.0.1 plyr_1.8.4 base64enc_0.1-3
[69] visNetwork_2.0.6 zlibbioc_1.28.0 RCurl_1.95-4.12 rpart_4.1-13
[73] pbapply_1.4-0 viridis_0.5.1 cowplot_0.9.4 zoo_1.8-5
[77] haven_2.1.0 ggrepel_0.8.0 cluster_2.0.7-1 magrittr_1.5
[81] data.table_1.12.0 DO.db_2.9 lmtest_0.9-36 RANN_2.6.1
[85] fitdistrplus_1.0-14 hms_0.4.2 lsei_1.2-0 XML_3.98-1.19
[89] readxl_1.3.1 gridExtra_2.3 shape_1.4.4 compiler_3.5.3
[93] KernSmooth_2.23-15 crayon_1.3.4 R.oo_1.22.0 htmltools_0.3.6
[97] Formula_1.2-3 lubridate_1.7.4 DBI_1.0.0 MASS_7.3-51.3
[101] Matrix_1.2-17 cli_1.1.0 R.methodsS3_1.7.1 gdata_2.18.0
[105] metap_1.1 gower_0.2.0 igraph_1.2.4 pkgconfig_2.0.2
[109] foreign_0.8-71 plotly_4.9.0 recipes_0.1.5 xml2_1.2.0
[113] foreach_1.4.4 XVector_0.22.0 prodlim_2018.04.18 bibtex_0.4.2
[117] rvest_0.3.2 digest_0.6.18 sctransform_0.2.0 tsne_0.1-3
[121] fastmatch_1.1-0 cellranger_1.1.0 htmlTable_1.13.1 Rook_1.1-1
[125] gtools_3.8.1 nlme_3.1-137 jsonlite_1.6 viridisLite_0.3.0
[129] limma_3.38.3 pillar_1.3.1 lattice_0.20-38 GO.db_3.6.0
[133] httr_1.4.0 survival_2.44-1.1 glue_1.3.1 fdrtool_1.2.15
[137] png_0.1-7 iterators_1.0.10 bit_1.1-14 class_7.3-15
[141] stringi_1.4.3 blob_1.1.1 memoise_1.1.0 latticeExtra_0.6-28
[145] caTools_1.17.1.2 irlba_2.3.3 future.apply_1.2.0 ape_5.3
from nichenetr.
Hi @tkapello
It seems that your Seurat version is not the most recent. Could you try to reinstall the newest version?
Can you then first try to run Seurat::Assays()
on your seurat object, and then run get_expressed_genes()
from nichenetr again? And let me know which of these tests did work (and which not).
from nichenetr.
you were right, it was the Seurat version. There was no Assays
function
from nichenetr.
Related Issues (20)
- Error in `generate_info_tables`
- Warning message in `predict_ligand_activities`
- `generate_prioritization_tables` warnings and documentation
- Error when passing the recorrect_umi argument in get_lfc_celltype HOT 1
- Error in WhichCells.Seurat(object = object, idents = ident.2) : Cannot find the following identities in the object: Adjacent HOT 1
- Error in `Idents<-`: ! 'value' must be a factor or vector HOT 3
- Different results running. the same. code in different version. of HOT 6
- Protein complex HOT 1
- Function generate_info_tables return an error HOT 3
- Low AUPR values in analyses HOT 4
- RankActiveLigands Error
- Can NicheNet be used for analyzing three groups? HOT 1
- Parallelization error when optimizing parameters for NicheNet HOT 4
- How is the Ligand-Target-Matrix generated? HOT 2
- Receiver cells in differential analysis HOT 1
- when sender cell type is only one, HOT 1
- Only activating interactions or also repressing? HOT 1
- Naming convention in prioritization table
- Change error in `alias_to_symbol_seurat()` to warning
- discrepancy in results output HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nichenetr.