## This script contains all commands executed in the PROJECT afe5sh and can be run again using the ASAP_run docker (https://hub.docker.com/layers/fabdavid/asap_run) echo '*******************Reproducing analysis of PROJECT afe5sh / ASAP21**********************' echo '***************************************************************************************' ## CONFIGURATION (edit below to match your machine; lines until the separator) export ASAP_PROJECTS_DIR=/asap_projects ## change this to write analysis results there (there will be subdirectory for each project key). export LOOM_DIR=$ASAP_PROJECTS_DIR/loom_files export ASAP_DATA_DB_HOST=localhost; export ASAP_DATA_DB_PORT=5432 export PSQL_DIR=/usr/pgsql-10/bin ## ========================================================= export PROJECT_DIR=$ASAP_PROJECTS_DIR/afe5sh ## Pull Docker images (must run before any docker run in this script) docker pull fabdavid/asap_run:v5 ## Host LOOM staging directory (inside Docker volume) docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $LOOM_DIR; chmod 777 $LOOM_DIR" echo 'This project is PUBLIC => Nothing to do' ## Local PostgreSQL: create ASAP data database and load dump if missing if ! psql -lqt | cut -d \| -f 1 | grep -qw asap_data_v5; then echo 'Create database asap_data_v5'; echo '$PSQL_DIR/createdb -p $ASAP_DATA_DB_PORT asap_data_v5'; $PSQL_DIR/createdb -p $ASAP_DATA_DB_PORT asap_data_v5; echo 'wget -qO - https://asap.epfl.ch/dumps/asap_data_v5.sql.gz | gunzip | grep -v \'AS integer\' | $PSQL_DIR/psql -p $ASAP_DATA_DB_PORT asap_data_v5'; wget -qO - https://asap.epfl.ch/dumps/asap_data_v5.sql.gz | gunzip | grep -v 'AS integer' | $PSQL_DIR/psql -p $ASAP_DATA_DB_PORT asap_data_v5; fi ## Project directory on the shared volume docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR" ## Step output directories (one folder per pipeline step that has runs) docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/parsing/ && mkdir -p $PROJECT_DIR/gene_filtering/ && mkdir -p $PROJECT_DIR/normalization/ && mkdir -p $PROJECT_DIR/dim_reduction/ && mkdir -p $PROJECT_DIR/clustering/ && mkdir -p $PROJECT_DIR/de/ && mkdir -p $PROJECT_DIR/ge/ && mkdir -p $PROJECT_DIR/cell_filtering/ && mkdir -p $PROJECT_DIR/scaling/" ## Parsed LOOM file (public: wget; private: place file then symlink as below) echo 'Loading parsed Loom file...' docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "wget -qO $PROJECT_DIR/parsing/output.loom 'https://asap.epfl.ch/projects/afe5sh/get_file?filename=parsing/output.loom'" ## Re-execute each recorded run (parsing step is skipped; LOOM is already in place) ## ---------------------------------------------------------------- ## Run 713946 Cell filtering (Cell filtering #1 qc_plots) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/cell_filtering/713946/" ## writing file $PROJECT_DIR/cell_filtering/713946/discarded_cols.json echo '-> writing file $PROJECT_DIR/cell_filtering/713946/discarded_cols.json' docker run --net=host --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "echo '{"discarded_cols":[1678]}' > $PROJECT_DIR/cell_filtering/713946/discarded_cols.json" ## writing file $PROJECT_DIR/cell_filtering/713946/manually_discarded_cols.json echo '-> writing file $PROJECT_DIR/cell_filtering/713946/manually_discarded_cols.json' docker run --net=host --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "echo '{"manually_discarded_cols":[]}' > $PROJECT_DIR/cell_filtering/713946/manually_discarded_cols.json" ## Running Cell filtering [713946] [Cell filtering #1 qc_plots] (manual_selection: depth:4744 detected_genes:1370 mito_content:0 protein_coding_content:80 ribo_content:0 nber_manually_discarded_cols:0 input_matrix:parsing) echo '-> Running Cell filtering [713946] [Cell filtering #1 qc_plots] (manual_selection: depth:4744 detected_genes:1370 mito_content:0 protein_coding_content:80 ribo_content:0 nber_manually_discarded_cols:0 input_matrix:parsing)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713946 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'java -jar /srv/ASAP.jar -T FilterCols -loom /data/asap2/users/454/s6qqvv/parsing/output.loom -o /data/asap2/users/1/s6qqvv/cell_filtering/713946 -col_indexes_file /data/asap2/users/1/s6qqvv/cell_filtering/713946/discarded_cols.json 1> /data/asap2/users/1/s6qqvv/cell_filtering/713946/exec.out 2> /data/asap2/users/1/s6qqvv/cell_filtering/713946/exec.err'" ## ---------------------------------------------------------------- ## Run 713947 Gene filtering (Gene filtering #1 basic) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/gene_filtering/713947/" ## Running Gene filtering [713947] [Gene filtering #1 basic] (input_matrix:cell_filtering #1) echo '-> Running Gene filtering [713947] [Gene filtering #1 basic] (input_matrix:cell_filtering #1)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713947 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'java -jar /srv/ASAP.jar -T FilterRows -loom /data/asap2/users/1/s6qqvv/cell_filtering/713946/output.loom -o /data/asap2/users/1/s6qqvv/gene_filtering/713947 -m basic 1> /data/asap2/users/1/s6qqvv/gene_filtering/713947/exec.out 2> /data/asap2/users/1/s6qqvv/gene_filtering/713947/exec.err'" ## ---------------------------------------------------------------- ## Run 713948 Normalization (Normalization #1 asap_seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/normalization/713948/" ## Running Normalization [713948] [Normalization #1 asap_seurat] (input_matrix:gene_filtering #1 scale_factor:10000) echo '-> Running Normalization [713948] [Normalization #1 asap_seurat] (input_matrix:gene_filtering #1 scale_factor:10000)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713948 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'java -jar /srv/ASAP.jar -T Normalization -loom /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom -o /data/asap2/users/1/s6qqvv/normalization/713948/output.json -oAnnot /layers/norm_1_asap_seurat -scaleFactor 10000 1> /data/asap2/users/1/s6qqvv/normalization/713948/exec.out 2> /data/asap2/users/1/s6qqvv/normalization/713948/exec.err'" ## ---------------------------------------------------------------- ## Run 713949 Scaling (Scaling #1 asap_seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/scaling/713949/" ## Running Scaling [713949] [Scaling #1 asap_seurat] (input_matrix:normalization #1 do_scale:true do_center:true scale_max:10) echo '-> Running Scaling [713949] [Scaling #1 asap_seurat] (input_matrix:normalization #1 do_scale:true do_center:true scale_max:10)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713949 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'java -jar /srv/ASAP.jar -T Scaling -loom /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom -o /data/asap2/users/1/s6qqvv/scaling/713949/output.json -iAnnot /layers/norm_1_asap_seurat -oAnnot /layers/scaling_1_asap_seurat -scale true -center true -scaleMax 10 1> /data/asap2/users/1/s6qqvv/scaling/713949/exec.out 2> /data/asap2/users/1/s6qqvv/scaling/713949/exec.err'" ## ---------------------------------------------------------------- ## Run 713950 Clustering (Clustering #1 seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/clustering/713950/" ## Running Clustering [713950] [Clustering #1 seurat] (input_matrix:scaling #1 k:20 resolution:0.8 algorithm:louvain graph_type:snn) echo '-> Running Clustering [713950] [Clustering #1 seurat] (input_matrix:scaling #1 k:20 resolution:0.8 algorithm:louvain graph_type:snn)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713950 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla clustering.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/clustering/713950 seurat /layers/scaling_1_asap_seurat /col_attrs/_clust_1_seurat 20 0.8 louvain snn 1> /data/asap2/users/1/s6qqvv/clustering/713950/exec.out 2> /data/asap2/users/1/s6qqvv/clustering/713950/exec.err'" ## ---------------------------------------------------------------- ## Run 713951 Dimension reduction (Dimension reduction #1 umap) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/dim_reduction/713951/" ## Running Dimension reduction [713951] [Dimension reduction #1 umap] (input_matrix:scaling #1 nber_dims:2 min_dist:0.1 n_neighbors:30 metric:correlation) echo '-> Running Dimension reduction [713951] [Dimension reduction #1 umap] (input_matrix:scaling #1 nber_dims:2 min_dist:0.1 n_neighbors:30 metric:correlation)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713951 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla dimension_reduction.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/dim_reduction/713951 umap /layers/scaling_1_asap_seurat /col_attrs/_dr_1_umap_2D 2 0.1 30 correlation 1> /data/asap2/users/1/s6qqvv/dim_reduction/713951/exec.out 2> /data/asap2/users/1/s6qqvv/dim_reduction/713951/exec.err'" ## ---------------------------------------------------------------- ## Run 713952 Clustering (Clustering #2 seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/clustering/713952/" ## Running Clustering [713952] [Clustering #2 seurat] (input_matrix:scaling #1 k:20 resolution:1 algorithm:louvain graph_type:snn) echo '-> Running Clustering [713952] [Clustering #2 seurat] (input_matrix:scaling #1 k:20 resolution:1 algorithm:louvain graph_type:snn)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713952 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla clustering.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/clustering/713952 seurat /layers/scaling_1_asap_seurat /col_attrs/_clust_2_seurat 20 1 louvain snn 1> /data/asap2/users/1/s6qqvv/clustering/713952/exec.out 2> /data/asap2/users/1/s6qqvv/clustering/713952/exec.err'" ## ---------------------------------------------------------------- ## Run 713953 Clustering (Clustering #3 kmeans) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/clustering/713953/" ## Running Clustering [713953] [Clustering #3 kmeans] (input_matrix:scaling #1 nb_clust:2:10 algorithm:Hartigan-Wong) echo '-> Running Clustering [713953] [Clustering #3 kmeans] (input_matrix:scaling #1 nb_clust:2:10 algorithm:Hartigan-Wong)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713953 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla clustering.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/clustering/713953 kmeans /layers/scaling_1_asap_seurat /col_attrs/_clust_3_kmeans 2:10 Hartigan-Wong 1> /data/asap2/users/1/s6qqvv/clustering/713953/exec.out 2> /data/asap2/users/1/s6qqvv/clustering/713953/exec.err'" ## ---------------------------------------------------------------- ## Run 713954 Differential expression (Differential expression #1 wilcox_seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/de/713954/" ## Running Differential expression [713954] [Differential expression #1 wilcox_seurat] (input_matrix:normalization #1 groups:clustering #3 group_ref:1 group_comp:2 min_pct:0.1 min_diff_pct: fc_threshold:1.3 max_cells_per_ident:) echo '-> Running Differential expression [713954] [Differential expression #1 wilcox_seurat] (input_matrix:normalization #1 groups:clustering #3 group_ref:1 group_comp:2 min_pct:0.1 min_diff_pct: fc_threshold:1.3 max_cells_per_ident:)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713954 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla de.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/de/713954 wilcox_seurat /layers/norm_1_asap_seurat /row_attrs/_de_1_wilcox_seurat null /col_attrs/_clust_3_kmeans 1 2 false 0.1 null 1.3 null 16 1> /data/asap2/users/1/s6qqvv/de/713954/exec.out 2> /data/asap2/users/1/s6qqvv/de/713954/exec.err'" ## ---------------------------------------------------------------- ## Run 713955 Differential expression (Differential expression #2 wilcox_seurat) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/de/713955/" ## Running Differential expression [713955] [Differential expression #2 wilcox_seurat] (input_matrix:normalization #1 groups:clustering #3 group_ref:1 group_comp:2 min_pct:0.25 min_diff_pct: fc_threshold:0.2 max_cells_per_ident:) echo '-> Running Differential expression [713955] [Differential expression #2 wilcox_seurat] (input_matrix:normalization #1 groups:clustering #3 group_ref:1 group_comp:2 min_pct:0.25 min_diff_pct: fc_threshold:0.2 max_cells_per_ident:)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713955 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'Rscript --vanilla de.R /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom /data/asap2/users/1/s6qqvv/de/713955 wilcox_seurat /layers/norm_1_asap_seurat /row_attrs/_de_2_wilcox_seurat null /col_attrs/_clust_3_kmeans 1 2 false 0.25 null 0.2 null 16 1> /data/asap2/users/1/s6qqvv/de/713955/exec.out 2> /data/asap2/users/1/s6qqvv/de/713955/exec.err'" ## ---------------------------------------------------------------- ## Run 713956 Gene Enrichment (Gene Enrichment #1 basic) ## ---------------------------------------------------------------- ## Ensure output directory exists docker run --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "mkdir -p $PROJECT_DIR/ge/713956/" ## Running Gene Enrichment [713956] [Gene Enrichment #1 basic] (input_de:de #2 fdr_cutoff:0.05 fc_cutoff:1 adj_method:fdr min:15 max:500) echo '-> Running Gene Enrichment [713956] [Gene Enrichment #1 basic] (input_de:de #2 fdr_cutoff:0.05 fc_cutoff:1 adj_method:fdr min:15 max:500)' ## Command docker run -v /data/asap2_test:/data/asap2_test --name asap_dev_713956 --net=host -e HOST_USER_ID=$(id -u) -e HOST_USER_GID=$(id -g) --entrypoint '/bin/sh' --rm -v $ASAP_PROJECTS_DIR:$ASAP_PROJECTS_DIR fabdavid/asap_run:v5 -c "sh -c 'java -jar /srv/ASAP.jar -T Enrichment -loom /data/asap2/users/1/s6qqvv/gene_filtering/713947/output.loom -m fet -f /data/asap2/users/1/s6qqvv/tmp/454_53871_1_0.05_filtered_ids.json -o /data/asap2/users/1/s6qqvv/ge/713956/output.json -max 500 -min 15 -adj fdr -geneset 52 -h $ASAP_DATA_DB_HOST:$ASAP_DATA_DB_PORT/asap_data_v5 1> /data/asap2/users/1/s6qqvv/ge/713956/exec.out 2> /data/asap2/users/1/s6qqvv/ge/713956/exec.err'"