diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0ae31f4dc3710e954e9d4bccafed4ae3561f8067..83783dd9e360e4dade57f721fa4bb83e7f0145e9 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,5 +1,5 @@
 before_script:
-  - module add  python/3.6.1-2-anaconda
+  - module add  python/3.6.4-anaconda
   - pip install --user pytest-pythonpath==0.7.1 pytest-cov==2.5.1
   - module load singularity/3.0.2
   - module load nextflow/19.09.0
@@ -22,8 +22,8 @@ getData:
   stage: unit
   script:
   - ln -sfn `readlink -e ./test_data/auth/cookies.txt` ~/.bdbag/deriva-cookies.txt
-  - unzip ./test_data/bagit/Replicate_16-1ZX4
-  - singularity run 'docker://bicf/gudmaprbkfilexfer:1.3' sh ./workflow/scripts/bdbagFetch.sh Replicate_16-1ZX4 16-1ZX4
+  - unzip ./test_data/bagit/Study_Q-Y4H0.zip
+  - singularity run 'docker://bicf/gudmaprbkfilexfer:1.3' bash ./workflow/scripts/bdbagFetch.sh Study_Q-Y4H0 Q-Y4H0 TEST
   - pytest -m getData
 
 parseMetadata:
@@ -53,14 +53,14 @@ trimData:
 alignData:
   stage: unit
   script:
-  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' hisat2 -p `nproc` --add-chrname --un-gz Q-Y5JA_1M.se.unal.gz -S Q-Y5JA_1M.se.sam -x /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/hisat2/genome --rna-strandness F -U ./test_data/fastq/small/Q-Y5JA_1M_trimmed.fq.gz
+  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' hisat2 -p `nproc` --add-chrname --un-gz Q-Y5JA_1M.se.unal.gz -S Q-Y5JA_1M.se.sam -x /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/hisat2/genome --rna-strandness F -U ./test_data/fastq/small/Q-Y5JA_1M_trimmed.fq.gz --summary-file ${repRID}.alignSummary.txt --new-summary
   - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools view -1 -@ `nproc` -F 4 -F 8 -F 256 -o Q-Y5JA_1M.se.bam Q-Y5JA_1M.se.sam
   - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools sort -@ `nproc` -O BAM -o Q-Y5JA_1M.se.sorted.bam Q-Y5JA_1M.se.bam
-  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools index -@ `nproc` -b Q-Y5JA_1M.se.sorted.bam Q-Y5JA_1M.se.sorted.bai
-  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' hisat2 -p `nproc` --add-chrname --un-gz Q-Y5JA_1M.pe.unal.gz -S Q-Y5JA_1M.pe.sam -x /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/hisat2/genome --rna-strandness FR --no-mixed --no-discordant -1 ./test_data/fastq/small/Q-Y5JA_1M_R1_val_1.fq.gz -2 ./test_data/fastq/small/Q-Y5JA_1M_R2_val_2.fq.gz
+  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools index -@ `nproc` -b Q-Y5JA_1M.se.sorted.bam Q-Y5JA_1M.se.sorted.bam.bai
+  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' hisat2 -p `nproc` --add-chrname --un-gz Q-Y5JA_1M.pe.unal.gz -S Q-Y5JA_1M.pe.sam -x /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/hisat2/genome --rna-strandness FR --no-mixed --no-discordant -1 ./test_data/fastq/small/Q-Y5JA_1M_R1_val_1.fq.gz -2 ./test_data/fastq/small/Q-Y5JA_1M_R2_val_2.fq.gz --summary-file ${repRID}.alignSummary.txt --new-summary
   - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools view -1 -@ `nproc` -F 4 -F 8 -F 256 -o Q-Y5JA_1M.pe.bam Q-Y5JA_1M.pe.sam
   - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools sort -@ `nproc` -O BAM -o Q-Y5JA_1M.pe.sorted.bam Q-Y5JA_1M.pe.bam
-  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools index -@ `nproc` -b Q-Y5JA_1M.pe.sorted.bam Q-Y5JA_1M.pe.sorted.bai
+  - singularity run 'docker://bicf/gudmaprbkaligner:2.0.0' samtools index -@ `nproc` -b Q-Y5JA_1M.pe.sorted.bam Q-Y5JA_1M.pe.sorted.bam.bai
   - pytest -m alignData
 
 dedupData:
@@ -68,7 +68,7 @@ dedupData:
   script:
   - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' java -jar /picard/build/libs/picard.jar MarkDuplicates I=./test_data/bam/small/Q-Y5JA_1M.se.sorted.bam O=Q-Y5JA_1M.se.deduped.bam M=Q-Y5JA_1M.se.deduped.Metrics.txt REMOVE_DUPLICATES=true
   - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' samtools sort -@ `nproc` -O BAM -o Q-Y5JA_1M.se.sorted.deduped.bam ./test_data/bam/small/Q-Y5JA_1M.se.deduped.bam
-  - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' samtools index -@ `nproc` -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam Q-Y5JA_1M.se.sorted.deduped.bai
+  - singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' samtools index -@ `nproc` -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam Q-Y5JA_1M.se.sorted.deduped.bam.bai
   - pytest -m dedupData
   
 makeBigWig:
@@ -83,6 +83,12 @@ fastqc:
   - singularity run 'docker://bicf/fastqc:2.0.0' ./test_data/fastq/small/Q-Y5JA_1M.R1.fastq.gz -o .
   - pytest -m fastqc
 
+inferMetadata:
+  stage: unit
+  script:
+  - singularity run 'docker://bicf/rseqc3.0:2.0.0' tin.py -i ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam -r /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/bed/genome.bed
+  - pytest -m inferMetadata
+
 integration_se:
   stage: integration
   script:
diff --git a/docs/dag.png b/docs/dag.png
index a4b6d60f4891bc2680f6d2908670442ff1e314df..55e0e4781a59ea7159802b8922d9ff2baf411a29 100644
Binary files a/docs/dag.png and b/docs/dag.png differ
diff --git a/workflow/conf/biohpc.config b/workflow/conf/biohpc.config
index a6f5fba4f7f6600733c0accce8d853fefb1fce63..83fac1f1092e641a25214c2af2b61745ed352a83 100755
--- a/workflow/conf/biohpc.config
+++ b/workflow/conf/biohpc.config
@@ -24,7 +24,10 @@ process {
   withName: dedupData {
     queue = 'super'
   }
-  withName: fastqc {
+  withName:fastqc {
+    queue = 'super'
+  }
+  withName:inferMetadata {
     queue = 'super'
   }
   withName: makeBigWig {
diff --git a/workflow/nextflow.config b/workflow/nextflow.config
index eee32fa6f754c55b6b8051eedee646eebf4066c2..3a2d89f73d59f9b450bb825a7dd85751a307f9ef 100644
--- a/workflow/nextflow.config
+++ b/workflow/nextflow.config
@@ -17,13 +17,13 @@ process {
   withName:getData {
     container = 'bicf/gudmaprbkfilexfer:1.3'
   }
-  withName:parseMetadata {
+  withName: parseMetadata {
     container = 'bicf/python3:1.3'
   }
-  withName:getRef {
+  withName: getRef {
     container = 'bicf/awscli:1.1'
   }
-  withName:trimData {
+  withName: trimData {
     container = 'bicf/trimgalore:1.1'
   }
   withName: alignData {
@@ -32,11 +32,14 @@ process {
   withName: dedupData {
     container = 'bicf/gudmaprbkdedup:2.0.0'
   }
+  withName: makeBigWig {
+    container = 'bicf/deeptools3.3:2.0.0'
+  }
   withName: fastqc {
     container = 'bicf/fastqc:2.0.0'
   }
-  withName: makeBigWig {
-    container = 'bicf/deeptools3.3:2.0.0'
+  withName:inferMetadata{
+    container = 'bicf/rseqc3.0:2.0.0'
   }
 }
 
diff --git a/workflow/rna-seq.nf b/workflow/rna-seq.nf
old mode 100755
new mode 100644
index a2353b33403296e484677a3b6b62d90e05bdf471..f15bc09941a0293fdeb6fdd355a1142e11dd03a0
--- a/workflow/rna-seq.nf
+++ b/workflow/rna-seq.nf
@@ -38,6 +38,7 @@ referenceBase = "/project/BICF/BICF_Core/shared/gudmap/references"
 // Define script files
 script_bdbagFetch = Channel.fromPath("${baseDir}/scripts/bdbagFetch.sh")
 script_parseMeta = Channel.fromPath("${baseDir}/scripts/parseMeta.py")
+script_inferMeta = Channel.fromPath("${baseDir}/scripts/inferMeta.sh")
 
 /*
  * splitData: split bdbag files by replicate so fetch can occure in parallel, and rename files to replicate rid
@@ -112,7 +113,7 @@ process getData {
     """
 }
 
-// Split fastq's
+// Replicate raw fastqs for multiple process inputs
 fastqs.into {
   fastqs_trimData
   fastqs_fastqc
@@ -184,6 +185,7 @@ metadata.splitCsv(sep: ",", header: false).separate(
   spike,
   species
 )
+// Replicate metadata for multiple process inputs
 endsManual.into {
   endsManual_trimData
   endsManual_alignData
@@ -262,6 +264,7 @@ process trimData {
 
   output:
     path ("*.fq.gz") into fastqs_trimmed
+    path ("*_trimming_report.txt") into trimQC
     path ("${repRID}.trimData.log")
     path ("${repRID}.trimData.err")
 
@@ -281,8 +284,10 @@ process trimData {
     """
 }
 
+// Replicate reference for multiple process inputs
 reference.into {
   reference_alignData
+  reference_inferMeta
 }
 
 /*
@@ -299,8 +304,8 @@ process alignData {
     path reference_alignData
 
   output:
-    path ("${repRID}.sorted.bam") into rawBam
-    path ("${repRID}.sorted.bai") into rawBai
+    tuple val ("${repRID}"), path ("${repRID}.sorted.bam"), path ("${repRID}.sorted.bam.bai") into rawBam
+    path ("*.alignSummary.txt") into alignQC
     path ("${repRID}.align.out")
     path ("${repRID}.align.err")
 
@@ -312,19 +317,24 @@ process alignData {
     # align reads
     if [ "${endsManual_alignData}" == "se" ]
     then
-      hisat2 -p `nproc` --add-chrname --un-gz ${repRID}.unal.gz -S ${repRID}.sam -x hisat2/genome ${stranded_alignData} -U ${fastq[0]} 1>${repRID}.align.out 2>${repRID}.align.err
+      hisat2 -p `nproc` --add-chrname --un-gz ${repRID}.unal.gz -S ${repRID}.sam -x hisat2/genome ${stranded_alignData} -U ${fastq[0]} --summary-file ${repRID}.alignSummary.txt --new-summary 1>${repRID}.align.out 2>${repRID}.align.err
     elif [ "${endsManual_alignData}" == "pe" ]
     then
-      hisat2 -p `nproc` --add-chrname --un-gz ${repRID}.unal.gz -S ${repRID}.sam -x hisat2/genome ${stranded_alignData} --no-mixed --no-discordant -1 ${fastq[0]} -2 ${fastq[1]} 1>${repRID}.align.out 2>${repRID}.align.err
+      hisat2 -p `nproc` --add-chrname --un-gz ${repRID}.unal.gz -S ${repRID}.sam -x hisat2/genome ${stranded_alignData} --no-mixed --no-discordant -1 ${fastq[0]} -2 ${fastq[1]} --summary-file ${repRID}.alignSummary.txt --new-summary 1>${repRID}.align.out 2>${repRID}.align.err
     fi
     
     # convert sam to bam and sort and index
     samtools view -1 -@ `nproc` -F 4 -F 8 -F 256 -o ${repRID}.bam ${repRID}.sam 1>>${repRID}.align.out 2>>${repRID}.align.err;
     samtools sort -@ `nproc` -O BAM -o ${repRID}.sorted.bam ${repRID}.bam 1>>${repRID}.align.out 2>>${repRID}.align.err;
-    samtools index -@ `nproc` -b ${repRID}.sorted.bam ${repRID}.sorted.bai 1>>${repRID}.align.out 2>>${repRID}.align.err;
+    samtools index -@ `nproc` -b ${repRID}.sorted.bam ${repRID}.sorted.bam.bai 1>>${repRID}.align.out 2>>${repRID}.align.err;
     """
 }
 
+// Replicate rawBam for multiple process inputs
+rawBam.into {
+  rawBam_dedupData
+}
+
 /*
  *dedupData: mark the duplicate reads, specifically focused on PCR or optical duplicates
 */
@@ -334,10 +344,11 @@ process dedupData {
   publishDir "${logsDir}", mode: 'copy', pattern: "*.dedup.{out,err}"
 
   input:
-    path rawBam
+    set val (repRID), path (inBam), path (inBai) from rawBam_dedupData
 
   output:
-    tuple val ("${repRID}"), path ("${repRID}.sorted.deduped.bam"), path ("${repRID}.sorted.deduped.bai") into dedupBam
+    tuple val ("${repRID}"), path ("${repRID}.sorted.deduped.bam"), path ("${repRID}.sorted.deduped.bam.bai") into dedupBam
+    path ("*.deduped.Metrics.txt") into dedupQC
     path ("${repRID}.dedup.out")
     path ("${repRID}.dedup.err")
 
@@ -347,9 +358,34 @@ process dedupData {
     ulimit -a >>${repRID}.dedup.err
 
     # remove duplicated reads
-    java -jar /picard/build/libs/picard.jar MarkDuplicates I=${rawBam} O=${repRID}.deduped.bam M=${repRID}.deduped.Metrics.txt REMOVE_DUPLICATES=true 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err
+    java -jar /picard/build/libs/picard.jar MarkDuplicates I=${inBam} O=${repRID}.deduped.bam M=${repRID}.deduped.Metrics.txt REMOVE_DUPLICATES=true 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err
     samtools sort -@ `nproc` -O BAM -o ${repRID}.sorted.deduped.bam ${repRID}.deduped.bam 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err
-    samtools index -@ `nproc` -b ${repRID}.sorted.deduped.bam ${repRID}.sorted.deduped.bai 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err
+    samtools index -@ `nproc` -b ${repRID}.sorted.deduped.bam ${repRID}.sorted.deduped.bam.bai 1>>${repRID}.dedup.out 2>> ${repRID}.dedup.err
+    """
+}
+
+// Replicate dedup bam/bai for multiple process inputs
+dedupBam.into {
+  dedupBam_makeBigWig
+  dedupBam_inferMeta
+}
+
+/*
+ *Make BigWig files for output
+*/
+process makeBigWig {
+  tag "${repRID}"
+  publishDir "${logsDir}", mode: 'copy', pattern: "*.makeBigWig.err"
+
+  input:
+    set val (repRID), path (inBam), path (inBai) from dedupBam_makeBigWig
+
+  output:
+    path ("${repRID}.bw")
+
+  script:
+    """
+    bamCoverage -p `nproc` -b ${inBam} -o ${repRID}.bw
     """
 }
 
@@ -378,20 +414,70 @@ process fastqc {
 }
 
 /*
- *Make BigWig files for later processes
+ *rseqc: run RSeQC to collect stats and infer experimental metadata
 */
-process makeBigWig {
+process inferMetadata {
   tag "${repRID}"
-  publishDir "${logsDir}", mode: 'copy', pattern: "*.makeBigWig.err"
+  publishDir "${logsDir}", mode: 'copy', pattern: "*.rseqc.err"
 
   input:
-    set val (repRID), path (inBam), path (inBai) from dedupBam
+    path script_inferMeta
+    path reference_inferMeta
+    set val (repRID), path (inBam), path (inBai) from dedupBam_inferMeta
 
   output:
-    path ("${repRID}.bw")
+    path "infer.csv" into inferedMetadata
+    path "${inBam.baseName}.tin.xls" into tin
+    path "${repRID}.insertSize.inner_distance_freq.txt" optional true into innerDistance
+
 
   script:
     """
-    bamCoverage -p `nproc` -b ${inBam} -o ${repRID}.bw
+    hostname >${repRID}.rseqc.err
+    ulimit -a >>${repRID}.rseqc.err
+
+    # infer experimental setting from dedup bam
+    infer_experiment.py -r ./bed/genome.bed -i "${inBam}" >${repRID}.rseqc.log
+
+    endness=`bash inferMeta.sh endness ${repRID}.rseqc.log`
+    fail=`bash inferMeta.sh fail ${repRID}.rseqc.log`
+    if [ \${endness} == "PairEnd" ] 
+    then
+      percentF=`bash inferMeta.sh pef ${repRID}.rseqc.log`
+      percentR=`bash inferMeta.sh per ${repRID}.rseqc.log`
+      inner_distance.py -i "${inBam}" -o ${repRID}.insertSize -r ./bed/genome.bed
+    elif [ \${endness} == "SingleEnd" ]
+    then
+      percentF=`bash inferMeta.sh sef ${repRID}.rseqc.log`
+      percentR=`bash inferMeta.sh ser ${repRID}.rseqc.log`
+    fi
+    if [ \$percentF -gt 0.25 ] && [ \$percentR -lt 0.25 ]
+    then
+      stranded="forward"
+      if [ \$endness == "PairEnd" ]
+      then
+        strategy="1++,1--,2+-,2-+"
+      else
+        strategy="++,--"
+      fi
+    elif [ \$percentR -gt 0.25 ] && [ \$percentF -lt 0.25 ]
+    then
+      stranded="reverse"
+      if [ \$endness == "PairEnd" ]
+      then
+        strategy="1+-,1-+,2++,2--"
+      else
+        strategy="+-,-+"
+      fi
+    else
+      stranded="unstranded"
+      strategy="us"
+    fi
+
+    # calcualte TIN values per feature
+    tin.py -i "${inBam}" -r ./bed/genome.bed
+
+    # write infered metadata to file
+    echo \${endness},\${stranded},\${strategy},\${percentF},\${percentR},\${fail} > infer.csv
     """
-}
+}
\ No newline at end of file
diff --git a/workflow/scripts/bdbagFetch.sh b/workflow/scripts/bdbagFetch.sh
index 902222a2ebb6aa7e978f0a820ad3c04472395848..fc0ffabe6de392cf220f9b0a93659ca19888a7ba 100644
--- a/workflow/scripts/bdbagFetch.sh
+++ b/workflow/scripts/bdbagFetch.sh
@@ -1,7 +1,14 @@
 #!/bin/bash
 
-bdbag --resolve-fetch all --fetch-filter filename\$*fastq.gz $1
-for i in $(find */ -name "*.R*.fastq.gz"); do
-    path=${2}$(echo ${i##*/} | grep -o "\.R.\.fastq\.gz");
-    mv ${i} ./${path}
-done;
\ No newline at end of file
+if [ -z "${3}" ]
+then
+bdbag --resolve-fetch all --fetch-filter filename\$*fastq.gz ${1}
+    for i in $(find */ -name "*.R*.fastq.gz")
+    do
+        path=${2}$(echo ${i##*/} | grep -o "\.R.\.fastq\.gz")
+        mv ${i} ./${path}
+    done
+elif [ "${3}" == "TEST" ]
+then
+    bdbag --resolve-fetch all --fetch-filter filename\$*.txt ${1}
+fi
\ No newline at end of file
diff --git a/workflow/scripts/inferMeta.sh b/workflow/scripts/inferMeta.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a8c9839ae2328cbed3dd39b9f2be427be12722ba
--- /dev/null
+++ b/workflow/scripts/inferMeta.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+if [ "${1}" == "endness" ]
+then
+    awk '/Data/ {print}' "${2}" | sed -e 's/^This is //' -e 's/ Data$//'
+elif [ "${1}" == "fail" ]
+then
+    awk '/Fraction of reads failed/ {print}' "${2}" | sed -e 's/^Fraction of reads failed to determine: //'
+elif [ "${1}" == "sef" ]
+then
+    awk '/\+\+,--/ {print}' "${2}" | sed -e 's/^Fraction of reads explained by "++,--": //'
+elif [ "${1}" == "ser" ]
+then
+    awk '/\+-,-\+/ {print}' "${2}" | sed -e 's/^Fraction of reads explained by "+-,-+": //'
+elif [ "${1}" == "pef" ]
+then
+    awk '/1\+\+,1--,2\+-,2-\+/ {print}' "${2}" | sed -e 's/^Fraction of reads explained by "1++,1--,2+-,2-+": //'
+elif [ "${1}" == "per" ]
+then
+    awk '/1\+-,1-\+,2\+\+,2--/ {print}' "${2}" | sed -e 's/^Fraction of reads explained by "1+-,1-+,2++,2--": //'
+fi
\ No newline at end of file
diff --git a/workflow/tests/test_alignReads.py b/workflow/tests/test_alignReads.py
index d95e63a6426e5d1cbec874b0c4e86b17388ba975..90c9052a83f0fb430d8f34386cfcf4c507f7fb6b 100644
--- a/workflow/tests/test_alignReads.py
+++ b/workflow/tests/test_alignReads.py
@@ -13,11 +13,11 @@ data_output_path = os.path.dirname(os.path.abspath(__file__)) + \
 def test_alignData_se():
 	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.unal.gz'))
 	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.sorted.bam'))
-	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.sorted.bai'))
+	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.sorted.bam.bai'))
 
 
 @pytest.mark.alignData
 def test_alignData_pe():
 	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.pe.unal.gz'))
 	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.pe.sorted.bam'))
-	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.pe.sorted.bai'))
\ No newline at end of file
+	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.pe.sorted.bam.bai'))
diff --git a/workflow/tests/test_dedupReads.py b/workflow/tests/test_dedupReads.py
index 0c0cd7aa67ab0e47168f8bf438191f6a9c217b72..5ca60ebd6c10957b0da697ee8cacf196fa75d525 100644
--- a/workflow/tests/test_dedupReads.py
+++ b/workflow/tests/test_dedupReads.py
@@ -11,4 +11,5 @@ data_output_path = os.path.dirname(os.path.abspath(__file__)) + \
 
 @pytest.mark.dedupData
 def test_dedupData():
-	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.deduped.bam'))
\ No newline at end of file
+	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.sorted.deduped.bam'))
+	assert os.path.exists(os.path.join(data_output_path, 'Q-Y5JA_1M.se.sorted.deduped.bam.bai'))
diff --git a/workflow/tests/test_getData.py b/workflow/tests/test_getData.py
index 36d0b22155fc5ef860497bf887dc595ca368c6ad..454e3c08ea7d227f6a8840956f882fa2e0c1d61e 100644
--- a/workflow/tests/test_getData.py
+++ b/workflow/tests/test_getData.py
@@ -10,5 +10,5 @@ test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
 
 @pytest.mark.getData
 def test_getData():
-    assert os.path.exists(os.path.join(test_output_path, 'Replicate_16-1ZX4/bagit.txt'))
-    assert os.path.exists(os.path.join(test_output_path, '16-1ZX4.R1.fastq.gz'))
\ No newline at end of file
+    assert os.path.exists(os.path.join(test_output_path, 'Study_Q-Y4H0/bagit.txt'))
+    assert os.path.exists(os.path.join(test_output_path, 'Study_Q-Y4H0/data/assets/Study/Q-Y4H0/Experiment/Q-Y4BY/Replicate/Q-Y5F8/hMARIS_SIX2+_RiboDep#1.gene.rpkm.txt'))
\ No newline at end of file
diff --git a/workflow/tests/test_inferMetadata.py b/workflow/tests/test_inferMetadata.py
new file mode 100644
index 0000000000000000000000000000000000000000..44ffbc3f239630b357b5fde7746787fe9ca65d62
--- /dev/null
+++ b/workflow/tests/test_inferMetadata.py
@@ -0,0 +1,14 @@
+#!/usr/bin/env python3
+
+import pytest
+import pandas as pd
+from io import StringIO
+import os
+
+test_output_path = os.path.dirname(os.path.abspath(__file__)) + \
+                '/../../'
+
+@pytest.mark.inferMetadata
+def test_inferMetadata():
+    assert os.path.exists(os.path.join(test_output_path, 'Q-Y5JA_1M.se.sorted.deduped.tin.xls'))
+