Samuel Sledzieski
commited on
Commit
•
a73e54e
1
Parent(s):
a1d4104
Update gradio version and fix error logging
Browse files
README.md
CHANGED
@@ -4,7 +4,7 @@ emoji: 📚
|
|
4 |
colorFrom: green
|
5 |
colorTo: blue
|
6 |
sdk: gradio
|
7 |
-
sdk_version:
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
license: mit
|
|
|
4 |
colorFrom: green
|
5 |
colorTo: blue
|
6 |
sdk: gradio
|
7 |
+
sdk_version: 4.38.1
|
8 |
app_file: app.py
|
9 |
pinned: false
|
10 |
license: mit
|
app.py
CHANGED
@@ -52,6 +52,7 @@ our funders that it is being used. Thank you!
|
|
52 |
# """
|
53 |
|
54 |
article = """
|
|
|
55 |
|
56 |
Note that running here with the "TT3D" model does not run structure prediction on the sequences, but rather uses the [ProstT5](https://github.com/mheinzinger/ProstT5) language model to
|
57 |
translate amino acid to 3di sequences. This is much faster than running structure prediction, but the results may not be as accurate.
|
@@ -95,7 +96,8 @@ def predict(model_name, pairs_file, sequence_file, progress = gr.Progress()):
|
|
95 |
# gr.Info("Loading files...")
|
96 |
try:
|
97 |
seqs = SeqIO.to_dict(SeqIO.parse(sequence_file.name, "fasta"))
|
98 |
-
except ValueError as
|
|
|
99 |
raise gr.Error("Invalid FASTA file - duplicate entry")
|
100 |
|
101 |
if Path(pairs_file.name).suffix == ".csv":
|
@@ -104,7 +106,8 @@ def predict(model_name, pairs_file, sequence_file, progress = gr.Progress()):
|
|
104 |
pairs = pd.read_csv(pairs_file.name, sep="\t")
|
105 |
try:
|
106 |
pairs.columns = ["protein1", "protein2"]
|
107 |
-
except ValueError as
|
|
|
108 |
raise gr.Error("Invalid pairs file - must have two columns 'protein1' and 'protein2'")
|
109 |
|
110 |
do_foldseek = False
|
@@ -134,6 +137,7 @@ def predict(model_name, pairs_file, sequence_file, progress = gr.Progress()):
|
|
134 |
# print(foldseek_embeddings[k])
|
135 |
# print(foldseek_embeddings[k].shape)
|
136 |
|
|
|
137 |
progress(0, desc="Starting...")
|
138 |
results = []
|
139 |
for i in progress.tqdm(range(len(pairs))):
|
@@ -165,7 +169,8 @@ def predict(model_name, pairs_file, sequence_file, progress = gr.Progress()):
|
|
165 |
return results, file_path
|
166 |
|
167 |
except Exception as e:
|
168 |
-
|
|
|
169 |
return None, None
|
170 |
|
171 |
demo = gr.Interface(
|
@@ -177,13 +182,13 @@ demo = gr.Interface(
|
|
177 |
],
|
178 |
outputs = [
|
179 |
gr.DataFrame(label='Results', headers=['Protein 1', 'Protein 2', 'Interaction']),
|
180 |
-
gr.File(label="Download results", type="
|
181 |
],
|
182 |
-
|
183 |
-
|
184 |
article = article,
|
185 |
theme = theme,
|
186 |
)
|
187 |
|
188 |
if __name__ == "__main__":
|
189 |
-
demo.queue(max_size=20).launch()
|
|
|
52 |
# """
|
53 |
|
54 |
article = """
|
55 |
+
Pairs file should be a comma-separated or tab-separated (.csv/.tsv) file with two columns, "protein1" and "protein2", where each row contains the names of two proteins. The sequences should be a FASTA file with the corresponding protein names as the headers.
|
56 |
|
57 |
Note that running here with the "TT3D" model does not run structure prediction on the sequences, but rather uses the [ProstT5](https://github.com/mheinzinger/ProstT5) language model to
|
58 |
translate amino acid to 3di sequences. This is much faster than running structure prediction, but the results may not be as accurate.
|
|
|
96 |
# gr.Info("Loading files...")
|
97 |
try:
|
98 |
seqs = SeqIO.to_dict(SeqIO.parse(sequence_file.name, "fasta"))
|
99 |
+
except ValueError as e:
|
100 |
+
print(e)
|
101 |
raise gr.Error("Invalid FASTA file - duplicate entry")
|
102 |
|
103 |
if Path(pairs_file.name).suffix == ".csv":
|
|
|
106 |
pairs = pd.read_csv(pairs_file.name, sep="\t")
|
107 |
try:
|
108 |
pairs.columns = ["protein1", "protein2"]
|
109 |
+
except ValueError as e:
|
110 |
+
print(e)
|
111 |
raise gr.Error("Invalid pairs file - must have two columns 'protein1' and 'protein2'")
|
112 |
|
113 |
do_foldseek = False
|
|
|
137 |
# print(foldseek_embeddings[k])
|
138 |
# print(foldseek_embeddings[k].shape)
|
139 |
|
140 |
+
print("Starting predictions")
|
141 |
progress(0, desc="Starting...")
|
142 |
results = []
|
143 |
for i in progress.tqdm(range(len(pairs))):
|
|
|
169 |
return results, file_path
|
170 |
|
171 |
except Exception as e:
|
172 |
+
print(e)
|
173 |
+
raise gr.Error(e)
|
174 |
return None, None
|
175 |
|
176 |
demo = gr.Interface(
|
|
|
182 |
],
|
183 |
outputs = [
|
184 |
gr.DataFrame(label='Results', headers=['Protein 1', 'Protein 2', 'Interaction']),
|
185 |
+
gr.File(label="Download results", type="filepath")
|
186 |
],
|
187 |
+
title = title,
|
188 |
+
description = description,
|
189 |
article = article,
|
190 |
theme = theme,
|
191 |
)
|
192 |
|
193 |
if __name__ == "__main__":
|
194 |
+
demo.queue(max_size=20).launch()
|