diff --git a/snakemake_wrappers/compute_RPK/wrapper.py b/snakemake_wrappers/compute_RPK/wrapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..f3a4218121589a08554a5c1269066910402178da
--- /dev/null
+++ b/snakemake_wrappers/compute_RPK/wrapper.py
@@ -0,0 +1,7 @@
+import pandas as pd
+
+counts_data = pd.read_table(snakemake.input.counts_data, index_col="gene")
+feature_lengths = pd.read_table(snakemake.params.feature_lengths_file, index_col="gene")
+common = counts_data.index.intersection(feature_lengths.index)
+rpk = 1000 * counts_data.loc[common].div(feature_lengths.loc[common]["union_exon_len"], axis="index")
+rpk.to_csv(snakemake.output.rpk_file, sep="\t")
diff --git a/snakemake_wrappers/compute_TPM/wrapper.py b/snakemake_wrappers/compute_TPM/wrapper.py
new file mode 100644
index 0000000000000000000000000000000000000000..f07c15ac6035e0be731d325e677cd8c1daf0b620
--- /dev/null
+++ b/snakemake_wrappers/compute_TPM/wrapper.py
@@ -0,0 +1,5 @@
+import pandas as pd
+
+rpk = pd.read_table(snakemake.input.rpk_file, index_col="gene")
+tpm = 1000000 * rpk / rpk.sum()
+tpm.to_csv(snakemake.output.tpm_file, sep="\t")