Erva Ulusoy commited on
Commit
b83c412
·
1 Parent(s): c18585d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -9
app.py CHANGED
@@ -41,12 +41,12 @@ with st.sidebar:
41
  input_type = st.radio('Select input type', ['Enter sequence', 'Upload FASTA file'])
42
  if input_type == 'Enter sequence':
43
  if st.session_state.example_seq_button:
44
- sequence = st.text_area('Enter protein sequence in FASTA format.',
45
  value='>sp|O18783|PLMN_NOTEU\n'
46
  'MEYGKVIFLFLLFLKSGQGESLENYIKTEGASLSNSQKKQFVASSTEECEALCEKETEFVCRSFEHYNKEQKCVIMSENSKTSSVERKRDVVLFEKRIYLSDCKSGNGRNYRGTLSKTKSGITCQKWSDLSPHVPNYAPSKYPDAGLEKNYCRNPDDDVKGPWCYTTNPDIRYEYCDVPECEDECMHCSGENYRGTISKTESGIECQPWDSQEPHSHEYIPSKFPSKDLKENYCRNPDGEPRPWCFTSNPEKRWEFCNIPRCSSPPPPPGPMLQCLKGRGENYRGKIAVTKSGHTCQRWNKQTPHKHNRTPENFPCRGLDENYCRNPDGELEPWCYTTNPDVRQEYCAIPSCGTSSPHTDRVEQSPVIQECYEGKGENYRGTTSTTISGKKCQAWSSMTPHQHKKTPDNFPNADLIRNYCRNPDGDKSPWCYTMDPTVRWEFCNLEKCSGTGSTVLNAQTTRVPSVDTTSHPESDCMYGSGKDYRGKRSTTVTGTLCQAWTAQEPHRHTIFTPDTYPRAGLEENYCRNPDGDPNGPWCYTTNPKKLFDYCDIPQCVSPSSFDCGKPRVEPQKCPGRIVGGCYAQPHSWPWQISLRTRFGEHFCGGTLIAPQWVLTAAHCLERSQWPGAYKVILGLHREVNPESYSQEIGVSRLFKGPLAADIALLKLNRPAAINDKVIPACLPSQDFMVPDRTLCHVTGWGDTQGTSPRGLLKQASLPVIDNRVCNRHEYLNGRVKSTELCAGHLVGRGDSCQGDSGGPLICFEDDKYVLQGVTSWGLGCARPNKPGVYVRVSRYISWIEDVMKNN')
47
  else:
48
- sequence = st.text_input('Enter protein sequence in FASTA format.')
49
- name = sequence.split('\n')[0].strip('>')
50
  st.button('Use example sequence', on_click=click_button)
51
  else:
52
  protein_input = st.file_uploader('Choose file')
@@ -54,14 +54,14 @@ with st.sidebar:
54
  protein_input_stringio = StringIO(protein_input.getvalue().decode("utf-8"))
55
  fasta_sequences = SeqIO.parse(protein_input_stringio, 'fasta')
56
  for fasta in fasta_sequences:
57
- name, sequence = fasta.id, str(fasta.seq)
58
 
59
- email = st.text_input('Enter your email for InterProScan query: ')
60
 
61
  # prevent user from clicking 'Find domains' button if email or sequence is empty
62
  domains_submitted = False
63
  if st.button('Find domains'):
64
- if email and sequence:
65
  domains_submitted = True
66
  st.session_state.disabled = True
67
  else:
@@ -69,12 +69,13 @@ with st.sidebar:
69
  else:
70
  with domain_tab:
71
  st.warning('Please enter your query and click "Find domains" to see domains in sequence.')
 
72
  with domain_tab:
73
  no_domains = False
74
  error_in_interproscan = False
75
  if domains_submitted:
76
  with st.spinner('Finding domains in sequence using InterProScan. This may take a while...'):
77
- result = find_domains(email, sequence, name)
78
  result_text = result[0]
79
  if result_text == 'Domains found.':
80
  st.success(result_text + ' You can now see function predictions for the sequence in the "Function predictions" tab.')
@@ -96,7 +97,7 @@ with domain_tab:
96
  st.download_button(
97
  label="Download domains in sequence as CSV",
98
  data=domains_csv,
99
- file_name=f"{name}_domains.csv",
100
  mime="text/csv",
101
  )
102
 
@@ -129,7 +130,7 @@ with pred_tab:
129
  st.download_button(
130
  label="Download function predictions as CSV",
131
  data=pred_csv,
132
- file_name=f"{name}_function_predictions.csv",
133
  mime="text/csv",
134
  )
135
 
 
41
  input_type = st.radio('Select input type', ['Enter sequence', 'Upload FASTA file'])
42
  if input_type == 'Enter sequence':
43
  if st.session_state.example_seq_button:
44
+ st.session_state['sequence'] = st.text_area('Enter protein sequence in FASTA format.',
45
  value='>sp|O18783|PLMN_NOTEU\n'
46
  'MEYGKVIFLFLLFLKSGQGESLENYIKTEGASLSNSQKKQFVASSTEECEALCEKETEFVCRSFEHYNKEQKCVIMSENSKTSSVERKRDVVLFEKRIYLSDCKSGNGRNYRGTLSKTKSGITCQKWSDLSPHVPNYAPSKYPDAGLEKNYCRNPDDDVKGPWCYTTNPDIRYEYCDVPECEDECMHCSGENYRGTISKTESGIECQPWDSQEPHSHEYIPSKFPSKDLKENYCRNPDGEPRPWCFTSNPEKRWEFCNIPRCSSPPPPPGPMLQCLKGRGENYRGKIAVTKSGHTCQRWNKQTPHKHNRTPENFPCRGLDENYCRNPDGELEPWCYTTNPDVRQEYCAIPSCGTSSPHTDRVEQSPVIQECYEGKGENYRGTTSTTISGKKCQAWSSMTPHQHKKTPDNFPNADLIRNYCRNPDGDKSPWCYTMDPTVRWEFCNLEKCSGTGSTVLNAQTTRVPSVDTTSHPESDCMYGSGKDYRGKRSTTVTGTLCQAWTAQEPHRHTIFTPDTYPRAGLEENYCRNPDGDPNGPWCYTTNPKKLFDYCDIPQCVSPSSFDCGKPRVEPQKCPGRIVGGCYAQPHSWPWQISLRTRFGEHFCGGTLIAPQWVLTAAHCLERSQWPGAYKVILGLHREVNPESYSQEIGVSRLFKGPLAADIALLKLNRPAAINDKVIPACLPSQDFMVPDRTLCHVTGWGDTQGTSPRGLLKQASLPVIDNRVCNRHEYLNGRVKSTELCAGHLVGRGDSCQGDSGGPLICFEDDKYVLQGVTSWGLGCARPNKPGVYVRVSRYISWIEDVMKNN')
47
  else:
48
+ st.session_state['sequence'] = st.text_input('Enter protein sequence in FASTA format.')
49
+ st.session_state['name'] = st.session_state['sequence'].split('\n')[0].strip('>')
50
  st.button('Use example sequence', on_click=click_button)
51
  else:
52
  protein_input = st.file_uploader('Choose file')
 
54
  protein_input_stringio = StringIO(protein_input.getvalue().decode("utf-8"))
55
  fasta_sequences = SeqIO.parse(protein_input_stringio, 'fasta')
56
  for fasta in fasta_sequences:
57
+ st.session_state['name'], st.session_state['sequence'] = fasta.id, str(fasta.seq)
58
 
59
+ st.session_state['email'] = st.text_input('Enter your email for InterProScan query: ')
60
 
61
  # prevent user from clicking 'Find domains' button if email or sequence is empty
62
  domains_submitted = False
63
  if st.button('Find domains'):
64
+ if email in st.session_state and sequence in st.session_state:
65
  domains_submitted = True
66
  st.session_state.disabled = True
67
  else:
 
69
  else:
70
  with domain_tab:
71
  st.warning('Please enter your query and click "Find domains" to see domains in sequence.')
72
+
73
  with domain_tab:
74
  no_domains = False
75
  error_in_interproscan = False
76
  if domains_submitted:
77
  with st.spinner('Finding domains in sequence using InterProScan. This may take a while...'):
78
+ result = find_domains(st.session_state.email, st.session_state.sequence, st.session_state.name)
79
  result_text = result[0]
80
  if result_text == 'Domains found.':
81
  st.success(result_text + ' You can now see function predictions for the sequence in the "Function predictions" tab.')
 
97
  st.download_button(
98
  label="Download domains in sequence as CSV",
99
  data=domains_csv,
100
+ file_name=f"{st.session_state.name}_domains.csv",
101
  mime="text/csv",
102
  )
103
 
 
130
  st.download_button(
131
  label="Download function predictions as CSV",
132
  data=pred_csv,
133
+ file_name=f"{st.session_state.name}_function_predictions.csv",
134
  mime="text/csv",
135
  )
136