Summary

A lineage-resolved molecular atlas of C. elegans embryogenesis at single-cell resolution (Packer et al 2019 Science)

Load packages

library( "scater" )
library( "scran" )

library( "tidyverse")
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to create bus connection: Host is down
running command 'timedatectl' had status 1

Load data

ExpressionSet

x <- readRDS( "/home/idies/workspace/c_moor_data/VisCello.celegans/inst/app/data/eset.rds" )

cell.type

table( pData(x)$cell.type )

              ABarpaaa_lineage                    Arcade_cell 
                           273                            434 
              Body_wall_muscle         Ciliated_amphid_neuron 
                         17520                           6090 
    Ciliated_non_amphid_neuron                    Coelomocyte 
                          4468                            787 
                Excretory_cell          Excretory_cell_parent 
                           215                             62 
       Excretory_duct_and_pore                Excretory_gland 
                            91                            205 
               G2_and_W_blasts                       Germline 
                            72                            499 
                          Glia                            GLR 
                          1857                            768 
                           hmc                hmc_and_homolog 
                           189                            122 
                   hmc_homolog            hyp1V_and_ant_arc_V 
                           155                            112 
                    Hypodermis   Intestinal_and_rectal_muscle 
                          7746                            568 
                     Intestine                         M_cell 
                          1732                            315 
Parent_of_exc_duct_pore_DB_1_3        Parent_of_exc_gland_AVK 
                            61                            114 
 Parent_of_hyp1V_and_ant_arc_V               Pharyngeal_gland 
                            75                            786 
   Pharyngeal_intestinal_valve       Pharyngeal_marginal_cell 
                           493                            911 
             Pharyngeal_muscle              Pharyngeal_neuron 
                          2562                           1471 
                   Rectal_cell                   Rectal_gland 
                           327                            265 
                     Seam_cell                              T 
                          2766                            141 
                   unannotated                            XXX 
                         41435                             25 
                         Z1_Z4 
                           372 
df_meta <- pData(x)
df_meta
df_meta %>%
  filter( cell.type != "unannotated" ) %>%
ggplot() +
  geom_bar( aes( cell.type ) ) +
  theme( axis.text.x = element_text( angle=90 ) )

SingleCellExperiment

sce <- SingleCellExperiment(assays = list(counts = exprs(x)))

Process

Normalize

sce <- logNormCounts( sce )

Variable Genes

dec <- modelGeneVar( sce )
hvg <- getTopHVGs( dec, prop=0.1 )

Cluster

sce <- runPCA( sce, ncomponents=25, subset_row=hvg )
sce <- runUMAP( sce, dimred="PCA", external_neighbors=TRUE )
g <- buildSNNGraph( sce, use.dimred="PCA" )
colLabels(sce) <- factor( igraph::cluster_louvain(g)$membership )

Visualize

plotUMAP( sce, colour_by="label" )

plotUMAP( sce, colour_by="myo-3" )

Document software

sessionInfo()
R version 4.0.3 (2020-10-10)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 8

Matrix products: default
BLAS:   /home/idies/R/lib64/R/lib/libRblas.so
LAPACK: /home/idies/R/lib64/R/lib/libRlapack.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=en_US.UTF-8   
 [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  
[9] base     

other attached packages:
 [1] forcats_0.5.1               stringr_1.4.0              
 [3] dplyr_1.0.5                 purrr_0.3.4                
 [5] readr_1.4.0                 tidyr_1.1.3                
 [7] tibble_3.1.1                tidyverse_1.3.1            
 [9] scran_1.18.7                scater_1.18.6              
[11] ggplot2_3.3.3               SingleCellExperiment_1.12.0
[13] SummarizedExperiment_1.20.0 Biobase_2.50.0             
[15] GenomicRanges_1.42.0        GenomeInfoDb_1.26.7        
[17] IRanges_2.24.1              S4Vectors_0.28.1           
[19] BiocGenerics_0.36.1         MatrixGenerics_1.2.1       
[21] matrixStats_0.58.0         

loaded via a namespace (and not attached):
 [1] fs_1.5.0                  bitops_1.0-7              lubridate_1.7.10         
 [4] httr_1.4.2                tools_4.0.3               backports_1.2.1          
 [7] bslib_0.2.4               utf8_1.2.1                R6_2.5.0                 
[10] irlba_2.3.3               vipor_0.4.5               uwot_0.1.10              
[13] DBI_1.1.1                 colorspace_2.0-0          withr_2.4.2              
[16] tidyselect_1.1.1          gridExtra_2.3             compiler_4.0.3           
[19] cli_2.5.0                 rvest_1.0.0               BiocNeighbors_1.8.2      
[22] xml2_1.3.2                DelayedArray_0.16.3       labeling_0.4.2           
[25] sass_0.3.1                scales_1.1.1              digest_0.6.27            
[28] rmarkdown_2.7             XVector_0.30.0            pkgconfig_2.0.3          
[31] htmltools_0.5.1.1         sparseMatrixStats_1.2.1   dbplyr_2.1.1             
[34] limma_3.46.0              readxl_1.3.1              rlang_0.4.10             
[37] rstudioapi_0.13           DelayedMatrixStats_1.12.3 farver_2.1.0             
[40] jquerylib_0.1.4           generics_0.1.0            jsonlite_1.7.2           
[43] BiocParallel_1.24.1       RCurl_1.98-1.3            magrittr_2.0.1           
[46] BiocSingular_1.6.0        GenomeInfoDbData_1.2.4    scuttle_1.0.4            
[49] Matrix_1.2-18             Rcpp_1.0.6                ggbeeswarm_0.6.0         
[52] munsell_0.5.0             fansi_0.4.2               viridis_0.6.0            
[55] lifecycle_1.0.0           stringi_1.5.3             yaml_2.2.1               
[58] edgeR_3.32.1              zlibbioc_1.36.0           grid_4.0.3               
[61] dqrng_0.2.1               crayon_1.4.1              lattice_0.20-41          
[64] cowplot_1.1.1             haven_2.4.1               beachmat_2.6.4           
[67] hms_1.0.0                 locfit_1.5-9.4            knitr_1.33               
[70] pillar_1.6.0              igraph_1.2.6              reprex_2.0.0             
[73] glue_1.4.2                evaluate_0.14             modelr_0.1.8             
[76] vctrs_0.3.8               cellranger_1.1.0          gtable_0.3.0             
[79] assertthat_0.2.1          xfun_0.22                 rsvd_1.0.5               
[82] broom_0.7.6               RSpectra_0.16-0           viridisLite_0.4.0        
[85] beeswarm_0.3.1            bluster_1.0.0             statmod_1.4.35           
[88] ellipsis_0.3.2           
LS0tCnRpdGxlIDogIkV4cGxvcmUgVmlzQ2VsbG8iCmF1dGhvcjogIkZyZWRlcmljayBKIFRhbiIKZGF0ZSAgOiAiMTAgU2VwdGVtYmVyIDIwMjEiCm91dHB1dDogCiAgaHRtbF9ub3RlYm9vazoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2Zsb2F0OiB0cnVlCi0tLQoKIyBTdW1tYXJ5CgpBIGxpbmVhZ2UtcmVzb2x2ZWQgbW9sZWN1bGFyIGF0bGFzIG9mIEMuIGVsZWdhbnMgZW1icnlvZ2VuZXNpcyBhdCBzaW5nbGUtY2VsbCByZXNvbHV0aW9uCihQYWNrZXIgZXQgYWwgMjAxOSBTY2llbmNlKQoKLSBodHRwczovL3B1Ym1lZC5nb3YvMzE0ODg3MDYKLSBodHRwczovL2NlbGxvLnNoaW55YXBwcy5pby9jZWxlZ2FucwotIGh0dHBzOi8vZ2l0aHViLmNvbS9xaW56aHUvVmlzQ2VsbG8uY2VsZWdhbnMKLSBodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L2dlby9xdWVyeS9hY2MuY2dpP2FjYz1HU0UxMjY5NTQKCiMgTG9hZCBwYWNrYWdlcwoKYGBge3IgbWVzc2FnZT1GQUxTRX0KbGlicmFyeSggInNjYXRlciIgKQpsaWJyYXJ5KCAic2NyYW4iICkKCmxpYnJhcnkoICJ0aWR5dmVyc2UiKQpgYGAKCiMgTG9hZCBkYXRhIHsudGFic2V0fQoKIyMgRXhwcmVzc2lvblNldAoKYGBge3J9CnggPC0gcmVhZFJEUyggIi9ob21lL2lkaWVzL3dvcmtzcGFjZS9jX21vb3JfZGF0YS9WaXNDZWxsby5jZWxlZ2Fucy9pbnN0L2FwcC9kYXRhL2VzZXQucmRzIiApCmBgYAoKIyMgY2VsbC50eXBlCgpgYGB7cn0KdGFibGUoIHBEYXRhKHgpJGNlbGwudHlwZSApCmBgYAoKYGBge3J9CmRmX21ldGEgPC0gcERhdGEoeCkKZGZfbWV0YQpgYGAKCmBgYHtyIGZpZy53aWR0aD0xMH0KZGZfbWV0YSAlPiUKICBmaWx0ZXIoIGNlbGwudHlwZSAhPSAidW5hbm5vdGF0ZWQiICkgJT4lCmdncGxvdCgpICsKICBnZW9tX2JhciggYWVzKCBjZWxsLnR5cGUgKSApICsKICB0aGVtZSggYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoIGFuZ2xlPTkwICkgKQpgYGAKCiMjIFNpbmdsZUNlbGxFeHBlcmltZW50CgpgYGB7cn0Kc2NlIDwtIFNpbmdsZUNlbGxFeHBlcmltZW50KGFzc2F5cyA9IGxpc3QoY291bnRzID0gZXhwcnMoeCkpKQpgYGAKCiMgUHJvY2VzcyB7LnRhYnNldH0KCiMjIE5vcm1hbGl6ZQoKYGBge3J9CnNjZSA8LSBsb2dOb3JtQ291bnRzKCBzY2UgKQpgYGAKCiMjIFZhcmlhYmxlIEdlbmVzCgpgYGB7cn0KZGVjIDwtIG1vZGVsR2VuZVZhciggc2NlICkKaHZnIDwtIGdldFRvcEhWR3MoIGRlYywgcHJvcD0wLjEgKQpgYGAKCiMjIENsdXN0ZXIKCmBgYHtyfQpzY2UgPC0gcnVuUENBKCBzY2UsIG5jb21wb25lbnRzPTI1LCBzdWJzZXRfcm93PWh2ZyApCnNjZSA8LSBydW5VTUFQKCBzY2UsIGRpbXJlZD0iUENBIiwgZXh0ZXJuYWxfbmVpZ2hib3JzPVRSVUUgKQpgYGAKCmBgYHtyfQpnIDwtIGJ1aWxkU05OR3JhcGgoIHNjZSwgdXNlLmRpbXJlZD0iUENBIiApCmNvbExhYmVscyhzY2UpIDwtIGZhY3RvciggaWdyYXBoOjpjbHVzdGVyX2xvdXZhaW4oZykkbWVtYmVyc2hpcCApCmBgYAoKIyBWaXN1YWxpemUKCmBgYHtyfQpwbG90VU1BUCggc2NlLCBjb2xvdXJfYnk9ImxhYmVsIiApCmBgYAoKYGBge3J9CnBsb3RVTUFQKCBzY2UsIGNvbG91cl9ieT0ibXlvLTMiICkKYGBgCgojIERvY3VtZW50IHNvZnR3YXJlCgo8ZGV0YWlscz4KYGBge3J9CnNlc3Npb25JbmZvKCkKYGBgCjwvZGV0YWlscz4KCgoKCgoK