@@ -1396,7 +1396,11 @@ def result_clustering(self):
1396
1396
w_ii_f = self .results ["Getis_Ord" ][j ][f"w_ii_{ j } " ][i ],
1397
1397
core_lipids = core_lipids )
1398
1398
frame_number = self .start + i * self .step
1399
- self .results ["Clustering" ][str (j )][frame_number ] = list (clusters .values ())
1399
+ leaflet_index_resid_map = self .get_leaflet_step_index_to_resid (j , i )
1400
+ cluster_result = []
1401
+ for cluster in clusters .values ():
1402
+ cluster_result .append ([leaflet_index_resid_map [leaflet_index ] for leaflet_index in cluster ])
1403
+ self .results ["Clustering" ][str (j )][frame_number ] = cluster_result
1400
1404
1401
1405
@staticmethod
1402
1406
def assign_core_lipids (weight_matrix_f , g_star_i_f , order_states_f , w_ii_f , z_score ):
@@ -1560,7 +1564,7 @@ def get_leaflet_step_order(self, leaflet, step):
1560
1564
#Init two empty lists for ...
1561
1565
temp = [] #... order states prediction
1562
1566
idxs = [] #... indices of lipids
1563
-
1567
+
1564
1568
#Iterate over lipids
1565
1569
for res , data in self .results .train_data_per_type .items ():
1566
1570
@@ -1583,11 +1587,11 @@ def get_leaflet_step_order(self, leaflet, step):
1583
1587
return order_states
1584
1588
1585
1589
1586
-
1590
+
1587
1591
1588
1592
def get_leaflet_step_order_index (self , leaflet , step ):
1589
1593
"""
1590
- Receive residue's indexes and positions for a specific leaflet at any frame of the trajecytory .
1594
+ Receive residue's indexes and positions for a specific leaflet at any frame of the trajectory .
1591
1595
1592
1596
Parameters
1593
1597
----------
@@ -1625,3 +1629,15 @@ def get_leaflet_step_order_index(self, leaflet, step):
1625
1629
f"resname { res } and name { self .sterol_heads [res ]} " )).positions
1626
1630
1627
1631
return indexes , positions
1632
+
1633
+ def get_leaflet_step_index_to_resid (self , leaflet , step ):
1634
+ leaflet_assignment_step = self .leaflet_assignment [:, step ]
1635
+ leaflet_assignment_mask = leaflet_assignment_step == leaflet
1636
+ result_map = {}
1637
+ for resname in self .unique_resnames :
1638
+ sys_index = np .where (self .membrane .residues .resnames == resname )[0 ]
1639
+ sys_index = sys_index [leaflet_assignment_mask [sys_index ]]
1640
+ leaflet_index = np .where (self .membrane .residues [leaflet_assignment_mask ].resnames == resname )[0 ]
1641
+ for i in range (0 , len (leaflet_index )):
1642
+ result_map [leaflet_index [i ]] = self .index_resid_map [sys_index [i ]]
1643
+ return result_map
0 commit comments