diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 19d907385821582ee042178815224b877eb8f20e..e7e7a07b8f13d737e841d098f775585ae8452035 100755
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,8 +2,8 @@ before_script:
   - module load astrocyte
   - module load python/3.6.1-2-anaconda
   - pip install --user pytest-pythonpath==0.7.1 pytest-cov==2.5.1
+  - module load nextflow/20.01.0
   - module load singularity/3.0.2
-  - module load nextflow/19.09.0
   - mkdir -p test_data/hu.v2s1r500
   - mkdir -p test_data/hu.v3s1r500
   - mkdir -p test_data/mu.v3s1r500
@@ -30,7 +30,7 @@ astrocyte_cli:
   artifacts:
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -44,7 +44,8 @@ astrocyte_cli:
       - master
       - tags
   script:
-    - singularity run 'docker://bicf/cellranger2.1.1:2.0.0' cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
+    - module load cellranger/2.1.1
+    - cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
   artifacts:
     name: "$CI_JOB_NAME"
     when: always
@@ -52,29 +53,7 @@ astrocyte_cli:
       - test/outs/web_summary.html
     expire_in: 2 days
   retry:
-    max: 1
-    when:
-      - always
-
-2.2.2_test:
-  stage: container_test
-  only:
-    - branches
-  except:
-    refs:
-      - develop
-      - master
-      - tags
-  script:
-    - singularity run 'docker://bicf/cellranger2.2.0:2.0.0' cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
-  artifacts:
-    name: "$CI_JOB_NAME"
-    when: always
-    paths:
-      - test/outs/web_summary.html
-    expire_in: 2 days
-  retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -88,7 +67,8 @@ astrocyte_cli:
       - master
       - tags
   script:
-    - singularity run 'docker://bicf/cellranger3.0.2:2.0.0' cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
+    - module load cellranger/3.0.2
+    - cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
   artifacts:
     name: "$CI_JOB_NAME"
     when: always
@@ -96,7 +76,7 @@ astrocyte_cli:
       - test/outs/web_summary.html
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -110,7 +90,8 @@ astrocyte_cli:
       - master
       - tags
   script:
-    - singularity run 'docker://bicf/cellranger3.1.0:2.0.0' cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
+    - module load cellranger/3.1.0
+    - cellranger count --id=test --transcriptome=/project/apps_database/cellranger/refdata-cellranger-GRCh38-3.0.0 --fastqs=./test_data/hu.v2s1r500 --sample=pbmc_1k_v2 --chemistry=SC3Pv2
   artifacts:
     name: "$CI_JOB_NAME"
     when: always
@@ -120,7 +101,7 @@ astrocyte_cli:
       - test/outs/web_summary.html
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -133,7 +114,7 @@ GRCh38-3.0.0:
   except:
     - tags
   script:
-  - nextflow -q run workflow/main.nf -profile biohpc,cluster --fastq "test_data/hu.v3s1r500/*.fastq.gz" --designFile "test_data/hu.v3s1r500/design.csv" --genome 'GRCh38-3.0.0' --kitVersion '3GEXv3' --version '3.1.0' --ci true
+  - nextflow run workflow/main.nf -profile biohpc,cluster --fastq "test_data/hu.v3s1r500/*.fastq.gz" --designFile "test_data/hu.v3s1r500/design.csv" --genome 'GRCh38-3.0.0' --kitVersion '3GEXv3' --version '3.1.0' --ci true
   - pytest -m count310
   artifacts:
     name: "$CI_JOB_NAME"
@@ -144,7 +125,7 @@ GRCh38-3.0.0:
       - workflow/output/multiqc/run/multiqc_report.html
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -157,7 +138,7 @@ mm10-3.0.0:
   except:
     - tags
   script:
-  - nextflow -q run workflow/main.nf -profile biohpc,cluster --fastq "test_data/mu.v3s1r500/*.fastq.gz" --designFile "test_data/mu.v3s1r500/design.csv" --genome 'mm10-3.0.0' --kitVersion '3GEXv3' --version '3.1.0' --ci true
+  - nextflow run workflow/main.nf -profile biohpc,cluster --fastq "test_data/mu.v3s1r500/*.fastq.gz" --designFile "test_data/mu.v3s1r500/design.csv" --genome 'mm10-3.0.0' --kitVersion '3GEXv3' --version '3.1.0' --ci true
   - pytest -m count310
   artifacts:
     name: "$CI_JOB_NAME"
@@ -168,7 +149,7 @@ mm10-3.0.0:
       - workflow/output/multiqc/run/multiqc_report.html
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
 
@@ -179,7 +160,7 @@ mm10-3.0.0:
       - master
       - tags
   script:
-  - nextflow -q run workflow/main.nf -profile biohpc,cluster --fastq "test_data/hu.v3s2r10k/*.fastq.gz" --designFile "test_data/hu.v3s2r10k/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'auto' --version '3.1.0' --ci true
+  - nextflow run workflow/main.nf -profile biohpc,cluster --fastq "test_data/hu.v3s2r10k/*.fastq.gz" --designFile "test_data/hu.v3s2r10k/design.csv" --genome 'GRCh38-3.0.0' --kitVersion 'auto' --version '3.1.0' --ci true
   - pytest -m count310
   artifacts:
     name: "$CI_JOB_NAME"
@@ -191,6 +172,6 @@ mm10-3.0.0:
       - workflow/output/multiqc/run/multiqc_report.html
     expire_in: 2 days
   retry:
-    max: 1
+    max: 0
     when:
       - always
diff --git a/README.md b/README.md
index e8fe72a632ec289314bce36b0fdcae53f929ef66..1edd5a8db23b710ef8e58fc406ae15592295df6d 100755
--- a/README.md
+++ b/README.md
@@ -111,8 +111,8 @@ To Run:
   ```
 * Design example:
 
-| Sample  | fastq_R1                           | fastq_R2                           |
-|---------|------------------------------------|------------------------------------|
+| Sample | fastq_R1 | fastq_R2 |
+|--------|----------|----------|
 | sample1 | pbmc_1k_v2_S1_L001_R1_001.fastq.gz | pbmc_1k_v2_S1_L001_R2_001.fastq.gz |
 | sample2 | pbmc_1k_v2_S2_L001_R1_001.fastq.gz | pbmc_1k_v2_S2_L001_R2_001.fastq.gz |
 | sample2 | pbmc_1k_v2_S2_L002_R1_001.fastq.gz | pbmc_1k_v2_S2_L002_R2_001.fastq.gz |
diff --git a/astrocyte_pkg.yml b/astrocyte_pkg.yml
index a58689f2e250269d7020a1d64524d5b8612ced26..e128e1ff61f118e1ab733268460d82bd14836654 100755
--- a/astrocyte_pkg.yml
+++ b/astrocyte_pkg.yml
@@ -150,7 +150,6 @@ workflow_parameters:
     choices:
       - ['3.1.0', '3.1.0']
       - ['3.0.2', '3.0.2']
-      - ['2.2.0', '2.2.0']
       - ['2.1.1', '2.1.1']
     required: true
     description: |
diff --git a/docs/references.md b/docs/references.md
index ea483c496889564a214e995e17e2b56e4991a557..37f42d86af5542e91c79e088be69f4f10a386a57 100644
--- a/docs/references.md
+++ b/docs/references.md
@@ -1,13 +1,13 @@
 ### References
 
-1. **python**:
-  * Anaconda (Anaconda Software Distribution, [https://anaconda.com](https://anaconda.com))
+1. **Nextflow**:
+  * Di Tommaso P., Chatzou M., Floden E. W., Barja P. P., Palumbo E., and Notredame C. 2017. Nextflow enables reproducible computational workflows. Nature biotechnology 35(4): 316. doi:[10.1038/nbt.3820](https://doi.org/10.1038/nbt.3820)
 
 2. **cellranger**
   * Cellranger count [https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/count](https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/count)
 
-3. **MultiQc**:
-  * Ewels P., Magnusson M., Lundin S. and Käller M. 2016. MultiQC: Summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32(19): 3047–3048. doi:[10.1093/bioinformatics/btw354](https://dx.doi.org/10.1093/bioinformatics/btw354)
+3. **python**:
+  * Anaconda (Anaconda Software Distribution, [https://anaconda.com](https://anaconda.com))
 
-4. **Nextflow**:
-  * Di Tommaso P., Chatzou M., Floden E. W., Barja P. P., Palumbo E., and Notredame C. 2017. Nextflow enables reproducible computational workflows. Nature biotechnology 35(4): 316. doi:[10.1038/nbt.3820](https://doi.org/10.1038/nbt.3820)
+4. **MultiQc**:
+  * Ewels P., Magnusson M., Lundin S. and Käller M. 2016. MultiQC: Summarize analysis results for multiple tools and samples in a single report. Bioinformatics 32(19): 3047–3048. doi:[10.1093/bioinformatics/btw354](https://dx.doi.org/10.1093/bioinformatics/btw354)
diff --git a/workflow/conf/aws.config b/workflow/conf/aws.config
index 6caee145d38bebcca65b4cb71b99e7dc10e930e9..86a5b3187b7418a2bdc16c1c6cedb4473a204177 100644
--- a/workflow/conf/aws.config
+++ b/workflow/conf/aws.config
@@ -1,4 +1,4 @@
-workDir = 's3://'
+workDir = 's3://gudmap.rbk/work'
 aws.client.storageEncryption = 'AES256'
 aws {
   region = ''
@@ -9,7 +9,6 @@ aws {
 
 process {
   executor = 'awsbatch'
-  queue = 'default-'
   cpus = 1
   memory = '1 GB'
 
@@ -21,10 +20,6 @@ process {
     cpus = 2
     memory = '30 GB'
   }
-  withLabel: count220 {
-    cpus = 2
-    memory = '30 GB'
-  }
   withLabel: count302 {
     cpus = 2
     memory = '30 GB'
diff --git a/workflow/conf/biohpc.config b/workflow/conf/biohpc.config
index 56d5b65c6196d6bf9a841561bd85330cd758f775..1da174a128ff30cb2a47790566792d5f4d267cee 100644
--- a/workflow/conf/biohpc.config
+++ b/workflow/conf/biohpc.config
@@ -52,11 +52,6 @@ params {
   }
 }
 
-singularity {
-  enabled = true
-  cacheDir = '/project/BICF/BICF_Core/shared/gudmap/singularity_cache/'
-}
-
 env {
   http_proxy = 'http://proxy.swmed.edu:3128'
   https_proxy = 'http://proxy.swmed.edu:3128'
diff --git a/workflow/conf/cluster.config b/workflow/conf/cluster.config
index 7322376199a795c72f973f2bf14ae75c1c2c6e7b..f5842a64b6edbbb40708720592025b3965fe7a17 100644
--- a/workflow/conf/cluster.config
+++ b/workflow/conf/cluster.config
@@ -12,9 +12,6 @@ process {
   withLabel: count211 {
     queue = '128GB,256GB,256GBv1,384GB'
   }
-  withLabel: count220 {
-    queue = '128GB,256GB,256GBv1,384GB'
-  }
   withLabel: count302 {
     queue = '128GB,256GB,256GBv1,384GB'
   }
diff --git a/workflow/conf/ondemand.config b/workflow/conf/ondemand.config
new file mode 100644
index 0000000000000000000000000000000000000000..d89352bbf93ab79507d6ac6c28f471a63bed80a5
--- /dev/null
+++ b/workflow/conf/ondemand.config
@@ -0,0 +1,3 @@
+process {
+  queue = 'highpriority-3278a8b0-1fc8-11ea-b1ac-021e2396e2cc'
+}
diff --git a/workflow/conf/spot.config b/workflow/conf/spot.config
new file mode 100644
index 0000000000000000000000000000000000000000..6f1bfe0669f9052ac0bec7514b9628305560d682
--- /dev/null
+++ b/workflow/conf/spot.config
@@ -0,0 +1,3 @@
+process {
+  queue = 'default-3278a8b0-1fc8-11ea-b1ac-021e2396e2cc'
+}
diff --git a/workflow/main.nf b/workflow/main.nf
index b796771930a3b3dbc908ffb145ebd887153c3e42..4ceed7a75f55ca37b624750c353649e281a0df25 100755
--- a/workflow/main.nf
+++ b/workflow/main.nf
@@ -8,6 +8,15 @@ main.nf
 *
 */
 
+//  ########  ####  ######  ######## 
+//  ##     ##  ##  ##    ## ##       
+//  ##     ##  ##  ##       ##       
+//  ########   ##  ##       ######   
+//  ##     ##  ##  ##       ##       
+//  ##     ##  ##  ##    ## ##       
+//  ########  ####  ######  ##       
+
+
 // Define Input variables
 params.name = "run"
 params.fastq = "test_data/mu.v3s1r500/*.fastq.gz"
@@ -26,10 +35,6 @@ if (params.kitVersion == "3GEXv3" && params.version == '2.1.1') {
   print("Cellranger Version 2.1.1 requires kitVersion 2")
   System.exit(32)	
 }
-if (params.kitVersion == "3GEXv3" && params.version == '2.2.0') {
-  print("Cellranger Version 2.2.0 requires kitVersion 2")
-  System.exit(32)	
-}
 
 // Define variables if astrocyte (or from config)
 if (params.astrocyte) {
@@ -55,6 +60,7 @@ if (params.astrocyte) {
 params.genomeLocationFull = params.genomeLocation+params.genome
 
 // Define variables from input
+pipelineVersion = "2.x.x-indev"
 name = params.name
 designLocation = Channel
   .fromPath(params.designFile)
@@ -81,6 +87,7 @@ references = "${baseDir}/../docs/references.md"
  * trackStart: track start of pipeline
  */
 params.ci = false
+params.dev = false
 process trackStart {
   script:
   """
@@ -91,11 +98,13 @@ process trackStart {
   curl -H 'Content-Type: application/json' -X PUT -d '{ \
       "sessionId": "${workflow.sessionId}", \
       "pipeline": "cellranger_count", \
+      "pipelineVersion": "${pipelineVersion}", \
       "start": "${workflow.start}", \
       "astrocyte": ${params.astrocyte}, \
       "status": "started", \
       "nextflowVersion": "${workflow.nextflow.version}",
-      "ci": ${params.ci}}' \
+      "ci": ${params.ci},
+      "dev": ${params.dev}}' \
   "https://xku43pcwnf.execute-api.us-east-1.amazonaws.com/ProdDeploy/pipeline-tracking"
   """
 }
@@ -105,7 +114,7 @@ process trackStart {
  */
 process checkDesignFile {
   tag "${name}"
-  container = 'bicf/python3:2.0.0'
+  module 'python/3.6.1-2-anaconda'
 
   input:
     file designLocation
@@ -137,26 +146,21 @@ samples = designPaths
 // Duplicate variables
 samples.into {
   samples211
-  samples220
   samples302
   samples310
 }
 refLocation.into {
   refLocation211
-  refLocation220
   refLocation302
   refLocation310
 }
 expectCells211 = expectCells
-expectCells220 = expectCells
 expectCells302 = expectCells
 expectCells310 = expectCells
 forceCells211 = forceCells
-forceCells220 = forceCells
 forceCells302 = forceCells
 forceCells310 = forceCells
 chemistryParam211 = chemistryParam
-chemistryParam220 = chemistryParam
 chemistryParam302 = chemistryParam
 chemistryParam310 = chemistryParam
 
@@ -164,10 +168,10 @@ chemistryParam310 = chemistryParam
  * count211: run cellranger count version 2.1.1
  */
 process count211 {
-  queue '128GB,256GB,256GBv1,384GB'
   tag "${sample}"
   publishDir "${outDir}/${task.process}", mode: 'copy'
-  container 'bicf/cellranger2.1.1:2.0.0'
+  queue '128GB,256GB,256GBv1,384GB'
+  module 'cellranger/2.1.1'
 
   input:
     set sample, file("${sample}_S1_L00?_R1_001.fastq.gz"), file("${sample}_S1_L00?_R2_001.fastq.gz") from samples211
@@ -206,60 +210,15 @@ process count211 {
     }
 }
 
-/*
- * count220: run cellranger count version 2.2.0
- */
-process count220 {
-  queue '128GB,256GB,256GBv1,384GB'
-  tag "${sample}"
-  publishDir "${outDir}/${task.process}", mode: 'copy'
-  container 'bicf/cellranger2.2.0:2.0.0'
-
-  input:
-    set sample, file("${sample}_S1_L00?_R1_001.fastq.gz"), file("${sample}_S1_L00?_R2_001.fastq.gz") from samples220
-    file ref from refLocation220.first()
-    expectCells220
-    forceCells220
-    chemistryParam220
-
-  output:
-    file("**/outs/**") into outPaths220
-    file("*_metrics_summary.tsv") into metricsSummary220
-
-  when:
-    version == '2.2.0'
-
-  script:
-    if (forceCells220 == 0) {
-      """
-      hostname
-      ulimit -u 16384
-      ulimit -a
-      bash ${baseDir}/scripts/filename_check.sh -r ${ref}
-      cellranger count --id=${sample} --transcriptome=./${ref} --fastqs=. --sample=${sample} --expect-cells=${expectCells220} --chemistry=${chemistryParam220}
-      sed -E 's/("([^"]*)")?(,|\$)/\\2\t/g' ${sample}/outs/metrics_summary.csv | tr -d "," | sed "s/^/${sample}\t/" > ${sample}_metrics_summary.tsv
-      """
-    } 
-    else {
-      """
-      hostname
-      ulimit -u 16384
-      ulimit -a
-      bash ${baseDir}/scripts/filename_check.sh -r ${ref}
-      cellranger count --id=${sample} --transcriptome=./${ref} --fastqs=. --sample=${sample} --force-cells=${forceCells220} --chemistry=${chemistryParam220}
-      sed -E 's/("([^"]*)")?(,|\$)/\\2\t/g' ${sample}/outs/metrics_summary.csv | tr -d "," | sed "s/^/${sample}\t/" > ${sample}_metrics_summary.tsv
-      """
-    }
-}
 
 /*
  * count302: run cellranger count version 3.0.2
  */
 process count302 {
-  queue '128GB,256GB,256GBv1,384GB'
   tag "${sample}"
   publishDir "${outDir}/${task.process}", mode: 'copy'
-  container 'bicf/cellranger3.0.2:2.0.0'
+  queue '128GB,256GB,256GBv1,384GB'
+  module 'cellranger/3.0.2'
 
   input:
     set sample, file("${sample}_S?_L001_R1_001.fastq.gz"), file("${sample}_S?_L001_R2_001.fastq.gz") from samples302
@@ -302,10 +261,10 @@ process count302 {
  * count310: run cellranger count version 3.1.0
  */
 process count310 {
-  queue '128GB,256GB,256GBv1,384GB'
   tag "${sample}"
   publishDir "${outDir}/${task.process}", mode: 'copy'
-  container 'bicf/cellranger3.1.0:2.0.0'
+  queue '128GB,256GB,256GBv1,384GB'
+  module 'cellranger/3.1.0'
 
   input:
     set sample, file("${sample}_S?_L001_R1_001.fastq.gz"), file("${sample}_S?_L001_R2_001.fastq.gz") from samples310
@@ -345,13 +304,13 @@ process count310 {
 }
 
 /*
- * versions: collect too versions into a single yml
+ * versions: collect all versions into a single yml
  */
 process versions {
   tag "${name}"
-  container 'bicf/python3:2.0.0'
 
   input:
+    file versions_pythonScript
 
   output:
     file("*.yaml") into yamlPaths
@@ -359,17 +318,19 @@ process versions {
   script:
     """
     hostname
+    ulimit -u 16384
     ulimit -a
-    echo ${workflow.nextflow.version} > version_nextflow.txt
-    echo ${version} > version_cellranger.txt
-    multiqc --version | tr -d 'multiqc, version ' > version_multiqc.txt
+    echo "${workflow.nextflow.version}" > version_nextflow.txt
+    echo "${pipelineVersion}" > version_pipeline.txt
+    echo "${version}" > version_cellranger.txt
+    bash versions_python.sh > version_python.txt
     python3 "${baseDir}/scripts/generate_versions.py" -f version_*.txt -o versions
     python3 "${baseDir}/scripts/generate_references.py" -r "${references}" -o references
     """
 }
 
 // Collect all metrics summaries reguardless of cellranger version
-metricsSummary = metricsSummary211.mix(metricsSummary220, metricsSummary302, metricsSummary310)
+metricsSummary = metricsSummary211.mix(metricsSummary302, metricsSummary310)
 
 /*
  * multiqc: create multiqc report
diff --git a/workflow/nextflow.config b/workflow/nextflow.config
index b05454d76d7f73ef9e519d33530d746af19af762..32b90f699ad2e153e38a1d9d6a914a109ce05c6a 100644
--- a/workflow/nextflow.config
+++ b/workflow/nextflow.config
@@ -1,39 +1,24 @@
 profiles {
+  standard {
+    includeConfig 'configs/biohpc.config'
+  }
   biohpc {
-    includeConfig 'conf/biohpc.config'
+    includeConfig 'configs/biohpc.config'
   }
   local {
-    includeConfig 'conf/local.config'
+    includeConfig 'configs/local.config'
   }
   cluster {
-    includeConfig 'conf/cluster.config'
+    includeConfig 'configs/cluster.config'
   }
   aws {
-    includeConfig 'conf/aws.config'
-  }
-}
-
-process {
-  withName:checkDesignFile {
-    container = 'bicf/python3:2.0.0'
-  }
-  withName:count211 {
-    container = 'bicf/cellranger2.1.1:2.0.0'
-  }
-  withName:count220 {
-    container = 'bicf/cellranger2.2.0:2.0.0'
-  }
-  withName:count302 {
-    container = 'bicf/cellranger3.0.2:2.0.0'
-  }
-  withName:count310 {
-    container = 'bicf/cellranger3.1.0:2.0.0'
+    includeConfig 'configs/aws.config'
   }
-  withName:versions {
-    container = 'bicf/python3:2.0.0'
+  ondemand {
+    includeConfig 'configs/ondemand.config'
   }
-  withName:multiqc {
-    container = 'bicf/multiqc:2.0.0'
+  spot {
+    includeConfig 'configs/spot.config'
   }
 }
 
@@ -62,6 +47,6 @@ manifest {
   homePage = 'https://git.biohpc.swmed.edu/BICF/Astrocyte/cellranger_count'
   description = 'This pipeline is a wrapper for the cellranger count tool from 10x Genomics. It takes fastq files from 10x Genomics Single Cell Gene Expression libraries, performs alignment, filtering, barcode counting, and UMI counting. It uses the Chromium cellular barcodes to generate gene-barcode matrices, determine clusters, and perform gene expression analysis.'
   mainScript = 'main.nf'
-  version = 'publish_2.0.4'
+  version = '2.x.x-indev'
   nextflowVersion = '>=0.31.0'
 }
diff --git a/workflow/scripts/generate_versions.py b/workflow/scripts/generate_versions.py
index ddcda535f6bf1f8350f5aa148af517f2c421c272..978aedc56c4774b2e6a3556ff0c0f7dccb76eadf 100755
--- a/workflow/scripts/generate_versions.py
+++ b/workflow/scripts/generate_versions.py
@@ -24,9 +24,10 @@ logger.propagate = False
 logger.setLevel(logging.INFO)
 
 SOFTWARE_REGEX = {
+    'Pipeline': ['version_pipeline.txt', r"(\S+)"],
     'Nextflow': ['version_nextflow.txt', r"(\S+)"],
-    'Cellranger Count': ['version_cellranger.txt', r"(\S+)"],
-    'MultiQC': ['version_multiqc.txt', r"(\S+)"],
+    'cellranger count': ['version_cellranger.txt', r"(\S+)"],
+    'python': ['version_python.txt', r"(\S+)"],
 }
 
 
@@ -72,9 +73,10 @@ def main():
     out_filename = output + '_mqc.yaml'
 
     results = OrderedDict()
+    results['Pipeline'] = '<span style="color:#999999;\">N/A</span>'
     results['Nextflow'] = '<span style="color:#999999;\">N/A</span>'
-    results['Cellranger Count'] = '<span style="color:#999999;\">N/A</span>'
-    results['MultiQC'] = '<span style="color:#999999;\">N/A</span>'
+    results['cellranger count'] = '<span style="color:#999999;\">N/A</span>'
+    results['python'] = '<span style="color:#999999;\">N/A</span>'
 
     # Check for version files:
     check_files(files)
@@ -106,4 +108,4 @@ def main():
 
 
 if __name__ == '__main__':
-    main()
\ No newline at end of file
+    main()
diff --git a/workflow/scripts/versions_python.sh b/workflow/scripts/versions_python.sh
new file mode 100644
index 0000000000000000000000000000000000000000..ff79391c3bec5b92eea8d8376c57682201c34271
--- /dev/null
+++ b/workflow/scripts/versions_python.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+#versions_python.sh
+#*
+#* --------------------------------------------------------------------------
+#* Licensed under MIT (https://git.biohpc.swmed.edu/BICF/Astrocyte/cellranger_count/blob/develop/LICENSE)
+#* --------------------------------------------------------------------------
+#*
+
+python --version |& grep 'Python ' | sed -n -e 's/^Python //p'