@@ -202,23 +202,27 @@ def _process_united_atom(
202202 """
203203
204204 for local_res_i , res in enumerate (mol .residues ):
205- # build residue group here
206- if local_res_i == 0 :
207- # first residue
208- res_position = - 1
209- res_next = mol .residues [1 ]
210- residue_group = res + res_next
211- elif local_res_i == len (mol .residues ) - 1 :
212- # last residue
213- res_position = 1
214- res_prev = mol .residues [- 2 ]
215- residue_group = res + res_prev
205+ if len (mol .residues ) > 1 :
206+ # there are multiple residues in the molecule
207+ # build residue group here
208+ if local_res_i == 0 :
209+ # first residue
210+ res_position = - 1
211+ res_next = mol .residues [1 ]
212+ residue_group = res + res_next
213+ elif local_res_i == len (mol .residues ) - 1 :
214+ # last residue
215+ res_position = 1
216+ res_prev = mol .residues [- 2 ]
217+ residue_group = res + res_prev
218+ else :
219+ res_position = 0
220+ res_prev = mol .residues [local_res_i - 1 ]
221+ res_next = mol .residues [local_res_i + 1 ]
222+ residue_group = res_prev + res + res_next
216223 else :
217- res_position = 0
218- res_prev = mol .residues [local_res_i - 1 ]
219- res_next = mol .residues [local_res_i + 1 ]
220- residue_group = res_prev + res + res_next
221-
224+ # only one residue
225+ res_position = None
222226 bead_key = (mol_id , "united_atom" , local_res_i )
223227 bead_idx_list = beads .get (bead_key , [])
224228 if not bead_idx_list :
0 commit comments