Exemplo n.º 1
0
def _update_histo(
    virus_name,
    mumps,
    dengue,
    lassa,
    avian_opt1,
    avian_opt2,
    flu_opt1,
    flu_opt2,
    flu_opt3,
    id_year,
):
    virus_name = virus_name.lower()
    if virus_name == "ebola" or virus_name == "zika" or virus_name == "measles":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1="", level2="", level3="")
    elif virus_name == "mumps":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=mumps, level2="", level3="")
    elif virus_name == "dengue":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=dengue, level2="", level3="")
    elif virus_name == "lassa":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=lassa, level2="", level3="")
    elif virus_name == "avian":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=avian_opt1,
                              level2=avian_opt2,
                              level3="")
    elif virus_name == "flu":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=flu_opt1,
                              level2=flu_opt2,
                              level3=flu_opt3)
    df = pd.read_csv(metadata_file_stat_filtred)
    min_date, max_date = id_year

    # To select only the data between min_date and max_date
    df = df[df["Year"] >= min_date]
    df = df[df["Year"] <= max_date]

    # Count the number of viruses by Country
    df_group_by_country = df.groupby(["Country"])["Value"].sum()
    # Translate groupby object in dataframe
    df_group_by_country = df_group_by_country.to_frame()
    # Rename the first column in Value
    df_group_by_country.columns = ["Value"]
    # Move the index values (i.e. Country column) in column and reset index
    df_group_by_country = df_group_by_country.reset_index()

    return {
        "data": [{
            "x": df_group_by_country["Country"],
            "y": df_group_by_country["Value"],
            "type": "bar",
            "marker": dict(color="#8380ff"),
        }],
        "layout": {
            "autosize":
            True,
            "margin":
            dict(l=30, r=30, b=70, t=40),
            "title":
            "<br>Distribution of {} <br>Between {} and {}".format(
                virus_name.title(), min_date, max_date),
            "font":
            dict(family="Open Sans"),
        },
    }
Exemplo n.º 2
0
def _update_curve(
    virus_name,
    mumps,
    dengue,
    lassa,
    avian_opt1,
    avian_opt2,
    flu_opt1,
    flu_opt2,
    flu_opt3,
    id_year,
):
    virus_name = virus_name.lower()
    if virus_name == "ebola" or virus_name == "zika" or virus_name == "measles":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1="", level2="", level3="")
    elif virus_name == "mumps":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=mumps, level2="", level3="")
    elif virus_name == "dengue":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=dengue, level2="", level3="")
    elif virus_name == "lassa":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=lassa, level2="", level3="")
    elif virus_name == "avian":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=avian_opt1,
                              level2=avian_opt2,
                              level3="")
    elif virus_name == "flu":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=flu_opt1,
                              level2=flu_opt2,
                              level3=flu_opt3)
    df = pd.read_csv(metadata_file_stat_filtred)
    min_date, max_date = id_year

    # To select only the data between min_date and max_date
    df = df[df["Year"] >= min_date]
    df = df[df["Year"] <= max_date]

    return create_curve_line(df, virus_name, min_date, max_date)
Exemplo n.º 3
0
def update_phylogeny_tree(
    virus_name,
    mumps,
    dengue,
    lassa,
    avian_opt1,
    avian_opt2,
    flu_opt1,
    flu_opt2,
    flu_opt3,
):
    virus_name = virus_name.lower()
    ord_by_elt = "Country"
    if virus_name == "ebola" or virus_name == "zika" or virus_name == "measles":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1="", level2="", level3="")
    elif virus_name == "mumps":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=mumps, level2="", level3="")
    elif virus_name == "dengue":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat,
        ) = create_paths_file(virus_name, level1=dengue, level2="", level3="")
    elif virus_name == "lassa":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=lassa, level2="", level3="")
    elif virus_name == "avian":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=avian_opt1,
                              level2=avian_opt2,
                              level3="")
    elif virus_name == "flu":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=flu_opt1,
                              level2=flu_opt2,
                              level3=flu_opt3)

    if tree_file_filtred in tree_fig:
        fig = tree_fig[tree_file_filtred]
    else:
        if ord_by_elt == "Country" or ord_by_elt == "Division" or ord_by_elt == "Date":
            fig = create_tree(virus_name, tree_file_filtred,
                              metadata_file_filtred, ord_by_elt)

        tree_fig[tree_file_filtred] = fig

    return fig
Exemplo n.º 4
0
def _update_slicer(
    virus_name,
    mumps,
    dengue,
    lassa,
    avian_opt1,
    avian_opt2,
    flu_opt1,
    flu_opt2,
    flu_opt3,
):
    virus_name = virus_name.lower()
    if virus_name == "ebola" or virus_name == "zika" or virus_name == "measles":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1="", level2="", level3="")
    elif virus_name == "mumps":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=mumps, level2="", level3="")
    elif virus_name == "dengue":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=dengue, level2="", level3="")
    elif virus_name == "lassa":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name, level1=lassa, level2="", level3="")
    elif virus_name == "avian":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=avian_opt1,
                              level2=avian_opt2,
                              level3="")
    elif virus_name == "flu":
        (
            tree_file_filtred,
            metadata_file_filtred,
            metadata_file_stat_filtred,
        ) = create_paths_file(virus_name,
                              level1=flu_opt1,
                              level2=flu_opt2,
                              level3=flu_opt3)
    df = pd.read_csv(metadata_file_stat_filtred)
    min_date, max_date = min_max_date(df)
    # create the dictionary of slider
    marks_data = slicer(min_date, max_date)
    min_max_date_value = [min_date, max_date]

    # To select only the data between min_date and max_date
    df = df[df["Year"] >= min_date]
    df = df[df["Year"] <= max_date]
    return dcc.RangeSlider(
        id="id-year",
        min=min_date,
        max=max_date,
        step=1,
        marks=marks_data,
        value=min_max_date_value,
    )
Exemplo n.º 5
0
    slicer,
    create_tree,
    create_map_bubble_year,
    create_curve_line,
)

app = dash.Dash(__name__)
server = app.server

virus_name = "measles"
species = ["Avian", "Ebola", "Lassa", "Measles", "Mumps", "Zika"]
tree_fig = {}
mapbox_access_token = "pk.eyJ1IjoicGxvdGx5bWFwYm94IiwiYSI6ImNrOWJqb2F4djBnMjEzbG50amg0dnJieG4ifQ.Zme1-Uzoi75IaFbieBDl3A"

tree_file, metadata_file, metadata_file_stat = create_paths_file(virus_name,
                                                                 level1="",
                                                                 level2="",
                                                                 level3="")

# To know the minimum and the maximum values of date for slicer
df_stat_metadata = pd.read_csv(metadata_file_stat)
min_date, max_date = min_max_date(df_stat_metadata)

# create the dictionary of slider
marks_data = slicer(min_date, max_date)
min_max_date_value = [min_date, max_date]

fig = create_tree(virus_name, tree_file, metadata_file, "Country")
tree_fig[tree_file] = fig

fig_map_bubble = create_map_bubble_year(virus_name, metadata_file_stat, 2,
                                        min_date, max_date)