File size: 4,703 Bytes
57b138a
 
be109f4
6db04bb
c386cc2
6db04bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c386cc2
6db04bb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import gradio as gr
import pandas as pd
import scipy
from utils import *

def demo(SPM_path_to_csv, SPM_identifier_column, SPM_sequence_column, SPM_sortby, SPM_sliding_window_min, SPM_sliding_window_max, SPM_min_gap, SPM_max_gap, SPM_S_support_thresh, SPM_I_support_thresh, SPM_dataset_format, DSM_path_to_csv_left, DSM_path_to_csv_right, DSM_identifier_column, DSM_sequence_column, DSM_sortby, DSM_sliding_window_min, DSM_sliding_window_max, DSM_min_gap, DSM_max_gap, DSM_S_support_thresh, DSM_I_support_thresh, DSM_threshold_pvalue, DSM_dataset_format, DSM_test_type,result_view):
    # Your data processing logic here    
    result = {
        "SPM": {"path_to_csv": SPM_path_to_csv.name, "identifier_column": SPM_identifier_column, "sequence_column": SPM_sequence_column, "sortby": SPM_sortby, "sliding_window_min": SPM_sliding_window_min, "sliding_window_max": SPM_sliding_window_max, "min_gap": SPM_min_gap, "max_gap": SPM_max_gap, "S_support_thresh": SPM_S_support_thresh, "I_support_thresh": SPM_I_support_thresh, "dataset_format": SPM_dataset_format}, 
        "DSM": {"path_to_csv_left": DSM_path_to_csv_left.name, "path_to_csv_right": DSM_path_to_csv_right.name, "identifier_column": DSM_identifier_column, "sequence_column": DSM_sequence_column, "sortby": DSM_sortby, "sliding_window_min": DSM_sliding_window_min, "sliding_window_max": DSM_sliding_window_max, "min_gap": DSM_min_gap, "max_gap": DSM_max_gap, "S_support_thresh": DSM_S_support_thresh, "I_support_thresh": DSM_I_support_thresh, "threshold_pvalue": DSM_threshold_pvalue, "dataset_format": DSM_dataset_format, "test_type": DSM_test_type}
    }
    spm_result, occurrence_matrix = SPM(result["SPM"])
    ptrn_left, ptrn_right, ptrn_both_left, ptrn_both_right, dsm_result = DSM(result["DSM"])
    spm_result.to_csv("spm_result.csv")
    dsm_result.to_csv("dsm_result.csv")
    if result_view=="SPM":
        re=spm_result
    if result_view=="DSM":
        re=dsm_result
    return "spm_result.csv","dsm_result.csv",re

default_values = {
    "SPM Upload CSV file": None,
    "SPM_identifier_column": "Identifier",
    "SPM_sequence_column": "Sequence",
    "SPM_sortby": "S-Support",
    "SPM_sliding_window_min": 1,
    "SPM_sliding_window_max": 4,
    "SPM_min_gap": 1,
    "SPM_max_gap": 12,
    "SPM_S_support_thresh": 0.4,
    "SPM_I_support_thresh": 0,
    "SPM_dataset_format": 0,
    "DSM_path_to_csv_left": None,
    "DSM_path_to_csv_right": None,
    "DSM_identifier_column": "Identifier",
    "DSM_sequence_column": "Sequence",
    "DSM_sortby": "S-Support",
    "DSM_sliding_window_min": 1,
    "DSM_sliding_window_max": 1,
    "DSM_min_gap": 1,
    "DSM_max_gap": 12,
    "DSM_S_support_thresh": 0.4,
    "DSM_I_support_thresh": 0,
    "DSM_threshold_pvalue": 0.1,
    "DSM_dataset_format": 0,
    "DSM_test_type": "ttest_ind",
    "Select method for which you want to view result": "DSM"
}

interface = gr.Interface(
    fn=process_data,
    inputs=[
        gr.File(label="SPM Upload CSV file"),
        gr.Textbox(label="SPM identifier_column"),
        gr.Textbox(label="SPM sequence_column"),
        gr.Dropdown(label="SPM sortby", choices=["S-Support", "I-Support"]),
        gr.Number(label="SPM sliding_window_min"),
        gr.Number(label="SPM sliding_window_max"),
        gr.Number(label="SPM min_gap"),
        gr.Number(label="SPM max_gap"),
        gr.Number(label="SPM S_support_thresh"),
        gr.Number(label="SPM I_support_thresh"),
        gr.Number(label="SPM dataset_format"),
        gr.File(label="DSM Upload CSV file for left Dataset"),
        gr.File(label="DSM Upload CSV file for right Dataset"),
        gr.Textbox(label="DSM identifier_column"),
        gr.Textbox(label="DSM sequence_column"),
        gr.Dropdown(label="DSM sortby", choices=["S-Support", "I-Support"]),
        gr.Number(label="DSM sliding_window_min"),
        gr.Number(label="DSM sliding_window_max"),
        gr.Number(label="DSM min_gap"),
        gr.Number(label="DSM max_gap"),
        gr.Number(label="DSM S_support_thresh"),
        gr.Number(label="DSM I_support_thresh"),
        gr.Number(label="DSM threshold_pvalue"),
        gr.Number(label="DSM dataset_format"),
        gr.Dropdown(label="DSM test_type", choices=["poisson_means_test", "ttest_ind", "mannwhitneyu", "bws_test", "ranksums", "brunnermunzel", "mood", "ansari", "cramervonmises_2samp", "epps_singleton_2samp", "ks_2samp", "kstest"]),
        gr.Dropdown(label="Select method for which you want to view result", choices=["SPM", "DSM"])
    ],
    outputs=[gr.File(label="SPM result"),gr.File(label="DSM result"),"dataframe"],
    title="SPM And DSM Implementation in Python",
    defaults=default_values
)
interface.launch(debug=True)