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]: