From ed291a7298aba159e948cb1da71f5f7b2d875f34 Mon Sep 17 00:00:00 2001 From: B13nch3n <b13nch3n_01@theb-si.de> Date: Thu, 3 Aug 2023 13:28:28 +0200 Subject: [PATCH] Extended report, new test --- validation/test-suite.py | 17 +- validation/test_files/README.md | 5 +- validation/test_files/duplicated_items.cif | 668 +++++++++++++++++++++ validation/validate-mmcif-file.py | 36 +- 4 files changed, 713 insertions(+), 13 deletions(-) create mode 100644 validation/test_files/duplicated_items.cif diff --git a/validation/test-suite.py b/validation/test-suite.py index 4288173..494e4ec 100644 --- a/validation/test-suite.py +++ b/validation/test-suite.py @@ -299,7 +299,6 @@ def _verified_test_file(test_file, tst_fls_dir): def _main(): """Run as script.""" - # ToDo: add test for missing associated data expctd_rslts = { "working.cif": { "ret_val": 0, @@ -320,6 +319,22 @@ def _main(): "status": "completed", "diagnosis": [], }, + # duplicated item in a pair (not _loop) category + "duplicated_items.cif": { + "ret_val": 1, + "errors": [], + "cifcheck-errors": [ + "Warning - Duplicate item name " + + "_ma_qa_metric_global.ordinal_id at line 553 in " + + "ma-ornl-sphdiv-00211" + ], + "status": "aborted", + "diagnosis": [], + }, + # duplicated item in _loop category + # missing category (entity) + # missing item (struct_ref.db_name) + # parent-child relationship issue (remove an atom_type.symbol) } opts = _parse_args() diff --git a/validation/test_files/README.md b/validation/test_files/README.md index 1b4bb5d..8e690eb 100644 --- a/validation/test_files/README.md +++ b/validation/test_files/README.md @@ -6,5 +6,6 @@ Since we did not create (all) test cases from scratch but based them on existing |Name |Origin|License| |-------------|----------------------------------------------------------------| -|working.\[cif|zip\]||| -|missing_associated_file.\[cif|zip\]|[ma-ornl-sphdiv-00211](https://www.modelarchive.org/doi/10.5452/ma-ornl-sphdiv-00211)|[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)| +|working.\[cif\|zip\]||| +|missing_associated_file.\[cif\|zip\]|[ma-ornl-sphdiv-00211](https://www.modelarchive.org/doi/10.5452/ma-ornl-sphdiv-00211)|[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)| +|duplicated_items.cif|[ma-ornl-sphdiv-00211](https://www.modelarchive.org/doi/10.5452/ma-ornl-sphdiv-00211)|[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)| diff --git a/validation/test_files/duplicated_items.cif b/validation/test_files/duplicated_items.cif new file mode 100644 index 0000000..d271c51 --- /dev/null +++ b/validation/test_files/duplicated_items.cif @@ -0,0 +1,668 @@ +data_ma-ornl-sphdiv-00211 +_entry.id ma-ornl-sphdiv-00211 +_entry.ma_collection_id ma-ornl-sphdiv + +_struct.entry_id ma-ornl-sphdiv-00211 +_struct.pdbx_model_details +'AlphaFold v2.0 was used to predict 5 structural models which were ranked with the pTM metric. The top ranked model was energy minimized with OpenMM version 7.6. The Amber ff99SB force field was used for parameters. MSAs and structural templates were calculated using Kalign, HMMER, and HHSuite using the MGnify, UniRef90, UniClust30, pdb70, RCSB PDB, and reduced BFD sequence libraries.' +_struct.pdbx_structure_determination_methodology computational +_struct.title 'AlphaFold2 model of Sphmag01G191900.1' + +_audit_conform.dict_location https://raw.githubusercontent.com/ihmwg/ModelCIF/ba728c4/archive/mmcif_ma-v1.4.5.dic +_audit_conform.dict_name mmcif_ma.dic +_audit_conform.dict_version 1.4.5 + +loop_ +_citation.id +_citation.title +_citation.journal_abbrev +_citation.journal_volume +_citation.page_first +_citation.page_last +_citation.year +_citation.pdbx_database_id_PubMed +_citation.pdbx_database_id_DOI +primary 'Proteome-scale Deployment of Protein Structure Prediction Workflows on the Summit Supercomputer' 'In 2022 IEEE International Parallel and Distributed Processing Symposium Workshops (IPDPSW)' . 206 215 2022 . 10.1109/IPDPSW55747.2022.00045 +2 'Highly accurate protein structure prediction with AlphaFold' Nature 596 583 589 2021 34265844 10.1038/s41586-021-03819-2 + +loop_ +_citation_author.citation_id +_citation_author.name +_citation_author.ordinal +primary 'Gao M' 1 +primary 'Coletti M' 2 +primary 'Davidson RB' 3 +primary 'Prout R' 4 +primary 'Abraham S' 5 +primary 'Hernandez B' 6 +primary 'Sedova A' 7 +2 'Jumper J' 8 +2 'Evans R' 9 +2 'Pritzel A' 10 +2 'Green T' 11 +2 'Figurnov M' 12 +2 'Ronneberger O' 13 +2 'Tunyasuvunakool K' 14 +2 'Bates R' 15 +2 'Zidek A' 16 +2 'Potapenko A' 17 +2 'Bridgland A' 18 +2 'Meyer C' 19 +2 'Kohl SAA' 20 +2 'Ballard AJ' 21 +2 'Cowie A' 22 +2 'Romera-Paredes B' 23 +2 'Nikolov S' 24 +2 'Jain R' 25 +2 'Adler J' 26 +2 'Back T' 27 +2 'Petersen S' 28 +2 'Reiman D' 29 +2 'Clancy E' 30 +2 'Zielinski M' 31 +2 'Steinegger M' 32 +2 'Pacholska M' 33 +2 'Berghammer T' 34 +2 'Bodenstein S' 35 +2 'Silver D' 36 +2 'Vinyals O' 37 +2 'Senior AW' 38 +2 'Kavukcuoglu K' 39 +2 'Kohli P' 40 +2 'Hassabis D' 41 + +loop_ +_software.pdbx_ordinal +_software.name +_software.classification +_software.description +_software.version +_software.type +_software.location +_software.citation_id +1 AlphaFold 'model building' . 2.0.1 program https://github.com/deepmind/alphafold 2 + +loop_ +_ma_software_group.ordinal_id +_ma_software_group.group_id +_ma_software_group.software_id +_ma_software_group.parameter_group_id +1 1 1 . + +loop_ +_audit_author.name +_audit_author.pdbx_ordinal +'Gao M' 1 +'Coletti M' 2 +'Davidson RB' 3 +'Prout R' 4 +'Abraham S' 5 +'Hernandez B' 6 +'Sedova A' 7 + +loop_ +_chem_comp.id +_chem_comp.type +_chem_comp.name +_chem_comp.formula +_chem_comp.formula_weight +_chem_comp.ma_provenance +ALA 'L-peptide linking' ALANINE 'C3 H7 N O2' 89.094 'CCD Core' +ARG 'L-peptide linking' ARGININE 'C6 H15 N4 O2 1' 175.212 'CCD Core' +ASN 'L-peptide linking' ASPARAGINE 'C4 H8 N2 O3' 132.119 'CCD Core' +ASP 'L-peptide linking' 'ASPARTIC ACID' 'C4 H7 N O4' 133.103 'CCD Core' +CYS 'L-peptide linking' CYSTEINE 'C3 H7 N O2 S' 121.154 'CCD Core' +GLN 'L-peptide linking' GLUTAMINE 'C5 H10 N2 O3' 146.146 'CCD Core' +GLY 'peptide linking' GLYCINE 'C2 H5 N O2' 75.067 'CCD Core' +LEU 'L-peptide linking' LEUCINE 'C6 H13 N O2' 131.175 'CCD Core' +MET 'L-peptide linking' METHIONINE 'C5 H11 N O2 S' 149.208 'CCD Core' +PRO 'L-peptide linking' PROLINE 'C5 H9 N O2' 115.132 'CCD Core' +SER 'L-peptide linking' SERINE 'C3 H7 N O3' 105.093 'CCD Core' +THR 'L-peptide linking' THREONINE 'C4 H9 N O3' 119.120 'CCD Core' +TRP 'L-peptide linking' TRYPTOPHAN 'C11 H12 N2 O2' 204.229 'CCD Core' +TYR 'L-peptide linking' TYROSINE 'C9 H11 N O3' 181.191 'CCD Core' +VAL 'L-peptide linking' VALINE 'C5 H11 N O2' 117.148 'CCD Core' + +loop_ +_entity.id +_entity.type +_entity.src_method +_entity.pdbx_description +_entity.formula_weight +_entity.pdbx_number_of_molecules +_entity.details +1 polymer man Sphmag01G191900.1 3656.028 1 . + +loop_ +_ma_target_ref_db_details.target_entity_id +_ma_target_ref_db_details.db_name +_ma_target_ref_db_details.db_name_other_details +_ma_target_ref_db_details.db_code +_ma_target_ref_db_details.db_accession +_ma_target_ref_db_details.seq_db_isoform +_ma_target_ref_db_details.seq_db_align_begin +_ma_target_ref_db_details.seq_db_align_end +_ma_target_ref_db_details.ncbi_taxonomy_id +_ma_target_ref_db_details.organism_scientific +_ma_target_ref_db_details.seq_db_sequence_version_date +_ma_target_ref_db_details.seq_db_sequence_checksum +1 Other Phytozyme . 41934308 ? 1 29 2779801 'Sphagnum divinum' . . + +loop_ +_entity_poly.entity_id +_entity_poly.type +_entity_poly.nstd_linkage +_entity_poly.nstd_monomer +_entity_poly.pdbx_strand_id +_entity_poly.pdbx_seq_one_letter_code +_entity_poly.pdbx_seq_one_letter_code_can +1 polypeptide(L) no no A MTPAVQLSWLVCNQRNCPLQYLGDGGSQA MTPAVQLSWLVCNQRNCPLQYLGDGGSQA + +loop_ +_entity_poly_seq.entity_id +_entity_poly_seq.num +_entity_poly_seq.mon_id +_entity_poly_seq.hetero +1 1 MET . +1 2 THR . +1 3 PRO . +1 4 ALA . +1 5 VAL . +1 6 GLN . +1 7 LEU . +1 8 SER . +1 9 TRP . +1 10 LEU . +1 11 VAL . +1 12 CYS . +1 13 ASN . +1 14 GLN . +1 15 ARG . +1 16 ASN . +1 17 CYS . +1 18 PRO . +1 19 LEU . +1 20 GLN . +1 21 TYR . +1 22 LEU . +1 23 GLY . +1 24 ASP . +1 25 GLY . +1 26 GLY . +1 27 SER . +1 28 GLN . +1 29 ALA . + +loop_ +_struct_asym.id +_struct_asym.entity_id +_struct_asym.details +A 1 ? + +loop_ +_pdbx_poly_seq_scheme.asym_id +_pdbx_poly_seq_scheme.entity_id +_pdbx_poly_seq_scheme.seq_id +_pdbx_poly_seq_scheme.mon_id +_pdbx_poly_seq_scheme.pdb_seq_num +_pdbx_poly_seq_scheme.auth_seq_num +_pdbx_poly_seq_scheme.pdb_mon_id +_pdbx_poly_seq_scheme.auth_mon_id +_pdbx_poly_seq_scheme.pdb_strand_id +_pdbx_poly_seq_scheme.pdb_ins_code +A 1 1 MET 1 1 MET MET A . +A 1 2 THR 2 2 THR THR A . +A 1 3 PRO 3 3 PRO PRO A . +A 1 4 ALA 4 4 ALA ALA A . +A 1 5 VAL 5 5 VAL VAL A . +A 1 6 GLN 6 6 GLN GLN A . +A 1 7 LEU 7 7 LEU LEU A . +A 1 8 SER 8 8 SER SER A . +A 1 9 TRP 9 9 TRP TRP A . +A 1 10 LEU 10 10 LEU LEU A . +A 1 11 VAL 11 11 VAL VAL A . +A 1 12 CYS 12 12 CYS CYS A . +A 1 13 ASN 13 13 ASN ASN A . +A 1 14 GLN 14 14 GLN GLN A . +A 1 15 ARG 15 15 ARG ARG A . +A 1 16 ASN 16 16 ASN ASN A . +A 1 17 CYS 17 17 CYS CYS A . +A 1 18 PRO 18 18 PRO PRO A . +A 1 19 LEU 19 19 LEU LEU A . +A 1 20 GLN 20 20 GLN GLN A . +A 1 21 TYR 21 21 TYR TYR A . +A 1 22 LEU 22 22 LEU LEU A . +A 1 23 GLY 23 23 GLY GLY A . +A 1 24 ASP 24 24 ASP ASP A . +A 1 25 GLY 25 25 GLY GLY A . +A 1 26 GLY 26 26 GLY GLY A . +A 1 27 SER 27 27 SER SER A . +A 1 28 GLN 28 28 GLN GLN A . +A 1 29 ALA 29 29 ALA ALA A . + +loop_ +_ma_data.id +_ma_data.name +_ma_data.content_type +_ma_data.content_type_other_details +1 Sphmag01G191900.1 target . +2 'Top scoring model' 'model coordinates' . + +loop_ +_ma_data_group.ordinal_id +_ma_data_group.group_id +_ma_data_group.data_id +1 1 1 +2 2 2 + +loop_ +_ma_target_entity.entity_id +_ma_target_entity.data_id +_ma_target_entity.origin +1 1 'reference database' + +loop_ +_ma_target_entity_instance.asym_id +_ma_target_entity_instance.entity_id +_ma_target_entity_instance.details +A 1 ? + +loop_ +_ma_protocol_step.ordinal_id +_ma_protocol_step.protocol_id +_ma_protocol_step.step_id +_ma_protocol_step.method_type +_ma_protocol_step.step_name +_ma_protocol_step.details +_ma_protocol_step.software_group_id +1 1 1 modeling AlphaFold . 1 +2 1 2 'model selection' AlphaFold . 1 + +loop_ +_ma_model_list.ordinal_id +_ma_model_list.model_id +_ma_model_list.model_group_id +_ma_model_list.model_name +_ma_model_list.model_group_name +_ma_model_list.data_id +_ma_model_list.model_type +_ma_model_list.model_type_other_details +1 1 1 'Top scoring model' . 2 'Ab initio model' . + +loop_ +_atom_site.group_PDB +_atom_site.id +_atom_site.type_symbol +_atom_site.label_atom_id +_atom_site.label_alt_id +_atom_site.label_comp_id +_atom_site.label_seq_id +_atom_site.auth_seq_id +_atom_site.pdbx_PDB_ins_code +_atom_site.label_asym_id +_atom_site.Cartn_x +_atom_site.Cartn_y +_atom_site.Cartn_z +_atom_site.occupancy +_atom_site.label_entity_id +_atom_site.auth_asym_id +_atom_site.B_iso_or_equiv +_atom_site.pdbx_PDB_model_num +ATOM 1 N N . MET 1 1 ? A 8.720 -6.959 -4.796 1.000 1 A 64.070 1 +ATOM 2 C CA . MET 1 1 ? A 8.033 -6.819 -3.498 1.000 1 A 64.070 1 +ATOM 3 C C . MET 1 1 ? A 9.075 -6.843 -2.395 1.000 1 A 64.070 1 +ATOM 4 C CB . MET 1 1 ? A 6.995 -7.940 -3.334 1.000 1 A 64.070 1 +ATOM 5 O O . MET 1 1 ? A 9.702 -7.875 -2.189 1.000 1 A 64.070 1 +ATOM 6 C CG . MET 1 1 ? A 6.047 -7.688 -2.158 1.000 1 A 64.070 1 +ATOM 7 S SD . MET 1 1 ? A 4.309 -7.892 -2.619 1.000 1 A 64.070 1 +ATOM 8 C CE . MET 1 1 ? A 3.900 -9.469 -1.829 1.000 1 A 64.070 1 +ATOM 9 N N . THR 2 2 ? A 9.362 -5.705 -1.765 1.000 1 A 70.870 1 +ATOM 10 C CA . THR 2 2 ? A 10.300 -5.698 -0.635 1.000 1 A 70.870 1 +ATOM 11 C C . THR 2 2 ? A 9.613 -6.328 0.583 1.000 1 A 70.870 1 +ATOM 12 C CB . THR 2 2 ? A 10.830 -4.291 -0.319 1.000 1 A 70.870 1 +ATOM 13 O O . THR 2 2 ? A 8.405 -6.154 0.760 1.000 1 A 70.870 1 +ATOM 14 C CG2 . THR 2 2 ? A 11.630 -3.703 -1.480 1.000 1 A 70.870 1 +ATOM 15 O OG1 . THR 2 2 ? A 9.757 -3.426 -0.070 1.000 1 A 70.870 1 +ATOM 16 N N . PRO 3 3 ? A 10.341 -7.062 1.441 1.000 1 A 67.180 1 +ATOM 17 C CA . PRO 3 3 ? A 9.755 -7.723 2.611 1.000 1 A 67.180 1 +ATOM 18 C C . PRO 3 3 ? A 9.054 -6.736 3.557 1.000 1 A 67.180 1 +ATOM 19 C CB . PRO 3 3 ? A 10.925 -8.447 3.288 1.000 1 A 67.180 1 +ATOM 20 O O . PRO 3 3 ? A 8.054 -7.088 4.180 1.000 1 A 67.180 1 +ATOM 21 C CG . PRO 3 3 ? A 12.170 -7.718 2.779 1.000 1 A 67.180 1 +ATOM 22 C CD . PRO 3 3 ? A 11.771 -7.302 1.370 1.000 1 A 67.180 1 +ATOM 23 N N . ALA 4 4 ? A 9.519 -5.482 3.604 1.000 1 A 73.470 1 +ATOM 24 C CA . ALA 4 4 ? A 8.864 -4.405 4.340 1.000 1 A 73.470 1 +ATOM 25 C C . ALA 4 4 ? A 7.423 -4.159 3.858 1.000 1 A 73.470 1 +ATOM 26 C CB . ALA 4 4 ? A 9.726 -3.144 4.213 1.000 1 A 73.470 1 +ATOM 27 O O . ALA 4 4 ? A 6.520 -4.078 4.683 1.000 1 A 73.470 1 +ATOM 28 N N . VAL 5 5 ? A 7.184 -4.129 2.541 1.000 1 A 74.350 1 +ATOM 29 C CA . VAL 5 5 ? A 5.840 -3.935 1.965 1.000 1 A 74.350 1 +ATOM 30 C C . VAL 5 5 ? A 4.920 -5.100 2.323 1.000 1 A 74.350 1 +ATOM 31 C CB . VAL 5 5 ? A 5.927 -3.740 0.436 1.000 1 A 74.350 1 +ATOM 32 O O . VAL 5 5 ? A 3.782 -4.873 2.718 1.000 1 A 74.350 1 +ATOM 33 C CG1 . VAL 5 5 ? A 4.569 -3.696 -0.273 1.000 1 A 74.350 1 +ATOM 34 C CG2 . VAL 5 5 ? A 6.633 -2.418 0.110 1.000 1 A 74.350 1 +ATOM 35 N N . GLN 6 6 ? A 5.412 -6.342 2.261 1.000 1 A 78.580 1 +ATOM 36 C CA . GLN 6 6 ? A 4.604 -7.518 2.601 1.000 1 A 78.580 1 +ATOM 37 C C . GLN 6 6 ? A 4.190 -7.529 4.079 1.000 1 A 78.580 1 +ATOM 38 C CB . GLN 6 6 ? A 5.376 -8.790 2.227 1.000 1 A 78.580 1 +ATOM 39 O O . GLN 6 6 ? A 3.045 -7.843 4.404 1.000 1 A 78.580 1 +ATOM 40 C CG . GLN 6 6 ? A 4.511 -10.046 2.408 1.000 1 A 78.580 1 +ATOM 41 C CD . GLN 6 6 ? A 5.159 -11.258 1.754 1.000 1 A 78.580 1 +ATOM 42 N NE2 . GLN 6 6 ? A 5.710 -12.181 2.511 1.000 1 A 78.580 1 +ATOM 43 O OE1 . GLN 6 6 ? A 5.210 -11.380 0.544 1.000 1 A 78.580 1 +ATOM 44 N N . LEU 7 7 ? A 5.103 -7.154 4.977 1.000 1 A 78.020 1 +ATOM 45 C CA . LEU 7 7 ? A 4.796 -7.032 6.401 1.000 1 A 78.020 1 +ATOM 46 C C . LEU 7 7 ? A 3.812 -5.890 6.664 1.000 1 A 78.020 1 +ATOM 47 C CB . LEU 7 7 ? A 6.099 -6.838 7.190 1.000 1 A 78.020 1 +ATOM 48 O O . LEU 7 7 ? A 2.828 -6.086 7.376 1.000 1 A 78.020 1 +ATOM 49 C CG . LEU 7 7 ? A 6.981 -8.097 7.254 1.000 1 A 78.020 1 +ATOM 50 C CD1 . LEU 7 7 ? A 8.332 -7.733 7.867 1.000 1 A 78.020 1 +ATOM 51 C CD2 . LEU 7 7 ? A 6.348 -9.202 8.105 1.000 1 A 78.020 1 +ATOM 52 N N . SER 8 8 ? A 4.031 -4.721 6.055 1.000 1 A 80.320 1 +ATOM 53 C CA . SER 8 8 ? A 3.104 -3.594 6.156 1.000 1 A 80.320 1 +ATOM 54 C C . SER 8 8 ? A 1.712 -3.957 5.639 1.000 1 A 80.320 1 +ATOM 55 C CB . SER 8 8 ? A 3.651 -2.384 5.395 1.000 1 A 80.320 1 +ATOM 56 O O . SER 8 8 ? A 0.730 -3.623 6.298 1.000 1 A 80.320 1 +ATOM 57 O OG . SER 8 8 ? A 4.837 -1.913 6.005 1.000 1 A 80.320 1 +ATOM 58 N N . TRP 9 9 ? A 1.610 -4.695 4.526 1.000 1 A 78.760 1 +ATOM 59 C CA . TRP 9 9 ? A 0.341 -5.203 3.998 1.000 1 A 78.760 1 +ATOM 60 C C . TRP 9 9 ? A -0.354 -6.137 4.976 1.000 1 A 78.760 1 +ATOM 61 C CB . TRP 9 9 ? A 0.545 -5.886 2.634 1.000 1 A 78.760 1 +ATOM 62 O O . TRP 9 9 ? A -1.520 -5.912 5.284 1.000 1 A 78.760 1 +ATOM 63 C CG . TRP 9 9 ? A -0.717 -6.375 1.972 1.000 1 A 78.760 1 +ATOM 64 C CD1 . TRP 9 9 ? A -1.450 -5.743 1.024 1.000 1 A 78.760 1 +ATOM 65 C CD2 . TRP 9 9 ? A -1.371 -7.671 2.127 1.000 1 A 78.760 1 +ATOM 66 C CE2 . TRP 9 9 ? A -2.549 -7.692 1.319 1.000 1 A 78.760 1 +ATOM 67 C CE3 . TRP 9 9 ? A -1.057 -8.855 2.826 1.000 1 A 78.760 1 +ATOM 68 N NE1 . TRP 9 9 ? A -2.567 -6.472 0.700 1.000 1 A 78.760 1 +ATOM 69 C CH2 . TRP 9 9 ? A -3.044 -9.968 1.932 1.000 1 A 78.760 1 +ATOM 70 C CZ2 . TRP 9 9 ? A -3.385 -8.808 1.221 1.000 1 A 78.760 1 +ATOM 71 C CZ3 . TRP 9 9 ? A -1.883 -9.990 2.728 1.000 1 A 78.760 1 +ATOM 72 N N . LEU 10 10 ? A 0.350 -7.131 5.525 1.000 1 A 83.870 1 +ATOM 73 C CA . LEU 10 10 ? A -0.245 -8.082 6.465 1.000 1 A 83.870 1 +ATOM 74 C C . LEU 10 10 ? A -0.793 -7.375 7.713 1.000 1 A 83.870 1 +ATOM 75 C CB . LEU 10 10 ? A 0.818 -9.125 6.845 1.000 1 A 83.870 1 +ATOM 76 O O . LEU 10 10 ? A -1.912 -7.644 8.145 1.000 1 A 83.870 1 +ATOM 77 C CG . LEU 10 10 ? A 0.267 -10.258 7.731 1.000 1 A 83.870 1 +ATOM 78 C CD1 . LEU 10 10 ? A -0.617 -11.217 6.932 1.000 1 A 83.870 1 +ATOM 79 C CD2 . LEU 10 10 ? A 1.423 -11.050 8.338 1.000 1 A 83.870 1 +ATOM 80 N N . VAL 11 11 ? A -0.017 -6.452 8.284 1.000 1 A 82.900 1 +ATOM 81 C CA . VAL 11 11 ? A -0.438 -5.677 9.459 1.000 1 A 82.900 1 +ATOM 82 C C . VAL 11 11 ? A -1.640 -4.794 9.127 1.000 1 A 82.900 1 +ATOM 83 C CB . VAL 11 11 ? A 0.733 -4.836 10.001 1.000 1 A 82.900 1 +ATOM 84 O O . VAL 11 11 ? A -2.591 -4.736 9.903 1.000 1 A 82.900 1 +ATOM 85 C CG1 . VAL 11 11 ? A 0.299 -3.900 11.138 1.000 1 A 82.900 1 +ATOM 86 C CG2 . VAL 11 11 ? A 1.838 -5.743 10.558 1.000 1 A 82.900 1 +ATOM 87 N N . CYS 12 12 ? A -1.614 -4.129 7.974 1.000 1 A 83.890 1 +ATOM 88 C CA . CYS 12 12 ? A -2.691 -3.268 7.501 1.000 1 A 83.890 1 +ATOM 89 C C . CYS 12 12 ? A -3.989 -4.058 7.264 1.000 1 A 83.890 1 +ATOM 90 C CB . CYS 12 12 ? A -2.160 -2.585 6.238 1.000 1 A 83.890 1 +ATOM 91 O O . CYS 12 12 ? A -5.051 -3.656 7.735 1.000 1 A 83.890 1 +ATOM 92 S SG . CYS 12 12 ? A -3.307 -1.337 5.636 1.000 1 A 83.890 1 +ATOM 93 N N . ASN 13 13 ? A -3.883 -5.230 6.634 1.000 1 A 81.450 1 +ATOM 94 C CA . ASN 13 13 ? A -4.993 -6.140 6.372 1.000 1 A 81.450 1 +ATOM 95 C C . ASN 13 13 ? A -5.647 -6.616 7.681 1.000 1 A 81.450 1 +ATOM 96 C CB . ASN 13 13 ? A -4.445 -7.290 5.506 1.000 1 A 81.450 1 +ATOM 97 O O . ASN 13 13 ? A -6.857 -6.503 7.847 1.000 1 A 81.450 1 +ATOM 98 C CG . ASN 13 13 ? A -5.541 -8.121 4.871 1.000 1 A 81.450 1 +ATOM 99 N ND2 . ASN 13 13 ? A -5.526 -8.273 3.568 1.000 1 A 81.450 1 +ATOM 100 O OD1 . ASN 13 13 ? A -6.413 -8.657 5.524 1.000 1 A 81.450 1 +ATOM 101 N N . GLN 14 14 ? A -4.844 -7.020 8.673 1.000 1 A 85.020 1 +ATOM 102 C CA . GLN 14 14 ? A -5.372 -7.442 9.976 1.000 1 A 85.020 1 +ATOM 103 C C . GLN 14 14 ? A -5.974 -6.303 10.808 1.000 1 A 85.020 1 +ATOM 104 C CB . GLN 14 14 ? A -4.275 -8.140 10.786 1.000 1 A 85.020 1 +ATOM 105 O O . GLN 14 14 ? A -6.850 -6.543 11.635 1.000 1 A 85.020 1 +ATOM 106 C CG . GLN 14 14 ? A -3.938 -9.518 10.205 1.000 1 A 85.020 1 +ATOM 107 C CD . GLN 14 14 ? A -3.319 -10.410 11.267 1.000 1 A 85.020 1 +ATOM 108 N NE2 . GLN 14 14 ? A -2.038 -10.290 11.536 1.000 1 A 85.020 1 +ATOM 109 O OE1 . GLN 14 14 ? A -3.979 -11.213 11.899 1.000 1 A 85.020 1 +ATOM 110 N N . ARG 15 15 ? A -5.508 -5.064 10.622 1.000 1 A 86.410 1 +ATOM 111 C CA . ARG 15 15 ? A -6.014 -3.885 11.347 1.000 1 A 86.410 1 +ATOM 112 C C . ARG 15 15 ? A -7.089 -3.116 10.578 1.000 1 A 86.410 1 +ATOM 113 C CB . ARG 15 15 ? A -4.839 -3.002 11.782 1.000 1 A 86.410 1 +ATOM 114 O O . ARG 15 15 ? A -7.505 -2.056 11.039 1.000 1 A 86.410 1 +ATOM 115 C CG . ARG 15 15 ? A -3.947 -3.711 12.808 1.000 1 A 86.410 1 +ATOM 116 C CD . ARG 15 15 ? A -2.898 -2.756 13.384 1.000 1 A 86.410 1 +ATOM 117 N NE . ARG 15 15 ? A -3.507 -1.827 14.360 1.000 1 A 86.410 1 +ATOM 118 N NH1 . ARG 15 15 ? A -1.920 -1.976 16.020 1.000 1 A 86.410 1 +ATOM 119 N NH2 . ARG 15 15 ? A -3.758 -0.759 16.354 1.000 1 A 86.410 1 +ATOM 120 C CZ . ARG 15 15 ? A -3.059 -1.527 15.567 1.000 1 A 86.410 1 +ATOM 121 N N . ASN 16 16 ? A -7.540 -3.653 9.443 1.000 1 A 76.920 1 +ATOM 122 C CA . ASN 16 16 ? A -8.510 -3.034 8.544 1.000 1 A 76.920 1 +ATOM 123 C C . ASN 16 16 ? A -8.145 -1.579 8.197 1.000 1 A 76.920 1 +ATOM 124 C CB . ASN 16 16 ? A -9.924 -3.230 9.114 1.000 1 A 76.920 1 +ATOM 125 O O . ASN 16 16 ? A -9.003 -0.691 8.186 1.000 1 A 76.920 1 +ATOM 126 C CG . ASN 16 16 ? A -10.987 -3.117 8.040 1.000 1 A 76.920 1 +ATOM 127 N ND2 . ASN 16 16 ? A -11.504 -1.941 7.786 1.000 1 A 76.920 1 +ATOM 128 O OD1 . ASN 16 16 ? A -11.345 -4.083 7.396 1.000 1 A 76.920 1 +ATOM 129 N N . CYS 17 17 ? A -6.860 -1.314 7.953 1.000 1 A 75.870 1 +ATOM 130 C CA . CYS 17 17 ? A -6.448 -0.001 7.479 1.000 1 A 75.870 1 +ATOM 131 C C . CYS 17 17 ? A -6.602 0.055 5.946 1.000 1 A 75.870 1 +ATOM 132 C CB . CYS 17 17 ? A -5.058 0.433 7.984 1.000 1 A 75.870 1 +ATOM 133 O O . CYS 17 17 ? A -6.438 -0.959 5.262 1.000 1 A 75.870 1 +ATOM 134 S SG . CYS 17 17 ? A -4.500 -0.399 9.500 1.000 1 A 75.870 1 +ATOM 135 N N . PRO 18 18 ? A -6.923 1.226 5.376 1.000 1 A 64.200 1 +ATOM 136 C CA . PRO 18 18 ? A -6.996 1.382 3.930 1.000 1 A 64.200 1 +ATOM 137 C C . PRO 18 18 ? A -5.600 1.172 3.324 1.000 1 A 64.200 1 +ATOM 138 C CB . PRO 18 18 ? A -7.571 2.786 3.707 1.000 1 A 64.200 1 +ATOM 139 O O . PRO 18 18 ? A -4.669 1.929 3.596 1.000 1 A 64.200 1 +ATOM 140 C CG . PRO 18 18 ? A -7.186 3.550 4.974 1.000 1 A 64.200 1 +ATOM 141 C CD . PRO 18 18 ? A -7.211 2.477 6.058 1.000 1 A 64.200 1 +ATOM 142 N N . LEU 19 19 ? A -5.452 0.140 2.486 1.000 1 A 62.710 1 +ATOM 143 C CA . LEU 19 19 ? A -4.196 -0.266 1.827 1.000 1 A 62.710 1 +ATOM 144 C C . LEU 19 19 ? A -3.668 0.752 0.793 1.000 1 A 62.710 1 +ATOM 145 C CB . LEU 19 19 ? A -4.392 -1.662 1.194 1.000 1 A 62.710 1 +ATOM 146 O O . LEU 19 19 ? A -2.685 0.483 0.112 1.000 1 A 62.710 1 +ATOM 147 C CG . LEU 19 19 ? A -4.518 -2.811 2.212 1.000 1 A 62.710 1 +ATOM 148 C CD1 . LEU 19 19 ? A -5.092 -4.056 1.537 1.000 1 A 62.710 1 +ATOM 149 C CD2 . LEU 19 19 ? A -3.174 -3.222 2.803 1.000 1 A 62.710 1 +ATOM 150 N N . GLN 20 20 ? A -4.264 1.943 0.719 1.000 1 A 61.520 1 +ATOM 151 C CA . GLN 20 20 ? A -3.976 3.008 -0.247 1.000 1 A 61.520 1 +ATOM 152 C C . GLN 20 20 ? A -2.542 3.568 -0.161 1.000 1 A 61.520 1 +ATOM 153 C CB . GLN 20 20 ? A -5.026 4.108 -0.019 1.000 1 A 61.520 1 +ATOM 154 O O . GLN 20 20 ? A -2.114 4.327 -1.024 1.000 1 A 61.520 1 +ATOM 155 C CG . GLN 20 20 ? A -5.280 4.952 -1.274 1.000 1 A 61.520 1 +ATOM 156 C CD . GLN 20 20 ? A -6.376 5.992 -1.078 1.000 1 A 61.520 1 +ATOM 157 N NE2 . GLN 20 20 ? A -6.493 6.937 -1.983 1.000 1 A 61.520 1 +ATOM 158 O OE1 . GLN 20 20 ? A -7.144 5.983 -0.128 1.000 1 A 61.520 1 +ATOM 159 N N . TYR 21 21 ? A -1.773 3.196 0.863 1.000 1 A 57.780 1 +ATOM 160 C CA . TYR 21 21 ? A -0.378 3.616 1.030 1.000 1 A 57.780 1 +ATOM 161 C C . TYR 21 21 ? A 0.645 2.519 0.768 1.000 1 A 57.780 1 +ATOM 162 C CB . TYR 21 21 ? A -0.189 4.235 2.409 1.000 1 A 57.780 1 +ATOM 163 O O . TYR 21 21 ? A 1.847 2.783 0.821 1.000 1 A 57.780 1 +ATOM 164 C CG . TYR 21 21 ? A -0.875 5.572 2.511 1.000 1 A 57.780 1 +ATOM 165 C CD1 . TYR 21 21 ? A -0.236 6.718 2.001 1.000 1 A 57.780 1 +ATOM 166 C CD2 . TYR 21 21 ? A -2.163 5.662 3.069 1.000 1 A 57.780 1 +ATOM 167 C CE1 . TYR 21 21 ? A -0.874 7.969 2.074 1.000 1 A 57.780 1 +ATOM 168 C CE2 . TYR 21 21 ? A -2.803 6.911 3.145 1.000 1 A 57.780 1 +ATOM 169 O OH . TYR 21 21 ? A -2.773 9.270 2.750 1.000 1 A 57.780 1 +ATOM 170 C CZ . TYR 21 21 ? A -2.157 8.065 2.655 1.000 1 A 57.780 1 +ATOM 171 N N . LEU 22 22 ? A 0.208 1.304 0.438 1.000 1 A 57.290 1 +ATOM 172 C CA . LEU 22 22 ? A 1.111 0.375 -0.220 1.000 1 A 57.290 1 +ATOM 173 C C . LEU 22 22 ? A 1.221 0.865 -1.654 1.000 1 A 57.290 1 +ATOM 174 C CB . LEU 22 22 ? A 0.608 -1.053 -0.090 1.000 1 A 57.290 1 +ATOM 175 O O . LEU 22 22 ? A 0.433 0.515 -2.528 1.000 1 A 57.290 1 +ATOM 176 C CG . LEU 22 22 ? A 0.572 -1.483 1.381 1.000 1 A 57.290 1 +ATOM 177 C CD1 . LEU 22 22 ? A -0.261 -2.724 1.412 1.000 1 A 57.290 1 +ATOM 178 C CD2 . LEU 22 22 ? A 1.928 -1.846 1.994 1.000 1 A 57.290 1 +ATOM 179 N N . GLY 23 23 ? A 2.157 1.786 -1.852 1.000 1 A 54.480 1 +ATOM 180 C CA . GLY 23 23 ? A 2.677 2.122 -3.159 1.000 1 A 54.480 1 +ATOM 181 C C . GLY 23 23 ? A 3.309 0.865 -3.731 1.000 1 A 54.480 1 +ATOM 182 O O . GLY 23 23 ? A 4.509 0.637 -3.581 1.000 1 A 54.480 1 +ATOM 183 N N . ASP 24 24 ? A 2.477 0.032 -4.350 1.000 1 A 59.360 1 +ATOM 184 C CA . ASP 24 24 ? A 2.917 -0.850 -5.409 1.000 1 A 59.360 1 +ATOM 185 C C . ASP 24 24 ? A 3.698 0.020 -6.393 1.000 1 A 59.360 1 +ATOM 186 C CB . ASP 24 24 ? A 1.712 -1.553 -6.064 1.000 1 A 59.360 1 +ATOM 187 O O . ASP 24 24 ? A 3.296 1.148 -6.700 1.000 1 A 59.360 1 +ATOM 188 C CG . ASP 24 24 ? A 1.864 -3.064 -5.907 1.000 1 A 59.360 1 +ATOM 189 O OD1 . ASP 24 24 ? A 2.685 -3.631 -6.665 1.000 1 A 59.360 1 +ATOM 190 O OD2 . ASP 24 24 ? A 1.300 -3.614 -4.936 1.000 1 A 59.360 1 +ATOM 191 N N . GLY 25 25 ? A 4.857 -0.457 -6.834 1.000 1 A 54.710 1 +ATOM 192 C CA . GLY 25 25 ? A 5.674 0.208 -7.847 1.000 1 A 54.710 1 +ATOM 193 C C . GLY 25 25 ? A 4.995 0.172 -9.218 1.000 1 A 54.710 1 +ATOM 194 O O . GLY 25 25 ? A 5.577 -0.347 -10.164 1.000 1 A 54.710 1 +ATOM 195 N N . GLY 26 26 ? A 3.774 0.702 -9.305 1.000 1 A 50.090 1 +ATOM 196 C CA . GLY 26 26 ? A 2.888 0.723 -10.460 1.000 1 A 50.090 1 +ATOM 197 C C . GLY 26 26 ? A 1.482 0.215 -10.117 1.000 1 A 50.090 1 +ATOM 198 O O . GLY 26 26 ? A 1.307 -0.972 -9.888 1.000 1 A 50.090 1 +ATOM 199 N N . SER 27 27 ? A 0.481 1.100 -10.183 1.000 1 A 49.770 1 +ATOM 200 C CA . SER 27 27 ? A -0.971 0.816 -10.181 1.000 1 A 49.770 1 +ATOM 201 C C . SER 27 27 ? A -1.662 0.434 -8.863 1.000 1 A 49.770 1 +ATOM 202 C CB . SER 27 27 ? A -1.361 -0.192 -11.271 1.000 1 A 49.770 1 +ATOM 203 O O . SER 27 27 ? A -1.767 -0.733 -8.504 1.000 1 A 49.770 1 +ATOM 204 O OG . SER 27 27 ? A -1.278 0.409 -12.546 1.000 1 A 49.770 1 +ATOM 205 N N . GLN 28 28 ? A -2.317 1.428 -8.250 1.000 1 A 55.590 1 +ATOM 206 C CA . GLN 28 28 ? A -3.628 1.235 -7.618 1.000 1 A 55.590 1 +ATOM 207 C C . GLN 28 28 ? A -4.692 1.438 -8.706 1.000 1 A 55.590 1 +ATOM 208 C CB . GLN 28 28 ? A -3.825 2.230 -6.460 1.000 1 A 55.590 1 +ATOM 209 O O . GLN 28 28 ? A -4.974 2.574 -9.089 1.000 1 A 55.590 1 +ATOM 210 C CG . GLN 28 28 ? A -2.946 1.879 -5.255 1.000 1 A 55.590 1 +ATOM 211 C CD . GLN 28 28 ? A -2.953 2.956 -4.179 1.000 1 A 55.590 1 +ATOM 212 N NE2 . GLN 28 28 ? A -1.871 3.064 -3.445 1.000 1 A 55.590 1 +ATOM 213 O OE1 . GLN 28 28 ? A -3.899 3.700 -3.968 1.000 1 A 55.590 1 +ATOM 214 N N . ALA 29 29 ? A -5.194 0.332 -9.250 1.000 1 A 45.590 1 +ATOM 215 C CA . ALA 29 29 ? A -6.518 0.260 -9.860 1.000 1 A 45.590 1 +ATOM 216 C C . ALA 29 29 ? A -7.511 -0.179 -8.777 1.000 1 A 45.590 1 +ATOM 217 C CB . ALA 29 29 ? A -6.484 -0.703 -11.055 1.000 1 A 45.590 1 +ATOM 218 O O . ALA 29 29 ? A -7.095 -0.999 -7.924 1.000 1 A 45.590 1 +ATOM 219 O OXT . ALA 29 29 ? A -8.647 0.332 -8.829 1.000 1 A 45.590 1 + +loop_ +_atom_type.symbol +C +N +O +S + +loop_ +_ma_qa_metric.id +_ma_qa_metric.name +_ma_qa_metric.description +_ma_qa_metric.type +_ma_qa_metric.mode +_ma_qa_metric.type_other_details +_ma_qa_metric.software_group_id +1 pLDDT . pLDDT local . 1 +2 pLDDT . pLDDT global . 1 +3 PAE . PAE local-pairwise . 1 + +_ma_qa_metric_global.ordinal_id 1 +_ma_qa_metric_global.model_id 1 +_ma_qa_metric_global.metric_id 2 +_ma_qa_metric_global.ordinal_id 1 +_ma_qa_metric_global.metric_value 68.790 + +loop_ +_ma_qa_metric_local.ordinal_id +_ma_qa_metric_local.model_id +_ma_qa_metric_local.label_asym_id +_ma_qa_metric_local.label_seq_id +_ma_qa_metric_local.label_comp_id +_ma_qa_metric_local.metric_id +_ma_qa_metric_local.metric_value +1 1 A 1 MET 1 64.070 +2 1 A 2 THR 1 70.870 +3 1 A 3 PRO 1 67.180 +4 1 A 4 ALA 1 73.470 +5 1 A 5 VAL 1 74.350 +6 1 A 6 GLN 1 78.580 +7 1 A 7 LEU 1 78.020 +8 1 A 8 SER 1 80.320 +9 1 A 9 TRP 1 78.760 +10 1 A 10 LEU 1 83.870 +11 1 A 11 VAL 1 82.900 +12 1 A 12 CYS 1 83.890 +13 1 A 13 ASN 1 81.450 +14 1 A 14 GLN 1 85.020 +15 1 A 15 ARG 1 86.410 +16 1 A 16 ASN 1 76.920 +17 1 A 17 CYS 1 75.870 +18 1 A 18 PRO 1 64.200 +19 1 A 19 LEU 1 62.710 +20 1 A 20 GLN 1 61.520 +21 1 A 21 TYR 1 57.780 +22 1 A 22 LEU 1 57.290 +23 1 A 23 GLY 1 54.480 +24 1 A 24 ASP 1 59.360 +25 1 A 25 GLY 1 54.710 +26 1 A 26 GLY 1 50.090 +27 1 A 27 SER 1 49.770 +28 1 A 28 GLN 1 55.590 +29 1 A 29 ALA 1 45.590 + +_database_2.database_id ModelArchive +_database_2.database_code ma-ornl-sphdiv-00211 +_database_2.pdbx_DOI 10.5452/ma-ornl-sphdiv-00211 + +_pdbx_database_status.entry_id ma-ornl-sphdiv-00211 +_pdbx_database_status.date_coordinates 2022-09-28:17:29 +_pdbx_database_status.status_code REL + +loop_ +_pdbx_contact_author.id +_pdbx_contact_author.name_salutation +_pdbx_contact_author.name_first +_pdbx_contact_author.name_last +_pdbx_contact_author.name_mi +_pdbx_contact_author.email +_pdbx_contact_author.address_1 +_pdbx_contact_author.address_2 +_pdbx_contact_author.address_3 +1 Dr. Mu Gao . mu.gao@gatech.edu 'Center for the Study of Systems Biology, Georgia Institute of Technology, Atlanta, GA USA' . . +7 Dr. Ada Sedova . sedovaaa@ornl.gov 'Biosciences Division, Oak Ridge National Laboratory, Oak Ridge, TN USA' . . + +loop_ +_pdbx_audit_revision_history.ordinal +_pdbx_audit_revision_history.data_content_type +_pdbx_audit_revision_history.major_revision +_pdbx_audit_revision_history.minor_revision +_pdbx_audit_revision_history.revision_date +1 'Structure model' 1 0 2022-09-28 +2 'Structure model' 1 1 2023-06-08 +3 'Structure model' 1 2 2023-06-22 +4 'Structure model' 1 3 2023-07-17 +5 'Structure model' 1 4 2023-07-23 + +loop_ +_pdbx_audit_revision_details.ordinal +_pdbx_audit_revision_details.revision_ordinal +_pdbx_audit_revision_details.data_content_type +_pdbx_audit_revision_details.provider +_pdbx_audit_revision_details.type +_pdbx_audit_revision_details.description +1 1 'Structure model' repository 'Initial release' ? + +loop_ +_pdbx_audit_revision_group.ordinal +_pdbx_audit_revision_group.revision_ordinal +_pdbx_audit_revision_group.data_content_type +_pdbx_audit_revision_group.group +1 2 'Structure model' 'Database references' +2 2 'Structure model' 'Source and taxonomy' +3 3 'Structure model' 'Version format compliance' +4 4 'Structure model' Other +5 5 'Structure model' Other + +loop_ +_pdbx_audit_revision_category.ordinal +_pdbx_audit_revision_category.revision_ordinal +_pdbx_audit_revision_category.data_content_type +_pdbx_audit_revision_category.category +1 2 'Structure model' ma_target_ref_db_details +2 3 'Structure model' audit_conform +3 4 'Structure model' ma_associated_archive_file_details +4 5 'Structure model' exptl + +loop_ +_pdbx_audit_revision_item.ordinal +_pdbx_audit_revision_item.revision_ordinal +_pdbx_audit_revision_item.data_content_type +_pdbx_audit_revision_item.item +1 2 'Structure model' '_ma_target_ref_db_details.ncbi_taxonomy_id' +2 2 'Structure model' '_ma_target_ref_db_details.organism_scientific' +3 3 'Structure model' '_audit_conform.dict_location' +4 3 'Structure model' '_audit_conform.dict_version' +5 4 'Structure model' '_ma_associated_archive_file_details.file_path' +6 5 'Structure model' '_exptl.entry_id' +7 5 'Structure model' '_exptl.method' diff --git a/validation/validate-mmcif-file.py b/validation/validate-mmcif-file.py index 4c79c3e..97edaeb 100755 --- a/validation/validate-mmcif-file.py +++ b/validation/validate-mmcif-file.py @@ -35,6 +35,7 @@ from mmcif.api.DataCategory import DataCategory from mmcif.api.PdbxContainers import DataContainer from mmcif.io.PdbxReader import PdbxReader from mmcif.io.PdbxWriter import PdbxWriter +import mmcif.io.PdbxExceptions def _parse_command_line(): @@ -288,10 +289,13 @@ def _get_associated_files(model_cif_file, assoc_dir, cifcheck): """Get the list of associated files from a model cif file.""" # This is an intermediate step, so we do not need to check/ report anything # here. The actual confirmation comes out of CifCheck at a later stage. - mdl_cif = _read_mmcif(model_cif_file) - entry_id_map = {} assoc_files = [] + try: + mdl_cif = _read_mmcif(model_cif_file) + except mmcif.io.PdbxExceptions.PdbxSyntaxError: + return assoc_files, None, entry_id_map + archives = {} for i, pdbx_cntnr in enumerate(mdl_cif): # gather entry.id's for later @@ -486,7 +490,7 @@ class _CifCheck: def __init__(self, dict_sdb, json_out_file=None, verbose=False): self._version = None - self.check_results = {"errors": []} + self.check_results = {"errors": [], "diagnosis": []} self.dict_sdb = os.path.abspath(dict_sdb) self.json_out_file = json_out_file self.verbose = verbose @@ -715,10 +719,11 @@ class _CifCheck: print("Report") print("======") print(f"Status of check: {self.check_results['status']}") - print("CIF dictionaries used:") - for dct in self.check_results["versions"]: - print(f" {dct['title']}/ {dct['version']}") - print(f" {dct['location']}") + if "versions" in self.check_results: + print("CIF dictionaries used:") + for dct in self.check_results["versions"]: + print(f" {dct['title']}/ {dct['version']}") + print(f" {dct['location']}") # condense diagnosis data rprt = { @@ -794,9 +799,10 @@ class _CifCheck: # print above evaluation in the report # datablock print("Diagnosis:") - print(" Datablock/ entry name:", rprt["datablock"]) - print(" Missing categories:") + if "datablock" in rprt: + print(" Datablock/ entry name:", rprt["datablock"]) if len(rprt["missing_cats"]) > 0: + print(" Missing categories:") for line in sorted(rprt["missing_cats"]): print(f" {line}") if len(rprt["missing_itms"]) > 0: @@ -808,6 +814,11 @@ class _CifCheck: for line in sorted(rprt["parchild_mm"]): print(f" {line}") + # print erros/ messages caught + print("Errors by running CifCheck:") + for line in self.check_results["cifcheck-errors"]: + print(f" {line}") + def _check_dblock_name(name, report): """Compare datablock names.""" @@ -852,6 +863,8 @@ def _file_has_utf(filename, cifcheck): def _main(): """Run as script""" + # ToDo: for MA-pedantic check: use "_ma_target_ref_db_details" instead of + # "_struct_ref" opts = _parse_command_line() # set up the CifCheck tool @@ -889,6 +902,8 @@ def _main(): # validate file success = cifcheck.run(validate_file) if not success: + if opts.report: + cifcheck.make_report() cifcheck.make_json_output() sys.exit(1) @@ -901,12 +916,13 @@ def _main(): # return JSON as file or to stdout if opts.out_file and opts.verbose: print(f"Writing results of CifCheck to '{opts.out_file}'") - cifcheck.make_json_output() # print a report to stdout if opts.report: cifcheck.make_report() + cifcheck.make_json_output() + if cifcheck.got_issues(): # If CifCheck found issues with the mmCIF file, exit with code 2. Exit # code 1 is reserved for general issues running the command, like "file -- GitLab