浏览代码

handle altId & insCode for bonds from PDB files

Alexander Rose 1 年之前
父节点
当前提交
745746f243

+ 13 - 7
src/mol-model-formats/structure/pdb/conect.ts

@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2021 mol* contributors, licensed under MIT, See LICENSE file for more info.
+ * Copyright (c) 2021-2023 mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
  */
@@ -20,14 +20,16 @@ export function parseConect(lines: Tokens, lineStart: number, lineEnd: number, s
     const conn_type_id: string[] = [];
 
     const ptnr1_label_asym_id: string[] = [];
-    const ptnr1_label_seq_id: number[] = [];
     const ptnr1_auth_seq_id: number[] = [];
     const ptnr1_label_atom_id: string[] = [];
+    const ptnr1_label_alt_id: string[] = [];
+    const ptnr1_PDB_ins_code: string[] = [];
 
     const ptnr2_label_asym_id: string[] = [];
-    const ptnr2_label_seq_id: number[] = [];
     const ptnr2_auth_seq_id: number[] = [];
     const ptnr2_label_atom_id: string[] = [];
+    const ptnr2_label_alt_id: string[] = [];
+    const ptnr2_PDB_ins_code: string[] = [];
 
     const pos = [11, 16, 21, 26];
 
@@ -58,13 +60,15 @@ export function parseConect(lines: Tokens, lineStart: number, lineEnd: number, s
 
             ptnr1_label_asym_id.push(sites.label_asym_id!.str(idxA));
             ptnr1_auth_seq_id.push(sites.auth_seq_id!.int(idxA));
-            ptnr1_label_seq_id.push(sites.label_seq_id!.int(idxA));
             ptnr1_label_atom_id.push(sites.label_atom_id!.str(idxA));
+            ptnr1_label_alt_id.push(sites.label_alt_id!.str(idxA));
+            ptnr1_PDB_ins_code.push(sites.pdbx_PDB_ins_code!.str(idxA));
 
             ptnr2_label_asym_id.push(sites.label_asym_id!.str(idxB));
             ptnr2_auth_seq_id.push(sites.auth_seq_id!.int(idxB));
-            ptnr2_label_seq_id.push(sites.label_seq_id!.int(idxB));
             ptnr2_label_atom_id.push(sites.label_atom_id!.str(idxB));
+            ptnr2_label_alt_id.push(sites.label_alt_id!.str(idxB));
+            ptnr2_PDB_ins_code.push(sites.pdbx_PDB_ins_code!.str(idxB));
 
             k += 1;
         }
@@ -76,13 +80,15 @@ export function parseConect(lines: Tokens, lineStart: number, lineEnd: number, s
 
         ptnr1_label_asym_id: CifField.ofStrings(ptnr1_label_asym_id),
         ptnr1_auth_seq_id: CifField.ofNumbers(ptnr1_auth_seq_id),
-        ptnr1_label_seq_id: CifField.ofNumbers(ptnr1_label_seq_id),
         ptnr1_label_atom_id: CifField.ofStrings(ptnr1_label_atom_id),
+        pdbx_ptnr1_label_alt_id: CifField.ofStrings(ptnr1_label_alt_id),
+        pdbx_ptnr1_PDB_ins_code: CifField.ofStrings(ptnr1_PDB_ins_code),
 
         ptnr2_label_asym_id: CifField.ofStrings(ptnr2_label_asym_id),
-        ptnr2_label_seq_id: CifField.ofNumbers(ptnr2_label_seq_id),
         ptnr2_auth_seq_id: CifField.ofNumbers(ptnr2_auth_seq_id),
         ptnr2_label_atom_id: CifField.ofStrings(ptnr2_label_atom_id),
+        pdbx_ptnr2_label_alt_id: CifField.ofStrings(ptnr2_label_alt_id),
+        pdbx_ptnr2_PDB_ins_code: CifField.ofStrings(ptnr2_PDB_ins_code),
     };
 
     return CifCategory.ofFields('struct_conn', struct_conn);

+ 1 - 3
src/mol-model-formats/structure/property/bonds/struct_conn.ts

@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2017-2021 Mol* contributors, licensed under MIT, See LICENSE file for more info.
+ * Copyright (c) 2017-2023 Mol* contributors, licensed under MIT, See LICENSE file for more info.
  *
  * @author David Sehnal <david.sehnal@gmail.com>
  * @author Alexander Rose <alexander.rose@weirdbyte.de>
@@ -94,7 +94,6 @@ export namespace StructConn {
         const { conn_type_id, pdbx_dist_value, pdbx_value_order } = struct_conn;
         const p1 = {
             label_asym_id: struct_conn.ptnr1_label_asym_id,
-            label_seq_id: struct_conn.ptnr1_label_seq_id,
             auth_seq_id: struct_conn.ptnr1_auth_seq_id,
             label_atom_id: struct_conn.ptnr1_label_atom_id,
             label_alt_id: struct_conn.pdbx_ptnr1_label_alt_id,
@@ -103,7 +102,6 @@ export namespace StructConn {
         };
         const p2: typeof p1 = {
             label_asym_id: struct_conn.ptnr2_label_asym_id,
-            label_seq_id: struct_conn.ptnr2_label_seq_id,
             auth_seq_id: struct_conn.ptnr2_auth_seq_id,
             label_atom_id: struct_conn.ptnr2_label_atom_id,
             label_alt_id: struct_conn.pdbx_ptnr2_label_alt_id,