diff --git a/workflow/scripts/calcuateTPM.R b/workflow/scripts/calcuateTPM.R
new file mode 100644
index 0000000000000000000000000000000000000000..945116510462a1b8777750abb829d537bbccdc47
--- /dev/null
+++ b/workflow/scripts/calcuateTPM.R
@@ -0,0 +1,32 @@
+gc()
+library(optparse)
+library(edgeR)
+
+option_list=list(
+  make_option("--count",action="store",type='character',help="Count File")
+)
+opt=parse_args(OptionParser(option_list=option_list))
+rm(option_list)
+
+if (!("count" %in% names(opt))){
+  print("No count file passed, exiting.")
+  exit()
+} else if (!file.exists(opt$count)) {
+  print("No count file passed, exiting.")
+  exit()
+}
+
+repRID <- basename(gsub(".featureCounts","",opt$count))
+
+count <- read.delim(opt$count, comment.char="#")
+
+rpk <- count$Q.Y5JA.sorted.deduped.bam/count$Length/1000
+
+scale <- sum(rpk)/1000000
+
+tpm <- rpk/scale
+
+output <- cbind(count,tpm)
+colnames(output)[7] <- "count"
+
+write.table(output,file=paste0(repRID,".countTable.csv"),sep=",",row.names=FALSE,quote=FALSE)
\ No newline at end of file