Spaces:
Build error
Build error
| import pandas as pd | |
| import math | |
| import plotly.subplots as sp | |
| import plotly.graph_objects as go | |
| import os | |
| def plot_pie_chart(df): | |
| ARG_prediction_counts = dict(df["ARG_prediction"].value_counts()) | |
| ARG_prediction_df = pd.DataFrame.from_dict( | |
| ARG_prediction_counts, orient="index", columns=["count"] | |
| ) | |
| resistance_category_counts = dict(df["resistance_category"].value_counts()) | |
| resistance_category_df = pd.DataFrame.from_dict( | |
| resistance_category_counts, orient="index", columns=["count"] | |
| ) | |
| number_of_catgeory = len(df["resistance_category"].value_counts()) | |
| colors = [ | |
| "#f9b4ab", | |
| "#fdebd3", | |
| "#264e70", | |
| "#679186", | |
| "#bbd4ce", | |
| ] | |
| full_colors = [] | |
| for i in range(math.ceil(number_of_catgeory / 5)): | |
| full_colors += colors | |
| # colors = ['gold', 'mediumturquoise', 'darkorange', 'lightgreen'] | |
| fig = sp.make_subplots( | |
| rows=1, | |
| cols=2, | |
| subplot_titles=("ARG/non-ARG", "Resistance category"), | |
| specs=[[{"type": "domain"}, {"type": "domain"}]], | |
| ) | |
| fig.add_trace( | |
| go.Pie( | |
| labels=ARG_prediction_df.index, | |
| values=ARG_prediction_df["count"], | |
| legendgroup="1", | |
| title="ARG/non-ARG", | |
| ), | |
| row=1, | |
| col=1, | |
| ) | |
| fig.add_trace( | |
| go.Pie( | |
| labels=resistance_category_df.index, | |
| values=resistance_category_df["count"], | |
| legendgroup="2", | |
| title="Resistance category", | |
| ), | |
| row=1, | |
| col=2, | |
| ) | |
| fig.update_layout(showlegend=False, margin=dict(l=200, r=200, t=100, b=100)) | |
| fig.update_traces( | |
| textposition="inside", | |
| hoverinfo="label+percent", | |
| textinfo="label", | |
| marker=dict(colors=full_colors, line=dict(color="#38496e", width=1)), | |
| ) | |
| return fig | |
| def view_stat(output_name): | |
| df = pd.read_csv(f"results/{output_name}", delimiter="\t") | |
| # change df header | |
| new_headers = ["Test ID", "ARG Prediction", "Resistance Category", "Probability"] | |
| fig = plot_pie_chart(df) | |
| # delete the output file | |
| if os.path.exists(f"results/{output_name}"): | |
| os.remove(f"results/{output_name}") | |
| return [df.rename(columns=dict(zip(df.columns, new_headers))), fig] | |
| def run_argnet(input, output_name, sequence_type, sequence_length_type): | |
| with open("input.txt", "w") as f: | |
| f.write(input) | |
| # delete the output file | |
| if os.path.exists(f"results/{output_name}"): | |
| os.remove(f"results/{output_name}") | |
| if sequence_type == "aa" and sequence_length_type == "s": | |
| from . import argnet_ssaa_chunk as ssaa | |
| ssaa.argnet_ssaa("input.txt", output_name) | |
| elif sequence_type == "nt" and sequence_length_type == "s": | |
| from . import argnet_ssnt_new_chunk as ssnt | |
| ssnt.argnet_ssnt("input.txt", output_name) | |
| elif sequence_type == "aa" and sequence_length_type == "l": | |
| from . import argnet_lsaa_speed_sgpu as lsaa | |
| lsaa.argnet_lsaa("input.txt", output_name) | |
| elif sequence_type == "nt" and sequence_length_type == "l": | |
| from . import argnet_lsnt as lsnt | |
| lsnt.argnet_lsnt("input.txt", output_name) | |
| if os.path.exists("input.txt"): | |
| os.remove("input.txt") | |