diff --git a/validation/test-suite.py b/validation/test-suite.py
index 0e73fbe3c83f9de9964685892027699a82b986e4..c7db50da982bd642b4f7e2f5e48e25c235f27814 100644
--- a/validation/test-suite.py
+++ b/validation/test-suite.py
@@ -6,6 +6,7 @@ validation tool but functional tests. The test suite makes sure, that the
 validation tool is working as intended, scanning ModelCIF files/ mmCIF files.
 """
 from argparse import ArgumentParser
+import copy
 import json
 import os
 import re
@@ -33,6 +34,22 @@ DCKR_CMDS = {
 def _parse_args():
     """Deal with command line arguments."""
     parser = ArgumentParser(description=__doc__)
+    parser.add_argument(
+        "-t",
+        "--test-file",
+        default=None,
+        action="store",
+        help="Only run test for this file.",
+    )
+    parser.add_argument(
+        "-l",
+        "--local",
+        default=False,
+        action="store_true",
+        help="Run 'validate-mmcif-file' directory w/o Docker. That is for "
+        + "running inside a development container. Make sure to mount the "
+        + "validation script accordingly.",
+    )
     parser.add_argument(
         "-v",
         "--verbose",
@@ -196,18 +213,28 @@ def _verify_docker_image(image_name, dic_version):
 
 def _test_file(cif_file, cif_dir, image, expected_results):
     """Check that a certain mmCIF file validates as expected"""
-    args = DCKR_CMDS["run"]
-    args.extend(
-        [
-            "-v",
-            f"{os.path.abspath(cif_dir)}:/data",
-            image,
+    # image == None means we are running local and don't need the Docker prefix
+    if image is not None:
+        args = copy.copy(DCKR_CMDS["run"])
+        args.extend(
+            [
+                "-v",
+                f"{os.path.abspath(cif_dir)}:/data",
+                image,
+                "validate-mmcif-file",
+                "-a",
+                "/data/",
+                f"/data/{cif_file}",
+            ]
+        )
+    else:
+        args = [
             "validate-mmcif-file",
             "-a",
-            "/data",
-            f"/data/{cif_file}",
+            f"/data/{cif_dir}",
+            f"/data/{cif_dir}/{cif_file}",
         ]
-    )
+
     # run validation
     dckr_p = subprocess.run(
         args,
@@ -218,13 +245,15 @@ def _test_file(cif_file, cif_dir, image, expected_results):
 
     # check output
     if dckr_p.returncode != expected_results["ret_val"]:
+        # print raw output as it may be a Python exception not in JSON format
         _print_abort(
             f"Exit value for '{cif_file}' not right: {dckr_p.returncode}, "
-            + f"expected: {expected_results['ret_val']}"
+            + f"expected: {expected_results['ret_val']}\nRaw output: \n"
+            + f'"""\n{dckr_p.stdout.decode()}\n"""'
         )
 
     vldtn_json = json.loads(dckr_p.stdout.decode())
-    for report_key in ["cifcheck-errors", "status", "diagnosis"]:
+    for report_key in ["cifcheck-errors", "status", "diagnosis", "errors"]:
         if vldtn_json[report_key] != expected_results[report_key]:
             _print_abort(
                 f"Validation report on '{cif_file}', value of '{report_key}' "
@@ -260,6 +289,14 @@ def _do_step(func, msg, *args, **kwargs):
     return ret_val
 
 
+def _verified_test_file(test_file, tst_fls_dir):
+    """Make sure test_file is in the test_files directory."""
+    if not os.path.isfile(os.path.join(tst_fls_dir, test_file)):
+        _print_abort(f"'{test_file}' is not a file in '{tst_fls_dir}'.")
+
+    return test_file
+
+
 def _main():
     """Run as script."""
     # ToDo: add test fetching associated data from the internet
@@ -267,10 +304,23 @@ def _main():
     expctd_rslts = {
         "working.cif": {
             "ret_val": 0,
+            "errors": [],
+            "cifcheck-errors": [],
+            "status": "completed",
+            "diagnosis": [],
+        },
+        "missing_associated_file.cif": {
+            "ret_val": 0,
+            "errors": [
+                "ma_entry_associated_files.file_url "
+                + "'missing_associated_file.zip' is missing "
+                + "ma_associated_archive_file_details.file_path "
+                + "'not-in-archive.txt'"
+            ],
             "cifcheck-errors": [],
             "status": "completed",
             "diagnosis": [],
-        }
+        },
     }
 
     opts = _parse_args()
@@ -284,33 +334,43 @@ def _main():
         global _print_verbose
         _print_verbose = print
 
-    # Make sure Docker is installed and necessary commands are available.
-    _do_step(_check_docker_installed, "checking Docker installation")
-    # Get expected image tag (latest ModelCIF dic version from GitHub)
-    dic_version = _do_step(
-        _get_modelcif_dic_version,
-        "fetching latest ModelCIF dictionary version",
-    )
-    # Make sure Docker image is present
-    image = _do_step(
-        _find_docker_image,
-        f"searching for Docker image ({DCKR_IMG_RPO}:{dic_version})",
-        DCKR_IMG_RPO,
-        dic_version,
-    )
-    if image is None:
+    image = None
+    if not opts.local:
+        # Make sure Docker is installed and necessary commands are available.
+        _do_step(_check_docker_installed, "checking Docker installation")
+        # Get expected image tag (latest ModelCIF dic version from GitHub)
+        dic_version = _do_step(
+            _get_modelcif_dic_version,
+            "fetching latest ModelCIF dictionary version",
+        )
+        # Make sure Docker image is present
         image = _do_step(
-            _build_docker_image,
-            f"building Docker image ({DCKR_IMG_RPO}:{dic_version})",
+            _find_docker_image,
+            f"searching for Docker image ({DCKR_IMG_RPO}:{dic_version})",
             DCKR_IMG_RPO,
             dic_version,
         )
-    # Verify some version numbers inside the container
-    _do_step(_verify_docker_image, "verifying Docker image", image, dic_version)
+        if image is None:
+            image = _do_step(
+                _build_docker_image,
+                f"building Docker image ({DCKR_IMG_RPO}:{dic_version})",
+                DCKR_IMG_RPO,
+                dic_version,
+            )
+            # Verify some version numbers inside the container
+            _do_step(
+                _verify_docker_image,
+                "verifying Docker image",
+                image,
+                dic_version,
+            )
 
     # Run the actual tests of the validation script/ validate all files in
-    # test_files/.
-    test_files = os.listdir(TST_FLS_DIR)
+    # test_files/ or on a single one, given by '--test-file'.
+    if opts.test_file is None:
+        test_files = os.listdir(TST_FLS_DIR)
+    else:
+        test_files = [_verified_test_file(opts.test_file, TST_FLS_DIR)]
     for cif in test_files:
         if not cif.endswith(".cif"):
             continue
diff --git a/validation/test_files/README.md b/validation/test_files/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..1b4bb5db8a92eb5aa3a9ac8333c6f3e34ebc871f
--- /dev/null
+++ b/validation/test_files/README.md
@@ -0,0 +1,10 @@
+# Test files for the validation tool
+
+This is just a collection of files used by the [test suite](../test-suite.py) to the validation tool. File names should hint what is tested by a file.
+
+Since we did not create (all) test cases from scratch but based them on existing files, here is a list of their whereabouts:
+
+|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/)|
diff --git a/validation/test_files/missing_associated_file.cif b/validation/test_files/missing_associated_file.cif
new file mode 100644
index 0000000000000000000000000000000000000000..5e194744dde432410a0c47ce65a2cd1cddc3f79e
--- /dev/null
+++ b/validation/test_files/missing_associated_file.cif
@@ -0,0 +1,689 @@
+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_entry_associated_files.id
+_ma_entry_associated_files.entry_id
+_ma_entry_associated_files.file_url
+_ma_entry_associated_files.file_type
+_ma_entry_associated_files.file_format
+_ma_entry_associated_files.file_content
+_ma_entry_associated_files.details
+1 ma-ornl-sphdiv-00211 missing_associated_file.zip archive zip 'archive with multiple files' .
+
+loop_
+_ma_associated_archive_file_details.id
+_ma_associated_archive_file_details.archive_file_id
+_ma_associated_archive_file_details.file_path
+_ma_associated_archive_file_details.file_format
+_ma_associated_archive_file_details.file_content
+_ma_associated_archive_file_details.description
+1 1 ma-ornl-sphdiv-00211_predicted_aligned_error_v1.cif cif 'local pairwise QA scores' 'Predicted aligned error'
+2 1 not-in-archive.txt txt other 'not exisiting file to trigger error'
+
+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
+
+loop_
+_ma_qa_metric_global.ordinal_id
+_ma_qa_metric_global.model_id
+_ma_qa_metric_global.metric_id
+_ma_qa_metric_global.metric_value
+1 1 2 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/test_files/missing_associated_file.zip b/validation/test_files/missing_associated_file.zip
new file mode 100644
index 0000000000000000000000000000000000000000..3826594eb703127a943ad5a142220996a2de8ac3
Binary files /dev/null and b/validation/test_files/missing_associated_file.zip differ
diff --git a/validation/validate-mmcif-file.py b/validation/validate-mmcif-file.py
index ca0e97ae4fb84c124341138cdeba87ee30ba01f5..fd712e26df4b21b5921890b4082c640de76f0566 100755
--- a/validation/validate-mmcif-file.py
+++ b/validation/validate-mmcif-file.py
@@ -14,6 +14,7 @@ and thus, won't be merged into the model mmCIF file and won't be checked.
 # ToDo: enable testing of gzipped files
 # ToDo: add "modelcif-pedantic" mode, fail on categories that are technically
 #       allowed but discouraged to be used, like _exptl
+# ToDo: Remove pip installs which are in requirements.txt from Dockerfile
 
 from io import TextIOWrapper
 import argparse
@@ -255,23 +256,27 @@ def _get_assoc_obj(file_or_url, assoc_dir):
     return os.path.join(assoc_dir, file_or_url)
 
 
-def _unzip_arc_cif(arc_file, cif_file, assoc_dir):
+def _get_arc_zipfile_handle(arc_file, assoc_dir):
+    """Get a ZipFile object and a list of files in the archive."""
+    assoc_obj = _get_assoc_obj(arc_file, assoc_dir)
+    # PyLint wants us to use a context manager here. This is not possible as the
+    # ZipFile object is used outside this function.
+    # pylint: disable=consider-using-with
+    arc_zip = zipfile.ZipFile(assoc_obj)
+
+    return arc_zip, arc_zip.namelist()
+
+
+def _unzip_arc_cif(arc_zip, cif_file):
     """Extract a cif file from a ZIP archive."""
     assoc_data = []
-    assoc_obj = _get_assoc_obj(arc_file, assoc_dir)
-    with zipfile.ZipFile(assoc_obj) as arc_zip:
-        with TextIOWrapper(arc_zip.open(cif_file), encoding="utf-8") as cif_fh:
-            assoc_data = _read_mmcif(cif_fh)
-    # in case assoc_obj is a temporary file, we need to close
-    try:
-        assoc_obj.close()
-    except AttributeError:
-        pass
+    with TextIOWrapper(arc_zip.open(cif_file), encoding="utf-8") as cif_fh:
+        assoc_data = _read_mmcif(cif_fh)
 
     return assoc_data
 
 
-def _get_associated_files(model_cif_file, assoc_dir):
+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.
@@ -315,19 +320,39 @@ def _get_associated_files(model_cif_file, assoc_dir):
             dat_cat,
             ["archive_file_id", "file_content", "file_format", "file_path"],
         )
+        last_arc_id = ""
+        arc_zip = None
         for row in dat_cat:
+            # Get a ZipFile object of the archive to read CIF files and check
+            # the presence of non-CIF files.
+            arc_id = row[idxs["archive_file_id"]]
+            arc_file = archives[arc_id][0]
+            if arc_id != last_arc_id:
+                last_arc_id = arc_id
+                if arc_zip is not None:
+                    arc_zip.close()
+                arc_zip, arc_namelist = _get_arc_zipfile_handle(
+                    arc_file, assoc_dir
+                )
             if row[idxs["file_format"]] == "cif":
                 if row[idxs["file_content"]] == "local pairwise QA scores":
-                    arc_id = row[idxs["archive_file_id"]]
-                    arc_file = archives[arc_id][0]
                     cif_file = row[idxs["file_path"]]
-                    data = _unzip_arc_cif(arc_file, cif_file, assoc_dir)
+                    data = _unzip_arc_cif(arc_zip, cif_file)
                     assoc_files.append((data, archives[arc_id][1]))
                 elif row[idxs["file_content"]] not in ["other"]:
                     raise RuntimeError(
                         "Unknown associated CIF file content "
                         + f"found: {row[idxs['file_content']]}"
                     )
+            else:
+                if row[idxs["file_path"]] not in arc_namelist:
+                    cifcheck.add_general_error(
+                        f"ma_entry_associated_files.file_url '{arc_file}' is "
+                        + "missing "
+                        + "ma_associated_archive_file_details.file_path "
+                        + f"'{row[idxs['file_path']]}'"
+                    )
+        arc_zip.close()
 
     return assoc_files, mdl_cif, entry_id_map
 
@@ -453,7 +478,7 @@ class _CifCheck:
 
     def __init__(self, dict_sdb, json_out_file=None, verbose=False):
         self._version = None
-        self.check_results = {}
+        self.check_results = {"errors": []}
         self.dict_sdb = os.path.abspath(dict_sdb)
         self.json_out_file = json_out_file
         self.verbose = verbose
@@ -479,10 +504,7 @@ class _CifCheck:
 
     def add_general_error(self, msg):
         """Add a uncategorised error to the list."""
-        if "errors" not in self.check_results:
-            self.check_results["errors"] = [msg]
-        else:
-            self.check_results["errors"].append(msg)
+        self.check_results["errors"].append(msg)
 
     def _execute(self, filepath):
         """Execute the CifCheck tool on a model mmCIF file."""
@@ -525,7 +547,6 @@ class _CifCheck:
         """Run CifCheck for a given file and catch the output.
 
         Returns False if the CifCheck execution itself failed."""
-        self.check_results["cifcheck-errors"] = []
         try:
             format_errors = self._execute(cif_file)
         except _CifCheckFailedError as exc:
@@ -715,6 +736,7 @@ def _main():
     assoc_files, model_cif_data, entry_id_map = _get_associated_files(
         opts.model_cif,
         opts.associates_dir,
+        cifcheck,
     )
     # save original data for later
     if opts.extend_validated_file is not None: