Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change in eRegulons filtering for Heatmap_dotplot #143

Open
wants to merge 3 commits into
base: old
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions src/scenicplus/plotting/dotplot.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,10 +102,10 @@ def _find_idx(l, e):
size_matrix = size_matrix[color_matrix_features[2]]

if subset_eRegulons is not None:
#change to TF names
subset_eRegulons = [x.split('_')[0] for x in subset_eRegulons]
size_matrix = size_matrix[[x for x in size_matrix if x.split('_')[0] in subset_eRegulons]]
color_matrix = color_matrix[[x for x in color_matrix if x.split('_')[0] in subset_eRegulons]]
#filter eRegulon
subset_eRegulons = [x.split('_(')[0] for x in subset_eRegulons]
size_matrix = size_matrix[[x for x in size_matrix if x.split('_(')[0] in subset_eRegulons]]
color_matrix = color_matrix[[x for x in color_matrix if x.split('_(')[0] in subset_eRegulons]]

if scale_size_matrix:
size_matrix = (size_matrix - size_matrix.min()) / (size_matrix.max() - size_matrix.min())
Expand Down Expand Up @@ -204,8 +204,12 @@ def heatmap_dotplot(
order = pd.concat([idx_max[idx_max == x] for x in tmp.index.tolist() if len(plotting_df[plotting_df == x]) > 0]).index.tolist()
plotting_df['eRegulon_name'] = pd.Categorical(plotting_df['eRegulon_name'], categories = order)
plotnine.options.figure_size = figsize
#check repressor availability
plotting_df['repressor_activator'] = ['activator' if '+' in n.split('_')[1] and 'extended' not in n or '+' in n.split('_')[2] and 'extended' in n else 'repressor' for n in plotting_df['eRegulon_name']]
repressor_availability = 'repressor' in plotting_df['repressor_activator']
if not repressor_availability:
split_repressor_activator = False
if split_repressor_activator:
plotting_df['repressor_activator'] = ['activator' if '+' in n.split('_')[1] and 'extended' not in n or '+' in n.split('_')[2] and 'extended' in n else 'repressor' for n in plotting_df['eRegulon_name']]
if orientation == 'vertical':
plot = (
ggplot(plotting_df, aes('index', 'eRegulon_name'))
Expand All @@ -218,7 +222,6 @@ def heatmap_dotplot(
+ geom_point(
mapping = aes(size = 'size_val'),
colour = "black")
+ theme(axis_text_x=element_text(rotation=90, hjust=1))
+ theme(axis_title_x = element_blank(), axis_title_y = element_blank()))
elif orientation == 'horizontal':
plot = (
Expand Down Expand Up @@ -252,6 +255,7 @@ def heatmap_dotplot(
+ geom_point(
mapping = aes(size = 'size_val'),
colour = "black")
+ theme(axis_text_x=element_text(rotation=90, hjust=1))
+ theme(axis_title_x = element_blank(), axis_title_y = element_blank()))
if save is not None:
plot.save(save)
Expand Down