From fb1d42dceaf22af5ecec5b54a10296bba52ce7e9 Mon Sep 17 00:00:00 2001 From: Chenyang Gong <64294860+Linsastar@users.noreply.github.com> Date: Sat, 2 Mar 2024 11:02:43 +0800 Subject: [PATCH 01/10] Update distance.py Corrected the error of not distinguishing between hydrogen receptors and donors, distinguishing OE as OE1 and OE2 --- graphein/protein/edges/distance.py | 35 +++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index e22df57d..fa167899 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -336,6 +336,22 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): + ACCEPTORS_ATOM: List[str] = ["ND", # histidine and asparagine + "NE", # glutamate, tryptophan, arginine, histidine + "NH", # arginine + "NZ", # lysine + "OH", + "SD", # cysteine + "SG", # methionine + "OG", + "N", + ] + DONORS_ATOM: List[str] = ["OD1", + "OD2", + "OE1", + "OE2", + "O", + ] """Add all hydrogen-bond interactions.""" # For these atoms, find those that are within 3.5A of one another. if rgroup_df is None: @@ -348,7 +364,8 @@ def add_hydrogen_bond_interactions( "NZ", # lysine "OD1", "OD2", - "OE", + "OE1", + "OE2", "OG", "OH", "SD", # cysteine @@ -356,6 +373,7 @@ def add_hydrogen_bond_interactions( "N", "O", ] + hbond_df = filter_dataframe(rgroup_df, "atom_name", HBOND_ATOMS, True) if len(hbond_df.index) > 0: distmat = compute_distmat(hbond_df) @@ -371,6 +389,21 @@ def add_hydrogen_bond_interactions( distmat = compute_distmat(hbond_df) interacting_atoms = get_interacting_atoms(4.0, distmat) add_interacting_resis(G, interacting_atoms, hbond_df, ["hbond"]) + for r1, r2 in get_edges_by_bond_type(G, "hbond"): + # print(G.nodes.data()) + condition1 = ( + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM + ) + condition2 = ( + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM + ) + is_ionic = condition1 or condition2 + if not is_ionic: + G.edges[r1, r2]["kind"].remove("hbond") + if len(G.edges[r1, r2]["kind"]) == 0: + G.remove_edge(r1, r2) def add_ionic_interactions( From 4a9320bf6eefc5e6cf54c96a59f5a17708f322da Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 2 Mar 2024 03:13:07 +0000 Subject: [PATCH 02/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphein/protein/edges/distance.py | 44 ++++++++++++++++-------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index fa167899..ebe27df0 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -336,22 +336,24 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): - ACCEPTORS_ATOM: List[str] = ["ND", # histidine and asparagine - "NE", # glutamate, tryptophan, arginine, histidine - "NH", # arginine - "NZ", # lysine - "OH", - "SD", # cysteine - "SG", # methionine - "OG", - "N", - ] - DONORS_ATOM: List[str] = ["OD1", - "OD2", - "OE1", - "OE2", - "O", - ] + ACCEPTORS_ATOM: List[str] = [ + "ND", # histidine and asparagine + "NE", # glutamate, tryptophan, arginine, histidine + "NH", # arginine + "NZ", # lysine + "OH", + "SD", # cysteine + "SG", # methionine + "OG", + "N", + ] + DONORS_ATOM: List[str] = [ + "OD1", + "OD2", + "OE1", + "OE2", + "O", + ] """Add all hydrogen-bond interactions.""" # For these atoms, find those that are within 3.5A of one another. if rgroup_df is None: @@ -373,7 +375,7 @@ def add_hydrogen_bond_interactions( "N", "O", ] - + hbond_df = filter_dataframe(rgroup_df, "atom_name", HBOND_ATOMS, True) if len(hbond_df.index) > 0: distmat = compute_distmat(hbond_df) @@ -392,12 +394,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: From 26c90bc7b5b18433669e91cfa10f0f585441e540 Mon Sep 17 00:00:00 2001 From: Chenyang Gong <64294860+Linsastar@users.noreply.github.com> Date: Mon, 4 Mar 2024 16:57:21 +0800 Subject: [PATCH 03/10] Fixed filtering of atoms that may form hydrogen bonds --- graphein/protein/edges/distance.py | 34 ++++++++++++++++++------------ 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index ebe27df0..87db1f63 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -336,23 +336,27 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): - ACCEPTORS_ATOM: List[str] = [ - "ND", # histidine and asparagine - "NE", # glutamate, tryptophan, arginine, histidine - "NH", # arginine + DONORS_ATOM: List[str] = [ + "ND2", # asparagine + "NE", # arginine + "NE1", # tryptophan + "NE2", # glutamate, histidine + "NH1", # arginine + "NH2", # arginine "NZ", # lysine - "OH", - "SD", # cysteine + "OH", # tyrosine, threonine, serine + "SD", # methionine, "SG", # methionine "OG", "N", ] - DONORS_ATOM: List[str] = [ + ACCEPTORS_ATOM: List[str] = [ "OD1", "OD2", "OE1", "OE2", "O", + "ND1" # histidine ] """Add all hydrogen-bond interactions.""" # For these atoms, find those that are within 3.5A of one another. @@ -360,18 +364,22 @@ def add_hydrogen_bond_interactions( rgroup_df = G.graph["rgroup_df"] rgroup_df = filter_dataframe(rgroup_df, "node_id", list(G.nodes()), True) HBOND_ATOMS = [ - "ND", # histidine and asparagine - "NE", # glutamate, tryptophan, arginine, histidine - "NH", # arginine + "ND1", # histidine + "ND2", # asparagine + "NE", # arginine + "NE1", # tryptophan + "NE2", # glutamate, histidine + "NH1", # arginine + "NH2", # arginine "NZ", # lysine "OD1", "OD2", "OE1", "OE2", "OG", - "OH", - "SD", # cysteine - "SG", # methionine + "OH", # tyrosine, threonine, serine + "SD", # methionine + "SG", # cysteine "N", "O", ] From b717cf5bd4aa69f25163a267710bade689793c75 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 08:57:42 +0000 Subject: [PATCH 04/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphein/protein/edges/distance.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index 87db1f63..c7837dd4 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -337,15 +337,15 @@ def add_hydrogen_bond_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): DONORS_ATOM: List[str] = [ - "ND2", # asparagine + "ND2", # asparagine "NE", # arginine - "NE1", # tryptophan - "NE2", # glutamate, histidine - "NH1", # arginine - "NH2", # arginine + "NE1", # tryptophan + "NE2", # glutamate, histidine + "NH1", # arginine + "NH2", # arginine "NZ", # lysine "OH", # tyrosine, threonine, serine - "SD", # methionine, + "SD", # methionine, "SG", # methionine "OG", "N", @@ -356,7 +356,7 @@ def add_hydrogen_bond_interactions( "OE1", "OE2", "O", - "ND1" # histidine + "ND1", # histidine ] """Add all hydrogen-bond interactions.""" # For these atoms, find those that are within 3.5A of one another. @@ -364,13 +364,13 @@ def add_hydrogen_bond_interactions( rgroup_df = G.graph["rgroup_df"] rgroup_df = filter_dataframe(rgroup_df, "node_id", list(G.nodes()), True) HBOND_ATOMS = [ - "ND1", # histidine - "ND2", # asparagine + "ND1", # histidine + "ND2", # asparagine "NE", # arginine - "NE1", # tryptophan - "NE2", # glutamate, histidine - "NH1", # arginine - "NH2", # arginine + "NE1", # tryptophan + "NE2", # glutamate, histidine + "NH1", # arginine + "NH2", # arginine "NZ", # lysine "OD1", "OD2", From d064829b5471fbba2cb099de1f35b39dbbf9abb6 Mon Sep 17 00:00:00 2001 From: Chenyang Gong <64294860+Linsastar@users.noreply.github.com> Date: Mon, 4 Mar 2024 17:07:58 +0800 Subject: [PATCH 05/10] Modified the code for judging hydrogen bonds --- graphein/protein/edges/distance.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index c7837dd4..1c9feb75 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,7 +334,7 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): DONORS_ATOM: List[str] = [ "ND2", # asparagine @@ -347,7 +347,9 @@ def add_hydrogen_bond_interactions( "OH", # tyrosine, threonine, serine "SD", # methionine, "SG", # methionine - "OG", + "SE", # selenocysteine + "OG", # serine + "OG1", # threonine "N", ] ACCEPTORS_ATOM: List[str] = [ @@ -376,10 +378,12 @@ def add_hydrogen_bond_interactions( "OD2", "OE1", "OE2", - "OG", + "OG", # serine + "OG1", # threonine "OH", # tyrosine, threonine, serine "SD", # methionine "SG", # cysteine + "SE", # selenocysteine "N", "O", ] @@ -402,12 +406,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -415,7 +419,6 @@ def add_hydrogen_bond_interactions( if len(G.edges[r1, r2]["kind"]) == 0: G.remove_edge(r1, r2) - def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): From 6d3f706554ebb7ef3da034f619504d1b42c61d19 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 09:09:31 +0000 Subject: [PATCH 06/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphein/protein/edges/distance.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index 1c9feb75..4d141d5c 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,7 +334,7 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): DONORS_ATOM: List[str] = [ "ND2", # asparagine @@ -406,12 +406,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -419,6 +419,7 @@ def add_hydrogen_bond_interactions( if len(G.edges[r1, r2]["kind"]) == 0: G.remove_edge(r1, r2) + def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): From c53e688287043e0c19819cbae0d66593ec45eb7d Mon Sep 17 00:00:00 2001 From: Chenyang Gong <64294860+Linsastar@users.noreply.github.com> Date: Mon, 4 Mar 2024 17:25:28 +0800 Subject: [PATCH 07/10] Update distance.py --- graphein/protein/edges/distance.py | 43 +++++++++++++++--------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index 4d141d5c..cb28b30d 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,7 +334,7 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): DONORS_ATOM: List[str] = [ "ND2", # asparagine @@ -347,17 +347,16 @@ def add_hydrogen_bond_interactions( "OH", # tyrosine, threonine, serine "SD", # methionine, "SG", # methionine - "SE", # selenocysteine "OG", # serine - "OG1", # threonine - "N", + "OG1", # threonine + "N", # backbone ] ACCEPTORS_ATOM: List[str] = [ - "OD1", - "OD2", - "OE1", - "OE2", - "O", + "OD1", # asparagine, aspartic + "OD2", # aspartic + "OE1", # glutamate + "OE2", # glutamate + "O", # backbone "ND1", # histidine ] """Add all hydrogen-bond interactions.""" @@ -368,23 +367,22 @@ def add_hydrogen_bond_interactions( HBOND_ATOMS = [ "ND1", # histidine "ND2", # asparagine - "NE", # arginine + "NE", # arginine "NE1", # tryptophan "NE2", # glutamate, histidine "NH1", # arginine "NH2", # arginine - "NZ", # lysine - "OD1", - "OD2", - "OE1", - "OE2", - "OG", # serine + "NZ", # lysine + "OD1", # asparagine, aspartic + "OD2", # aspartic + "OE1", # glutamate + "OE2", # glutamate + "OG", # serine "OG1", # threonine "OH", # tyrosine, threonine, serine "SD", # methionine "SG", # cysteine - "SE", # selenocysteine - "N", + "N", # backbone "O", ] @@ -406,12 +404,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -420,6 +418,7 @@ def add_hydrogen_bond_interactions( G.remove_edge(r1, r2) + def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): From a5a4a6aa0d9c64b872edde3f502dd6e88f35b0f6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 4 Mar 2024 09:27:35 +0000 Subject: [PATCH 08/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphein/protein/edges/distance.py | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index cb28b30d..7cbca593 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,7 +334,7 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): DONORS_ATOM: List[str] = [ "ND2", # asparagine @@ -348,15 +348,15 @@ def add_hydrogen_bond_interactions( "SD", # methionine, "SG", # methionine "OG", # serine - "OG1", # threonine - "N", # backbone + "OG1", # threonine + "N", # backbone ] ACCEPTORS_ATOM: List[str] = [ - "OD1", # asparagine, aspartic - "OD2", # aspartic + "OD1", # asparagine, aspartic + "OD2", # aspartic "OE1", # glutamate "OE2", # glutamate - "O", # backbone + "O", # backbone "ND1", # histidine ] """Add all hydrogen-bond interactions.""" @@ -367,22 +367,22 @@ def add_hydrogen_bond_interactions( HBOND_ATOMS = [ "ND1", # histidine "ND2", # asparagine - "NE", # arginine + "NE", # arginine "NE1", # tryptophan "NE2", # glutamate, histidine "NH1", # arginine "NH2", # arginine - "NZ", # lysine + "NZ", # lysine "OD1", # asparagine, aspartic "OD2", # aspartic "OE1", # glutamate "OE2", # glutamate - "OG", # serine + "OG", # serine "OG1", # threonine "OH", # tyrosine, threonine, serine "SD", # methionine "SG", # cysteine - "N", # backbone + "N", # backbone "O", ] @@ -404,12 +404,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -418,7 +418,6 @@ def add_hydrogen_bond_interactions( G.remove_edge(r1, r2) - def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): From b244c37785106fe96115680ac5c0d79827f931fe Mon Sep 17 00:00:00 2001 From: Chenyang Gong <64294860+Linsastar@users.noreply.github.com> Date: Sat, 16 Mar 2024 15:54:59 +0800 Subject: [PATCH 09/10] Corrected hydrogen bond determination, now hydrogen bonds on the main chain can be identified Corrected hydrogen bond determination, now hydrogen bonds on the main chain can be identified --- graphein/protein/edges/distance.py | 60 +++++++++++++++--------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index 7cbca593..76134212 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,8 +334,30 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): + rgroup_df = G.graph["raw_pdb_df"] + HBOND_ATOMS = [ + "ND1", # histidine + "ND2", # asparagine + "NE", # arginine + "NE1", # tryptophan + "NE2", # glutamate, histidine + "NH1", # arginine + "NH2", # arginine + "NZ", # lysine + "OD1", # asparagine, aspartic + "OD2", # aspartic + "OE1", # glutamate + "OE2", # glutamate + "OG", # serine + "OG1", # threonine + "OH", # tyrosine, threonine, serine + "SD", # methionine + "SG", # cysteine + "N", # backbone + "O", # backbone + ] DONORS_ATOM: List[str] = [ "ND2", # asparagine "NE", # arginine @@ -361,32 +383,11 @@ def add_hydrogen_bond_interactions( ] """Add all hydrogen-bond interactions.""" # For these atoms, find those that are within 3.5A of one another. - if rgroup_df is None: - rgroup_df = G.graph["rgroup_df"] + # if rgroup_df is None: + # rgroup_df = G.graph["rgroup_df"] rgroup_df = filter_dataframe(rgroup_df, "node_id", list(G.nodes()), True) - HBOND_ATOMS = [ - "ND1", # histidine - "ND2", # asparagine - "NE", # arginine - "NE1", # tryptophan - "NE2", # glutamate, histidine - "NH1", # arginine - "NH2", # arginine - "NZ", # lysine - "OD1", # asparagine, aspartic - "OD2", # aspartic - "OE1", # glutamate - "OE2", # glutamate - "OG", # serine - "OG1", # threonine - "OH", # tyrosine, threonine, serine - "SD", # methionine - "SG", # cysteine - "N", # backbone - "O", - ] - hbond_df = filter_dataframe(rgroup_df, "atom_name", HBOND_ATOMS, True) + if len(hbond_df.index) > 0: distmat = compute_distmat(hbond_df) interacting_atoms = get_interacting_atoms(3.5, distmat) @@ -404,12 +405,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -417,7 +418,6 @@ def add_hydrogen_bond_interactions( if len(G.edges[r1, r2]["kind"]) == 0: G.remove_edge(r1, r2) - def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): From c8d591c79b677ffdef68d6a106ad20df3bd265af Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 16 Mar 2024 07:55:16 +0000 Subject: [PATCH 10/10] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- graphein/protein/edges/distance.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/graphein/protein/edges/distance.py b/graphein/protein/edges/distance.py index 76134212..55c2bdef 100644 --- a/graphein/protein/edges/distance.py +++ b/graphein/protein/edges/distance.py @@ -334,7 +334,7 @@ def add_disulfide_interactions( def add_hydrogen_bond_interactions( - G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None + G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ): rgroup_df = G.graph["raw_pdb_df"] HBOND_ATOMS = [ @@ -405,12 +405,12 @@ def add_hydrogen_bond_interactions( for r1, r2 in get_edges_by_bond_type(G, "hbond"): # print(G.nodes.data()) condition1 = ( - G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r2]["atom_type"] in DONORS_ATOM + G.nodes[r1]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r2]["atom_type"] in DONORS_ATOM ) condition2 = ( - G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM - and G.nodes[r1]["atom_type"] in DONORS_ATOM + G.nodes[r2]["atom_type"] in ACCEPTORS_ATOM + and G.nodes[r1]["atom_type"] in DONORS_ATOM ) is_ionic = condition1 or condition2 if not is_ionic: @@ -418,6 +418,7 @@ def add_hydrogen_bond_interactions( if len(G.edges[r1, r2]["kind"]) == 0: G.remove_edge(r1, r2) + def add_ionic_interactions( G: nx.Graph, rgroup_df: Optional[pd.DataFrame] = None ):