diff --git a/libcodonusage/libcodonusage.py b/libcodonusage/libcodonusage.py index de8d3c081a7f5302ee70cd03ae3885ac215dcec7..c577e32bc37be4af84fbce784b67b33b38826670 100644 --- a/libcodonusage/libcodonusage.py +++ b/libcodonusage/libcodonusage.py @@ -122,6 +122,7 @@ def detect_fishy_genes(codon_counts): start_upstream_met_start_col = start_upstream_col & ~no_met_start_col start_upstream_met_start_nostops_col = ( start_upstream_met_start_col & ~has_stops_col) + good_met_start_col = (~start_upstream_col & ~no_met_start_col) has_stops_good_met_start_col = ( has_stops_col & ~no_met_start_col & ~start_upstream_met_start_col) @@ -137,8 +138,9 @@ def detect_fishy_genes(codon_counts): "start_upstream_met_start": start_upstream_met_start_col, "start_upstream_met_start_nostops": ( start_upstream_met_start_nostops_col), + "good_met_start": good_met_start_col, "has_stops_good_met_start": has_stops_good_met_start_col}) - render_md("Number of genes in potentially fishy categories:\n\n") + render_md("Number of genes fitting various selection criteria:\n\n") display(criteria.agg(sum)) render_md("Upset plot of the non-empty categories:\n\n") fig = plt.figure() @@ -157,6 +159,7 @@ def detect_fishy_genes(codon_counts): criteria[start_upstream_met_start_col].index) start_upstream_met_start_nostops = set( criteria[start_upstream_met_start_nostops_col].index) + good_met_start = set(criteria[good_met_start_col].index) has_stops_good_met_start = set( criteria[has_stops_good_met_start_col].index) no_stop_good_met_start = set(criteria[no_stop_good_met_start_col].index) @@ -206,6 +209,9 @@ def detect_fishy_genes(codon_counts): " but have a well defined start position with 'M'.") if len(has_stops_good_met_start) <= 10: display(has_stops_good_met_start) + render_md( + f"{len(good_met_start)} genes have a well defined " + "start position with 'M'.") render_md( """If genes that have stop readthrough are a known phenomenon, only those among them that do not have a valid start codon