Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
O
openstructure
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container registry
Model registry
Analyze
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
schwede
openstructure
Commits
674fd7dc
Commit
674fd7dc
authored
7 years ago
by
Rafal Gumienny
Browse files
Options
Downloads
Patches
Plain Diff
feat: SCHWED-3121 Save cleaned up structers
parent
8aef965b
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
actions/ost-compare-structures
+45
-10
45 additions, 10 deletions
actions/ost-compare-structures
with
45 additions
and
10 deletions
actions/ost-compare-structures
+
45
−
10
View file @
674fd7dc
...
@@ -69,7 +69,7 @@ import json
...
@@ -69,7 +69,7 @@ import json
import argparse
import argparse
import ost
import ost
from ost.io import (LoadPDB, LoadMMCIF, MMCifInfoBioUnit, MMCifInfo,
from ost.io import (LoadPDB, LoadMMCIF,
SavePDB,
MMCifInfoBioUnit, MMCifInfo,
MMCifInfoTransOp, ReadStereoChemicalPropsFile)
MMCifInfoTransOp, ReadStereoChemicalPropsFile)
from ost import PushVerbosityLevel
from ost import PushVerbosityLevel
from ost.mol.alg import (qsscoring, Molck, MolckSettings, lDDTSettings,
from ost.mol.alg import (qsscoring, Molck, MolckSettings, lDDTSettings,
...
@@ -182,6 +182,22 @@ def _ParseArgs():
...
@@ -182,6 +182,22 @@ def _ParseArgs():
"--output",
"--output",
dest="output",
dest="output",
help=("Output file name. The output will be saved as a JSON file."))
help=("Output file name. The output will be saved as a JSON file."))
parser.add_argument(
"-d",
"--dump-structures",
dest="dump_structures",
default=False,
action="store_true",
help=("Dump cleaned structures used to calculate all the scores as\n"
"PDB files using specified suffix. Files will be dumped to the\n"
"same location as original files."))
parser.add_argument(
"-ds",
"--dump-suffix",
dest="dump_suffix",
default=".compare.structures.pdb",
help=("Use this suffix to dump structures.\n"
"Defaults to .compare.structures.pdb."))
#
#
# QS-score options
# QS-score options
#
#
...
@@ -255,8 +271,8 @@ def _ParseArgs():
...
@@ -255,8 +271,8 @@ def _ParseArgs():
help=("Location of the stereochemical parameter file\n"
help=("Location of the stereochemical parameter file\n"
"(stereo_chemical_props.txt).\n"
"(stereo_chemical_props.txt).\n"
"If not provided, the following locations are searched in this\n"
"If not provided, the following locations are searched in this\n"
"order: 1. Working directory, 2. OpenStructure standard library
\n
"
"order: 1. Working directory, 2. OpenStructure standard library"
"location."))
"
\n
location."))
parser.add_argument(
parser.add_argument(
"-bt",
"-bt",
"--bond-tolerance",
"--bond-tolerance",
...
@@ -333,7 +349,8 @@ def _ParseArgs():
...
@@ -333,7 +349,8 @@ def _ParseArgs():
" * oxt - remove terminal oxygens\n"
" * oxt - remove terminal oxygens\n"
" * nonstd - remove all residues not one of the 20\n"
" * nonstd - remove all residues not one of the 20\n"
" * standard amino acids\n"
" * standard amino acids\n"
" * unk - Remove unknown and atoms not following the nomenclature"))
" * unk - Remove unknown and atoms not following the"
"nomenclature"))
parser.add_argument(
parser.add_argument(
"-ce",
"-ce",
"--clean-element-column",
"--clean-element-column",
...
@@ -617,7 +634,8 @@ def _Main():
...
@@ -617,7 +634,8 @@ def _Main():
qs_scorer.alignments,
qs_scorer.alignments,
qs_scorer.calpha_only,
qs_scorer.calpha_only,
lddt_settings)
lddt_settings)
for scorer_index, lddt_scorer in enumerate(oligo_lddt_scorer.sc_lddt_scorers):
for scorer_index, lddt_scorer in enumerate(
oligo_lddt_scorer.sc_lddt_scorers):
# Get chains and renumber according to alignment (for lDDT)
# Get chains and renumber according to alignment (for lDDT)
try:
try:
model_chain = lddt_scorer.model.chains[0].GetName()
model_chain = lddt_scorer.model.chains[0].GetName()
...
@@ -644,12 +662,13 @@ def _Main():
...
@@ -644,12 +662,13 @@ def _Main():
lddt_scorer.conserved_contacts,
lddt_scorer.conserved_contacts,
"total_contacts": lddt_scorer.total_contacts}
"total_contacts": lddt_scorer.total_contacts}
if opts.save_per_residue_scores:
if opts.save_per_residue_scores:
per_residue_sc = oligo_lddt_scorer.GetPerResidueScores(
per_residue_sc = \
scorer_index)
oligo_lddt_scorer.GetPerResidueScores(
scorer_index)
ost.LogInfo("Per residue local lDDT (reference):")
ost.LogInfo("Per residue local lDDT (reference):")
ost.LogInfo("Chain\tResidue Number\tResidue Name"
ost.LogInfo("Chain\tResidue Number\tResidue Name"
"\tlDDT\tConserved Contacts\tTotal "
"\tlDDT\tConserved Contacts\tTotal "
"Contacts")
"Contacts")
for prs_scores in per_residue_sc:
for prs_scores in per_residue_sc:
ost.LogInfo("%s\t%i\t%s\t%.4f\t%i\t%i" % (
ost.LogInfo("%s\t%i\t%s\t%.4f\t%i\t%i" % (
reference_chain,
reference_chain,
...
@@ -658,7 +677,8 @@ def _Main():
...
@@ -658,7 +677,8 @@ def _Main():
prs_scores["lddt"],
prs_scores["lddt"],
prs_scores["conserved_contacts"],
prs_scores["conserved_contacts"],
prs_scores["total_contacts"]))
prs_scores["total_contacts"]))
sc_lddt_scores["per_residue_scores"] = per_residue_sc
sc_lddt_scores["per_residue_scores"] = \
per_residue_sc
lddt_results["single_chain_lddt"].append(
lddt_results["single_chain_lddt"].append(
sc_lddt_scores)
sc_lddt_scores)
except Exception as ex:
except Exception as ex:
...
@@ -704,6 +724,21 @@ def _Main():
...
@@ -704,6 +724,21 @@ def _Main():
"global_score": 0.0}
"global_score": 0.0}
reference_results["lddt"] = lddt_results
reference_results["lddt"] = lddt_results
model_results[reference_name] = reference_results
model_results[reference_name] = reference_results
if opts.dump_structures:
ref_output_path = os.path.join(
os.path.dirname(opts.reference),
reference_name + opts.dump_suffix)
ost.LogInfo("Saving cleaned up reference to %s" %
ref_output_path)
SavePDB(qs_scorer.qs_ent_1.ent,
ref_output_path)
mdl_output_path = os.path.join(
os.path.dirname(opts.model),
model_name + opts.dump_suffix)
ost.LogInfo("Saving cleaned up reference to %s" %
mdl_output_path)
SavePDB(qs_scorer.qs_ent_2.ent,
mdl_output_path)
result["result"][model_name] = model_results
result["result"][model_name] = model_results
if opts.output is not None:
if opts.output is not None:
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment