diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a4417f8c69af7515821c1085eabeb29bc6ab2bf4..ae5a8ed5f1aaab51bae89814979b7967857098b5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,6 +35,24 @@ parseMetadata:
   - singularity run 'docker://bicf/python3:1.3' python3 ./workflow/scripts/parseMeta.py -r Replicate_RID -m "./test_data/meta/metaTest.csv" -p stranded
   - singularity run 'docker://bicf/python3:1.3' python3 ./workflow/scripts/parseMeta.py -r Replicate_RID -m "./test_data/meta/metaTest.csv" -p species
 
+inferMetadata:
+  stage: unit
+  script:
+  - >
+    align=$(echo $(grep "Overall alignment rate" ./test_data/meta/Q-Y5JA_1M.se.alignSummary.txt | cut -f2 -d ':' | cut -f2 -d ' ' | tr -d '%'))
+    if [[ ${align} == "" ]]
+    then
+      exit 1
+    fi
+  - >
+    singularity run 'docker://bicf/rseqc3.0:2.0.0' infer_experiment.py -r "/project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/bed/genome.bed" -i "./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam" 1>> Q-Y5JA_1M.se.inferMetadata.log
+    ended=`bash inferMeta.sh endness Q-Y5JA_1M.se.inferMetadata.log
+    if [[ ${ended} == "" ]]
+    then
+      exit 1
+    fi
+  - pytest -m inferMetadata
+
 getRef:
   stage: unit
   script:
@@ -73,20 +91,20 @@ dedupData:
       echo "samtools view -b Q-Y5JA_1M.se.sorted.deduped.bam ${i} > Q-Y5JA_1M.se.sorted.deduped.${i}.bam; samtools index -@ 20 -b Q-Y5JA_1M.se.sorted.deduped.${i}.bam Q-Y5JA_1M.se.sorted.deduped.${i}.bam.bai;";
       done | singularity run 'docker://bicf/gudmaprbkdedup:2.0.0' parallel -j 20 -k
   - pytest -m dedupData
-  
-makeBigWig:
-  stage: unit
-  script:
-  - singularity run 'docker://bicf/deeptools3.3:2.0.0' bamCoverage -p 20 -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam -o Q-Y5JA_1M.se.bw
-  - pytest -m makeBigWig
 
-makeFeatureCounts:
+  countData:
   stage: unit
   script:
   - singularity run 'docker://bicf/subread2:2.0.0' featureCounts -R SAM -p -G /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/genome.fna -T 20 -s 1 -a /project/BICF/BICF_Core/shared/gudmap/references/GRCh38.p12.v31/genome.gtf -o Q-Y5JA_1M.se.featureCounts -g 'gene_name' --primary --ignoreDup -B ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam 
   - singularity run 'docker://bicf/subread2:2.0.0' Rscript ./workflow/scripts/calculateTPM.R --count Q-Y5JA_1M.se.featureCounts
   - pytest -m makeFeatureCounts
 
+makeBigWig:
+  stage: unit
+  script:
+  - singularity run 'docker://bicf/deeptools3.3:2.0.0' bamCoverage -p 20 -b ./test_data/bam/small/Q-Y5JA_1M.se.sorted.deduped.bam -o Q-Y5JA_1M.se.bw
+  - pytest -m makeBigWig
+
 fastqc:
   stage: unit
   script:
@@ -106,6 +124,7 @@ downsampleData:
   - singularity exec 'docker://bicf/seqtk:2.0.0' seqtk sample -s100 ./test_data/fastq/small/Q-Y5JA_1M_trimmed.fq.gz 1000 1> sampled.1.fq
   - pytest -m downsampleData
 
+
 integration_se:
   stage: integration
   script:
diff --git a/workflow/rna-seq.nf b/workflow/rna-seq.nf
index 94126589b52ceecb295d0f5b0d811e259e93fe98..03816c1814e9f9a3990541eefb06cec348c6c02f 100644
--- a/workflow/rna-seq.nf
+++ b/workflow/rna-seq.nf
@@ -437,7 +437,7 @@ process inferMetadata {
 
     # infer experimental setting from dedup bam
     echo "LOG: infer experimental setting from dedup bam" >> ${repRID}.inferMetadata.err
-    infer_experiment.py -r "\${bed}" -i "\${bam}" > ${repRID}.inferMetadata.log 2>> ${repRID}.inferMetadata.err
+    infer_experiment.py -r "\${bed}" -i "\${bam}" 1>> ${repRID}.inferMetadata.log 2>> ${repRID}.inferMetadata.err
 
     echo "LOG: determining endedness and strandedness from file" >> ${repRID}.inferMetadata.err
     ended=`bash inferMeta.sh endness ${repRID}.inferMetadata.log` 1>> ${repRID}.inferMetadata.out 2>> ${repRID}.inferMetadata.err
diff --git a/workflow/tests/test_dataQC.py b/workflow/tests/test_dataQC.py
new file mode 100644
index 0000000000000000000000000000000000000000..95eb332736bf7af93945402e6f79f04daac83f9f
--- /dev/null
+++ b/workflow/tests/test_dataQC.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.dataQC
+def test_dataQC():
+    assert os.path.exists(os.path.join(test_output_path, 'Q-Y5JA_1M.se.sorted.deduped.tin.xls'))
+
diff --git a/workflow/tests/test_inferMetadata.py b/workflow/tests/test_inferMetadata.py
index 44ffbc3f239630b357b5fde7746787fe9ca65d62..f2908bee242281c23e814f8bf8e3e3d68e395d9f 100644
--- a/workflow/tests/test_inferMetadata.py
+++ b/workflow/tests/test_inferMetadata.py
@@ -10,5 +10,5 @@ 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'))
+    assert os.path.exists(os.path.join(test_output_path, 'Q-Y5JA_1M.se.inferMetadata.log'))