In [1]:
# papermill params
effects_csv = None
structure_csv = None
In [2]:
# Parameters
effects_csv = "results/func_effects/averages/293T_entry_func_effects.csv"
structure_csv = "data/structure_map.csv"
In [3]:
import os
import altair as alt
import pandas as pd
import yaml
In [4]:
# Import data interactively
# effects_csv = "../results/func_effects/averages/293T_entry_func_effects.csv"
# structure_csv = "../data/structure_map.csv"
effect = pd.read_csv(effects_csv)
structure = pd.read_csv(structure_csv)
In [5]:
effect = effect[effect.times_seen >= 2]
effect = effect[effect.n_selections >= 2]
In [6]:
effect = effect.groupby(["site","wildtype"]).effect.mean().reset_index()
In [7]:
structure['reference_site'] = structure['reference_site'].astype(str)
effect['site'] = effect['site'].astype(str)
In [8]:
effect = effect.merge(
structure,
left_on='site',
right_on='reference_site')
In [9]:
#remove un-wanted structural elements
effect = effect.loc[effect['head_stalk'] != "SP"]
effect = effect.loc[effect['head_stalk'] != "PBCS"]
effect = effect.loc[effect['head_stalk'] != "TM"]
effect = effect.loc[effect['wildtype'] != "*"]
effect = effect.loc[effect['wildtype'] != "-"]
effect = effect.loc[effect['region'] != "SP"]
effect = effect.loc[effect['region'] != "TM/CT"]
In [10]:
dist_boxplot_1 = (
alt.Chart(effect)
.encode(
x=alt.X(
"region",
title=None,
axis=alt.Axis(labelFontSize=11, labelFontStyle="bold", labelAngle=90), # Tilt the labels by 90 degrees
# scale=alt.Scale(domain=["HA1", "HA2"]),
),
y=alt.Y(
"effect:Q",
title="mutation effect on cell entry",
scale=alt.Scale(nice=False, padding=2),
),
xOffset=alt.XOffset("region"),
)
.mark_boxplot(outliers=False, extent="min-max", size=12)
.configure_axis(grid=False)
.properties(height=160, width=alt.Step(4))
)
dist_boxplot_1
Out[10]:
In [11]:
dist_boxplot_2 = (
alt.Chart(effect)
.encode(
x=alt.X(
"head_stalk",
title=None,
axis=alt.Axis(labelFontSize=11, labelFontStyle="bold", labelAngle=0),
scale=alt.Scale(domain=["HA1", "HA2"]),
),
y=alt.Y(
"effect:Q",
title="mutation effect on cell entry",
scale=alt.Scale(nice=False, padding=2),
),
xOffset=alt.XOffset("head_stalk"),
)
.mark_boxplot(outliers=False, extent="min-max", size=12)
.configure_axis(grid=False)
.properties(height=160, width=alt.Step(14))
)
dist_boxplot_2
Out[11]: