File size: 3,421 Bytes
c2a02c6
 
 
 
 
 
 
 
 
 
8a2e1bf
48a30b6
 
 
754deb7
 
728e884
ec06c4b
9058c14
c8b993f
754deb7
0d7f3a7
b68774d
9abc2e6
c2a02c6
0052cfb
8a2e1bf
0052cfb
c2a02c6
8a2e1bf
c2a02c6
 
 
 
38ea622
ee0298f
c241227
d39033d
 
38ea622
 
 
65d977a
38ea622
 
65d977a
 
9e2f96b
c8b993f
 
 
c241227
806931d
fa82089
0945bb1
8f90700
 
 
 
5dcdaaa
8f90700
 
 
 
 
efb78a7
8f90700
 
 
38ea622
9cffd28
0945bb1
da9bcac
 
e52de1a
d6a723e
0945bb1
e52de1a
 
e3df29c
05e0ac4
e52de1a
0945bb1
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
import streamlit as st
import pandas as pd 
from os import path
import sys
import streamlit.components.v1 as components
sys.path.append('code/')
import pdb_featureVector
import alphafold_featureVector
import argparse
from st_aggrid import AgGrid, GridOptionsBuilder, JsCode,GridUpdateMode
import base64
from huggingface_hub import hf_hub_download
import streamlit as st
import gzip

showWarningOnDirectExecution = False

def convert_df(df):
   return df.to_csv(index=False, sep= '\t').encode('utf-8')


if 'visibility' not in st.session_state:
    st.session_state['visibility'] = 'visible'
    st.session_state.disabled =  False

original_title = '<p style="font-family:Trebuchet MS; color:#000000; font-size: 25px; font-weight:bold; text-align:center">ASCARIS</p>'
st.markdown(original_title, unsafe_allow_html=True)
original_title = '<p style="font-family:Trebuchet MS; color:#000000; font-size: 25px; font-weight:bold; text-align:center">(Annotation and StruCture-bAsed RepresentatIon of Single amino acid variations)</p>'
st.markdown(original_title, unsafe_allow_html=True)
 
st.write('')
st.write('')
st.write('')
st.write('')

with st.form('mform', clear_on_submit=False):
    source = st.selectbox('Select the protein structure resource (1: PDB-SwissModel-Modbase, 2: AlphaFold)',[1,2])
    impute = st.selectbox('Missing value imputation (mostly for the cases where the corresponding annotation does not exist in the protein)',[True, False])
    input_data = st.text_input('Enter SAV data points (format: "UniProt/Swiss-Prot human protein accession" – "wild type a.a." – "position on the sequence" – "mutated a.a.").   Example: P04217-E-20-A or O43556-I-40-A,P57737-W-372-A')
            


    parser = argparse.ArgumentParser(description='ASCARIS')
    
    
    input_set = input_data
    impute = impute
    submitted = st.form_submit_button(label="Submit", help=None, on_click=None, args=None, kwargs=None, type="secondary", disabled=False, use_container_width=False)
    print('*****************************************')
    print('Feature vector generation is in progress. \nPlease check log file for updates..')
    print('*****************************************')
    mode = int(source)
    
selected_df = pd.DataFrame()
st.write('The online tool may be slow, especially while processing multiple SAVs. To address this, please consider using the programmatic version at https://github.com/HUBioDataLab/ASCARIS/')
if submitted:
    with st.spinner('In progress...This may take a while...'):
        try:
            if mode == 1:
                selected_df = pdb_featureVector.pdb(input_set, mode, impute)   
                
            elif mode == 2:
                selected_df = alphafold_featureVector.alphafold(input_set, mode, impute)
            else:
                selected_df =  pd.DataFrame()

        except:
            selected_df = pd.DataFrame()
            pass

    if selected_df is None:
        st.success('Feature vector failed. Check the log file.')

    else:
        if len(selected_df) != 0 :
            st.write(selected_df)
            st.success('Feature vector is successfully created.')
            csv = convert_df(selected_df)
    
            st.download_button("Press to Download the Feature Vector", csv,f"ASCARIS_SAV_rep_{input_set}.csv","text/csv",key='download-csv')

        else:
            st.success('Feature vector failed. Check the log file.')