SingleCellExperiment icon indicating copy to clipboard operation
SingleCellExperiment copied to clipboard

Coercion from *SingleCellExperiment* to *SummarizedExperiment* loses rownames

Open PeteHaitch opened this issue 4 years ago • 1 comments

suppressPackageStartupMessages(library(SingleCellExperiment))
example(SingleCellExperiment, echo = FALSE)
rownames(sce) <- paste0("Gene_", seq_len(nrow(sce)))

# Coercion loses rownames of rowData.
rownames(sce)
#>   [1] "Gene_1"   "Gene_2"   "Gene_3"   "Gene_4"   "Gene_5"   "Gene_6"  
#>   [7] "Gene_7"   "Gene_8"   "Gene_9"   "Gene_10"  "Gene_11"  "Gene_12" 
#>  [13] "Gene_13"  "Gene_14"  "Gene_15"  "Gene_16"  "Gene_17"  "Gene_18" 
#>  [19] "Gene_19"  "Gene_20"  "Gene_21"  "Gene_22"  "Gene_23"  "Gene_24" 
#>  [25] "Gene_25"  "Gene_26"  "Gene_27"  "Gene_28"  "Gene_29"  "Gene_30" 
#>  [31] "Gene_31"  "Gene_32"  "Gene_33"  "Gene_34"  "Gene_35"  "Gene_36" 
#>  [37] "Gene_37"  "Gene_38"  "Gene_39"  "Gene_40"  "Gene_41"  "Gene_42" 
#>  [43] "Gene_43"  "Gene_44"  "Gene_45"  "Gene_46"  "Gene_47"  "Gene_48" 
#>  [49] "Gene_49"  "Gene_50"  "Gene_51"  "Gene_52"  "Gene_53"  "Gene_54" 
#>  [55] "Gene_55"  "Gene_56"  "Gene_57"  "Gene_58"  "Gene_59"  "Gene_60" 
#>  [61] "Gene_61"  "Gene_62"  "Gene_63"  "Gene_64"  "Gene_65"  "Gene_66" 
#>  [67] "Gene_67"  "Gene_68"  "Gene_69"  "Gene_70"  "Gene_71"  "Gene_72" 
#>  [73] "Gene_73"  "Gene_74"  "Gene_75"  "Gene_76"  "Gene_77"  "Gene_78" 
#>  [79] "Gene_79"  "Gene_80"  "Gene_81"  "Gene_82"  "Gene_83"  "Gene_84" 
#>  [85] "Gene_85"  "Gene_86"  "Gene_87"  "Gene_88"  "Gene_89"  "Gene_90" 
#>  [91] "Gene_91"  "Gene_92"  "Gene_93"  "Gene_94"  "Gene_95"  "Gene_96" 
#>  [97] "Gene_97"  "Gene_98"  "Gene_99"  "Gene_100" "Gene_101" "Gene_102"
#> [103] "Gene_103" "Gene_104" "Gene_105" "Gene_106" "Gene_107" "Gene_108"
#> [109] "Gene_109" "Gene_110" "Gene_111" "Gene_112" "Gene_113" "Gene_114"
#> [115] "Gene_115" "Gene_116" "Gene_117" "Gene_118" "Gene_119" "Gene_120"
#> [121] "Gene_121" "Gene_122" "Gene_123" "Gene_124" "Gene_125" "Gene_126"
#> [127] "Gene_127" "Gene_128" "Gene_129" "Gene_130" "Gene_131" "Gene_132"
#> [133] "Gene_133" "Gene_134" "Gene_135" "Gene_136" "Gene_137" "Gene_138"
#> [139] "Gene_139" "Gene_140" "Gene_141" "Gene_142" "Gene_143" "Gene_144"
#> [145] "Gene_145" "Gene_146" "Gene_147" "Gene_148" "Gene_149" "Gene_150"
#> [151] "Gene_151" "Gene_152" "Gene_153" "Gene_154" "Gene_155" "Gene_156"
#> [157] "Gene_157" "Gene_158" "Gene_159" "Gene_160" "Gene_161" "Gene_162"
#> [163] "Gene_163" "Gene_164" "Gene_165" "Gene_166" "Gene_167" "Gene_168"
#> [169] "Gene_169" "Gene_170" "Gene_171" "Gene_172" "Gene_173" "Gene_174"
#> [175] "Gene_175" "Gene_176" "Gene_177" "Gene_178" "Gene_179" "Gene_180"
#> [181] "Gene_181" "Gene_182" "Gene_183" "Gene_184" "Gene_185" "Gene_186"
#> [187] "Gene_187" "Gene_188" "Gene_189" "Gene_190" "Gene_191" "Gene_192"
#> [193] "Gene_193" "Gene_194" "Gene_195" "Gene_196" "Gene_197" "Gene_198"
#> [199] "Gene_199" "Gene_200"
rownames(as(sce, "SummarizedExperiment"))
#> NULL

# It seems the loss occurs from the rowData slot?
rownames(rowData(sce))
#>   [1] "Gene_1"   "Gene_2"   "Gene_3"   "Gene_4"   "Gene_5"   "Gene_6"  
#>   [7] "Gene_7"   "Gene_8"   "Gene_9"   "Gene_10"  "Gene_11"  "Gene_12" 
#>  [13] "Gene_13"  "Gene_14"  "Gene_15"  "Gene_16"  "Gene_17"  "Gene_18" 
#>  [19] "Gene_19"  "Gene_20"  "Gene_21"  "Gene_22"  "Gene_23"  "Gene_24" 
#>  [25] "Gene_25"  "Gene_26"  "Gene_27"  "Gene_28"  "Gene_29"  "Gene_30" 
#>  [31] "Gene_31"  "Gene_32"  "Gene_33"  "Gene_34"  "Gene_35"  "Gene_36" 
#>  [37] "Gene_37"  "Gene_38"  "Gene_39"  "Gene_40"  "Gene_41"  "Gene_42" 
#>  [43] "Gene_43"  "Gene_44"  "Gene_45"  "Gene_46"  "Gene_47"  "Gene_48" 
#>  [49] "Gene_49"  "Gene_50"  "Gene_51"  "Gene_52"  "Gene_53"  "Gene_54" 
#>  [55] "Gene_55"  "Gene_56"  "Gene_57"  "Gene_58"  "Gene_59"  "Gene_60" 
#>  [61] "Gene_61"  "Gene_62"  "Gene_63"  "Gene_64"  "Gene_65"  "Gene_66" 
#>  [67] "Gene_67"  "Gene_68"  "Gene_69"  "Gene_70"  "Gene_71"  "Gene_72" 
#>  [73] "Gene_73"  "Gene_74"  "Gene_75"  "Gene_76"  "Gene_77"  "Gene_78" 
#>  [79] "Gene_79"  "Gene_80"  "Gene_81"  "Gene_82"  "Gene_83"  "Gene_84" 
#>  [85] "Gene_85"  "Gene_86"  "Gene_87"  "Gene_88"  "Gene_89"  "Gene_90" 
#>  [91] "Gene_91"  "Gene_92"  "Gene_93"  "Gene_94"  "Gene_95"  "Gene_96" 
#>  [97] "Gene_97"  "Gene_98"  "Gene_99"  "Gene_100" "Gene_101" "Gene_102"
#> [103] "Gene_103" "Gene_104" "Gene_105" "Gene_106" "Gene_107" "Gene_108"
#> [109] "Gene_109" "Gene_110" "Gene_111" "Gene_112" "Gene_113" "Gene_114"
#> [115] "Gene_115" "Gene_116" "Gene_117" "Gene_118" "Gene_119" "Gene_120"
#> [121] "Gene_121" "Gene_122" "Gene_123" "Gene_124" "Gene_125" "Gene_126"
#> [127] "Gene_127" "Gene_128" "Gene_129" "Gene_130" "Gene_131" "Gene_132"
#> [133] "Gene_133" "Gene_134" "Gene_135" "Gene_136" "Gene_137" "Gene_138"
#> [139] "Gene_139" "Gene_140" "Gene_141" "Gene_142" "Gene_143" "Gene_144"
#> [145] "Gene_145" "Gene_146" "Gene_147" "Gene_148" "Gene_149" "Gene_150"
#> [151] "Gene_151" "Gene_152" "Gene_153" "Gene_154" "Gene_155" "Gene_156"
#> [157] "Gene_157" "Gene_158" "Gene_159" "Gene_160" "Gene_161" "Gene_162"
#> [163] "Gene_163" "Gene_164" "Gene_165" "Gene_166" "Gene_167" "Gene_168"
#> [169] "Gene_169" "Gene_170" "Gene_171" "Gene_172" "Gene_173" "Gene_174"
#> [175] "Gene_175" "Gene_176" "Gene_177" "Gene_178" "Gene_179" "Gene_180"
#> [181] "Gene_181" "Gene_182" "Gene_183" "Gene_184" "Gene_185" "Gene_186"
#> [187] "Gene_187" "Gene_188" "Gene_189" "Gene_190" "Gene_191" "Gene_192"
#> [193] "Gene_193" "Gene_194" "Gene_195" "Gene_196" "Gene_197" "Gene_198"
#> [199] "Gene_199" "Gene_200"
rownames(rowData(as(sce, "SummarizedExperiment")))
#> NULL

Created on 2022-01-12 by the reprex package (v2.0.1)

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.1.2 (2021-11-01)
#>  os       Ubuntu 20.04.3 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language en_AU:en
#>  collate  en_AU.UTF-8
#>  ctype    en_AU.UTF-8
#>  tz       Australia/Melbourne
#>  date     2022-01-12
#>  pandoc   2.11.4 @ /usr/lib/rstudio/bin/pandoc/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package              * version  date (UTC) lib source
#>  Biobase              * 2.54.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  BiocGenerics         * 0.40.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  bitops                 1.0-7    2021-04-24 [1] RSPM (R 4.1.0)
#>  cli                    3.1.0    2021-10-27 [1] RSPM (R 4.1.2)
#>  DelayedArray           0.20.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  digest                 0.6.29   2021-12-01 [1] RSPM (R 4.1.2)
#>  evaluate               0.14     2019-05-28 [1] RSPM (R 4.1.0)
#>  fastmap                1.1.0    2021-01-25 [1] RSPM (R 4.1.0)
#>  fs                     1.5.2    2021-12-08 [1] RSPM (R 4.1.2)
#>  GenomeInfoDb         * 1.30.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  GenomeInfoDbData       1.2.7    2021-10-28 [1] RSPM (R 4.1.1)
#>  GenomicRanges        * 1.46.1   2021-11-18 [1] RSPM (R 4.1.2)
#>  glue                   1.6.0    2021-12-17 [1] RSPM (R 4.1.0)
#>  highr                  0.9      2021-04-16 [1] RSPM (R 4.1.0)
#>  htmltools              0.5.2    2021-08-25 [1] RSPM (R 4.1.0)
#>  IRanges              * 2.28.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  knitr                  1.37     2021-12-16 [1] RSPM (R 4.1.0)
#>  lattice                0.20-45  2021-09-22 [4] CRAN (R 4.1.1)
#>  magrittr               2.0.1    2020-11-17 [1] RSPM (R 4.1.0)
#>  Matrix                 1.4-0    2021-12-08 [4] CRAN (R 4.1.2)
#>  MatrixGenerics       * 1.6.0    2021-10-26 [1] RSPM (R 4.1.2)
#>  matrixStats          * 0.61.0   2021-09-17 [1] RSPM (R 4.1.1)
#>  RCurl                  1.98-1.5 2021-09-17 [1] RSPM (R 4.1.1)
#>  reprex                 2.0.1    2021-08-05 [1] RSPM (R 4.1.0)
#>  rlang                  0.4.12   2021-10-18 [1] RSPM (R 4.1.1)
#>  rmarkdown              2.11     2021-09-14 [1] RSPM (R 4.1.1)
#>  rstudioapi             0.13     2020-11-12 [1] RSPM (R 4.1.0)
#>  S4Vectors            * 0.32.3   2021-11-21 [1] RSPM (R 4.1.2)
#>  sessioninfo            1.2.2    2021-12-06 [1] RSPM (R 4.1.2)
#>  SingleCellExperiment * 1.16.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  stringi                1.7.6    2021-11-29 [1] RSPM (R 4.1.2)
#>  stringr                1.4.0    2019-02-10 [1] RSPM (R 4.1.0)
#>  SummarizedExperiment * 1.24.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  withr                  2.4.3    2021-11-30 [1] RSPM (R 4.1.2)
#>  xfun                   0.29     2021-12-14 [1] RSPM (R 4.1.0)
#>  XVector                0.34.0   2021-10-26 [1] RSPM (R 4.1.2)
#>  yaml                   2.2.1    2020-02-01 [1] RSPM (R 4.1.0)
#>  zlibbioc               1.40.0   2021-10-26 [1] RSPM (R 4.1.2)
#> 
#>  [1] /home/peter/R/x86_64-pc-linux-gnu-library/4.1
#>  [2] /usr/local/lib/R/site-library
#>  [3] /usr/lib/R/site-library
#>  [4] /usr/lib/R/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

PeteHaitch avatar Jan 11 '22 23:01 PeteHaitch

Oh I now see https://github.com/Bioconductor/SummarizedExperiment/issues/29.

PeteHaitch avatar Jan 11 '22 23:01 PeteHaitch