Spaces:
Sleeping
Sleeping
File size: 2,482 Bytes
cfbe98d 3f8dd98 cfbe98d 6d06448 3f8dd98 cfbe98d 3f8dd98 a83006f 3f8dd98 cfbe98d a83006f 3f8dd98 4e8c8b5 a83006f 4e8c8b5 a83006f 3f8dd98 cfbe98d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
import json
import gradio as gr
with open("default_inputs.json", "r") as default_inputs_file:
DEFAULT_INPUTS = json.load(default_inputs_file)
def set_default_inputs():
return (DEFAULT_INPUTS["dna_sequence"],
DEFAULT_INPUTS["latitude"],
DEFAULT_INPUTS["longitude"])
def predict_genus():
dna_df = pd.read_csv(dna_file.name)
dnaenv_df = pd.read_csv(dnaenv_file.name)
results = []
# envdna_genuses = predict_genus_dna_env(dnaenv_df)
# dna_genuses = predict_genus_dna(dna_df)
# images = [get_genus_image(genus) for genus in top_5_genuses]
genuses = xgboost_infer.infer()
results.append({
"sequence": dna_df['nucraw'],
# "predictions": pd.concat([dna_genuses, envdna_genuses], axis=0)
'predictions': genuses
})
return results
with gr.Blocks() as demo:
# Header section
gr.Markdown("# DNA Identifier Tool")
gr.Markdown("Welcome to Lofi Amazon Beats' DNA Identifier Tool")
with gr.Tab("Genus Prediction"):
gr.Markdown("Input a DNA sequence and the coordinates at which its sample was taken to predict the genus of the DNA. Click 'I'm feeling lucky' to see our predictio for a random sequence.")
# Collect inputs for app (DNA and location)
with gr.Row():
inp_dna = gr.Textbox(label="DNA", placeholder="e.g. AACAATGTA... (will be automatically truncated to 660 characters)")
with gr.Row():
inp_lat = gr.Textbox(label="Latitude", placeholder="e.g. -3.009083")
inp_lng = gr.Textbox(label="Longitude", placeholder="e.g. -58.68281")
with gr.Row():
btn_run = gr.Button("Run")
btn_defaults = gr.Button("I'm feeling lucky")
btn_defaults.click(fn=set_default_inputs, outputs=[inp_dna, inp_lat, inp_lng])
with gr.Row():
gr.Markdown('Make plot or table for Top 5 species')
with gr.Column():
genus_out = gr.Dataframe(headers=["DNA", "Coord", "DNA Only Pred Genus", "DNA Only Prob", "DNA & Env Pred Genus", "DNA & Env Prob"])
btn_run.click(predict_genus, inputs=[inp_dna, inp_lat, inp_lng], outputs=genus_out)
with gr.Tab('DNA Embedding Space Similarity Visualizer'):
gr.Markdown("If the highest genus probability is very low for your DNA sequence, we can still examine the DNA embedding of the sequence in relation to known samples or clues.")
demo.launch()
|