Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -109,11 +109,20 @@ def respond(
|
|
109 |
|
110 |
def process_chat(message, history):
|
111 |
try:
|
|
|
112 |
if any(keyword in message.lower() for keyword in ['protein', 'generate', '๋จ๋ฐฑ์ง', '์์ฑ']):
|
|
|
113 |
relevant_data = search_protein_data(message)
|
|
|
|
|
114 |
params = extract_parameters(message, relevant_data)
|
|
|
|
|
115 |
protein_result = generate_protein(params)
|
|
|
|
|
116 |
explanation = generate_explanation(protein_result, params)
|
|
|
117 |
return history + [
|
118 |
{"role": "user", "content": message},
|
119 |
{"role": "assistant", "content": explanation}
|
@@ -130,6 +139,7 @@ def process_chat(message, history):
|
|
130 |
]
|
131 |
|
132 |
def search_protein_data(query):
|
|
|
133 |
relevant_entries = []
|
134 |
for entry in ds['train']:
|
135 |
if any(keyword in entry['sequence'].lower() for keyword in query.lower().split()):
|
@@ -137,8 +147,9 @@ def search_protein_data(query):
|
|
137 |
return relevant_entries
|
138 |
|
139 |
def extract_parameters(llm_response, dataset_info):
|
|
|
140 |
params = {
|
141 |
-
'sequence_length': 100,
|
142 |
'helix_bias': 0.02,
|
143 |
'strand_bias': 0.02,
|
144 |
'loop_bias': 0.1,
|
@@ -146,6 +157,29 @@ def extract_parameters(llm_response, dataset_info):
|
|
146 |
}
|
147 |
return params
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
def generate_explanation(result, params):
|
150 |
explanation = f"""
|
151 |
์์ฑ๋ ๋จ๋ฐฑ์ง ๋ถ์:
|
@@ -159,6 +193,7 @@ def generate_explanation(result, params):
|
|
159 |
return explanation
|
160 |
|
161 |
|
|
|
162 |
def protein_diffusion_model(sequence, seq_len, helix_bias, strand_bias, loop_bias,
|
163 |
secondary_structure, aa_bias, aa_bias_potential,
|
164 |
num_steps, noise, hydrophobic_target_score, hydrophobic_potential,
|
|
|
109 |
|
110 |
def process_chat(message, history):
|
111 |
try:
|
112 |
+
# ๋จ๋ฐฑ์ง ์์ฑ ๊ด๋ จ ํค์๋ ํ์ธ
|
113 |
if any(keyword in message.lower() for keyword in ['protein', 'generate', '๋จ๋ฐฑ์ง', '์์ฑ']):
|
114 |
+
# ๋ฐ์ดํฐ์
์์ ๊ด๋ จ ์ ๋ณด ๊ฒ์
|
115 |
relevant_data = search_protein_data(message)
|
116 |
+
|
117 |
+
# ์์ฑ ํ๋ผ๋ฏธํฐ ์ถ์ถ
|
118 |
params = extract_parameters(message, relevant_data)
|
119 |
+
|
120 |
+
# ๋จ๋ฐฑ์ง ์์ฑ
|
121 |
protein_result = generate_protein(params)
|
122 |
+
|
123 |
+
# ๊ฒฐ๊ณผ ์ค๋ช
์์ฑ
|
124 |
explanation = generate_explanation(protein_result, params)
|
125 |
+
|
126 |
return history + [
|
127 |
{"role": "user", "content": message},
|
128 |
{"role": "assistant", "content": explanation}
|
|
|
139 |
]
|
140 |
|
141 |
def search_protein_data(query):
|
142 |
+
# ๋ฐ์ดํฐ์
์์ ๊ด๋ จ ํญ๋ชฉ ๊ฒ์
|
143 |
relevant_entries = []
|
144 |
for entry in ds['train']:
|
145 |
if any(keyword in entry['sequence'].lower() for keyword in query.lower().split()):
|
|
|
147 |
return relevant_entries
|
148 |
|
149 |
def extract_parameters(llm_response, dataset_info):
|
150 |
+
# LLM ์๋ต์์ ํ๋ผ๋ฏธํฐ ์ถ์ถ
|
151 |
params = {
|
152 |
+
'sequence_length': 100, # ๊ธฐ๋ณธ๊ฐ
|
153 |
'helix_bias': 0.02,
|
154 |
'strand_bias': 0.02,
|
155 |
'loop_bias': 0.1,
|
|
|
157 |
}
|
158 |
return params
|
159 |
|
160 |
+
def generate_protein(params):
|
161 |
+
# ๊ธฐ์กด protein_diffusion_model ํจ์ ํธ์ถ
|
162 |
+
result = protein_diffusion_model(
|
163 |
+
sequence=None,
|
164 |
+
seq_len=params['sequence_length'],
|
165 |
+
helix_bias=params['helix_bias'],
|
166 |
+
strand_bias=params['strand_bias'],
|
167 |
+
loop_bias=params['loop_bias'],
|
168 |
+
secondary_structure=None,
|
169 |
+
aa_bias=None,
|
170 |
+
aa_bias_potential=None,
|
171 |
+
num_steps="25",
|
172 |
+
noise="normal",
|
173 |
+
hydrophobic_target_score=str(params['hydrophobic_target_score']),
|
174 |
+
hydrophobic_potential="2",
|
175 |
+
contigs=None,
|
176 |
+
pssm=None,
|
177 |
+
seq_mask=None,
|
178 |
+
str_mask=None,
|
179 |
+
rewrite_pdb=None
|
180 |
+
)
|
181 |
+
return result
|
182 |
+
|
183 |
def generate_explanation(result, params):
|
184 |
explanation = f"""
|
185 |
์์ฑ๋ ๋จ๋ฐฑ์ง ๋ถ์:
|
|
|
193 |
return explanation
|
194 |
|
195 |
|
196 |
+
|
197 |
def protein_diffusion_model(sequence, seq_len, helix_bias, strand_bias, loop_bias,
|
198 |
secondary_structure, aa_bias, aa_bias_potential,
|
199 |
num_steps, noise, hydrophobic_target_score, hydrophobic_potential,
|