diff --git a/libcodonusage/__init__.py b/libcodonusage/__init__.py
index 3c99cc9f3ccb64a7561ba49140c0d1ce353fba55..c45672d8a14f37072d6d1dd6f5f7b99fc9b464f4 100644
--- a/libcodonusage/__init__.py
+++ b/libcodonusage/__init__.py
@@ -1,6 +1,6 @@
 __copyright__ = "Copyright (C) 2022 Blaise Li"
 __licence__ = "GNU GPLv3"
-__version__ = "0.21"
+__version__ = "0.22"
 from .libcodonusage import (
     aa2colour,
     aa_usage,
diff --git a/libcodonusage/libcodonusage.py b/libcodonusage/libcodonusage.py
index 94d722f40a86189a3541412d0175918388eb1000..8b136fc0d3586466c7954634030c20da221b0af2 100644
--- a/libcodonusage/libcodonusage.py
+++ b/libcodonusage/libcodonusage.py
@@ -352,7 +352,7 @@ SUZUKI_DOI = "10.1016/j.febslet.2005.10.032"
 SUZUKI_LINK = f"[Suzuki et al (2005)](https://doi.org/{SUZUKI_DOI})"
 
 
-def gene_wide_codon_usage(codon_counts, verbose=False):
+def gene_wide_codon_usage(codon_counts, verbose=False, return_props=False):
     """
     Compute codon usage biases "gene-wide" as the standardized
     difference between a gene's codon proportions and global
@@ -414,10 +414,12 @@ across genes) so that they are more comparable between codons.
     # standardized_codon_usage_biases.style.hide(axis="index")
     if verbose:
         display(standardized_codon_usage_biases.head(3))
+    if return_props:
+        return (standardized_codon_usage_biases, codon_proportions)
     return standardized_codon_usage_biases
 
 
-def by_aa_codon_usage(codon_counts, verbose=False):
+def by_aa_codon_usage(codon_counts, verbose=False, return_props=False):
     """
     Compute codon usage biases "by amino-acid" as the standardized
     difference between a gene's codon proportions and global
@@ -495,10 +497,12 @@ across genes) so that they are more comparable between codons.
     # standardized_codon_usage_biases.style.hide(axis="index")
     if verbose:
         display(standardized_codon_usage_biases.head(3))
+    if return_props:
+        return (standardized_codon_usage_biases, codon_proportions)
     return standardized_codon_usage_biases
 
 
-def aa_usage(codon_counts, verbose=False):
+def aa_usage(codon_counts, verbose=False, return_props=False):
     """
     Compute amino-acid usage biases as the standardized
     difference between a gene's amino-acid proportions
@@ -563,6 +567,8 @@ across genes) so that they are more comparable between amino-acids.
     # standardized_aa_usage_biases.style.hide(axis="index")
     if verbose:
         display(standardized_aa_usage_biases.head(3))
+    if return_props:
+        return (standardized_aa_usage_biases, aa_proportions)
     return standardized_aa_usage_biases
 
 
@@ -1319,7 +1325,7 @@ def violin_usage_by_clusters_splitby(
     for clss in classes:
         fig = violin_usage_by_clusters(
             usage_with_clusters.loc[
-                (*(slice(None) for _ in range(idx_level)), clss),],
+                (*(slice(None) for _ in range(idx_level)), clss), ],
             aa, ylabel_template + f" for {clss}",
             cluster_level_template=cluster_level_template,
             vertical=vertical, **violin_kwargs)