Commit 5a8e93b4 authored by zhuwenwen's avatar zhuwenwen
Browse files

initial fastfold

parent 6b624a21
...@@ -227,9 +227,11 @@ def inference_multimer_model(args): ...@@ -227,9 +227,11 @@ def inference_multimer_model(args):
) )
output_dir_base = args.output_dir output_dir_base = args.output_dir
random_seed = args.data_random_seed random_seed = args.data_random_seed
if random_seed is None: if random_seed is None:
random_seed = random.randrange(sys.maxsize) random_seed = random.randrange(sys.maxsize)
# seed_torch(seed=1029)
feature_processor = feature_pipeline.FeaturePipeline( feature_processor = feature_pipeline.FeaturePipeline(
config.data config.data
...@@ -312,21 +314,31 @@ def inference_multimer_model(args): ...@@ -312,21 +314,31 @@ def inference_multimer_model(args):
with open(unrelaxed_output_path, 'w') as f: with open(unrelaxed_output_path, 'w') as f:
f.write(protein.to_pdb(unrelaxed_protein)) f.write(protein.to_pdb(unrelaxed_protein))
amber_relaxer = relax.AmberRelaxation( if(args.relaxation):
use_gpu=True, amber_relaxer = relax.AmberRelaxation(
**config.relax, use_gpu=True,
) **config.relax,
)
# Relax the prediction. # Relax the prediction.
t = time.perf_counter() t = time.perf_counter()
relaxed_pdb_str, _, _ = amber_relaxer.process(prot=unrelaxed_protein) relaxed_pdb_str, _, _ = amber_relaxer.process(prot=unrelaxed_protein)
print(f"Relaxation time: {time.perf_counter() - t}") print(f"Relaxation time: {time.perf_counter() - t}")
# Save the relaxed PDB.
relaxed_output_path = os.path.join(args.output_dir,
f'{tag}_{args.model_name}_relaxed.pdb')
with open(relaxed_output_path, 'w') as f:
f.write(relaxed_pdb_str)
if(args.save_outputs):
output_dict_path = os.path.join(
args.output_dir, f'{tag}_{args.model_name}_output_dict.pkl'
)
with open(output_dict_path, "wb") as fp:
pickle.dump(out, fp, protocol=pickle.HIGHEST_PROTOCOL)
# Save the relaxed PDB. logger.info(f"Model output written to {output_dict_path}...")
relaxed_output_path = os.path.join(args.output_dir,
f'{tag}_{args.model_name}_relaxed.pdb')
with open(relaxed_output_path, 'w') as f:
f.write(relaxed_pdb_str)
def inference_monomer_model(args): def inference_monomer_model(args):
...@@ -454,21 +466,22 @@ def inference_monomer_model(args): ...@@ -454,21 +466,22 @@ def inference_monomer_model(args):
with open(unrelaxed_output_path, 'w') as f: with open(unrelaxed_output_path, 'w') as f:
f.write(protein.to_pdb(unrelaxed_protein)) f.write(protein.to_pdb(unrelaxed_protein))
amber_relaxer = relax.AmberRelaxation( if(args.relaxation):
use_gpu=True, amber_relaxer = relax.AmberRelaxation(
**config.relax, use_gpu=True,
) **config.relax,
)
# Relax the prediction.
t = time.perf_counter()
relaxed_pdb_str, _, _ = amber_relaxer.process(prot=unrelaxed_protein)
print(f"Relaxation time: {time.perf_counter() - t}")
# Save the relaxed PDB. # Relax the prediction.
relaxed_output_path = os.path.join(args.output_dir, t = time.perf_counter()
f'{tag}_{args.model_name}_relaxed.pdb') relaxed_pdb_str, _, _ = amber_relaxer.process(prot=unrelaxed_protein)
with open(relaxed_output_path, 'w') as f: print(f"Relaxation time: {time.perf_counter() - t}")
f.write(relaxed_pdb_str)
# Save the relaxed PDB.
relaxed_output_path = os.path.join(args.output_dir,
f'{tag}_{args.model_name}_relaxed.pdb')
with open(relaxed_output_path, 'w') as f:
f.write(relaxed_pdb_str)
if(args.save_outputs): if(args.save_outputs):
output_dict_path = os.path.join( output_dict_path = os.path.join(
...@@ -512,6 +525,9 @@ if __name__ == "__main__": ...@@ -512,6 +525,9 @@ if __name__ == "__main__":
help="""Path to model parameters. If None, parameters are selected help="""Path to model parameters. If None, parameters are selected
automatically according to the model name from automatically according to the model name from
./data/params""") ./data/params""")
parser.add_argument(
"--relaxation", action="store_false", default=False,
)
parser.add_argument( parser.add_argument(
"--save_outputs", action="store_true", default=False, "--save_outputs", action="store_true", default=False,
help="Whether to save all model outputs, including embeddings, etc." help="Whether to save all model outputs, including embeddings, etc."
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment