Author: bugman Date: Fri Jan 18 17:58:27 2013 New Revision: 18232 URL: http://svn.gna.org/viewcvs/relax?rev=18232&view=rev Log: Bug fix for generic_fns.mol_res_spin.metadata_prune(). Non-unique molecules and residues are now removed from the spin ID lookup table. Modified: trunk/generic_fns/mol_res_spin.py Modified: trunk/generic_fns/mol_res_spin.py URL: http://svn.gna.org/viewcvs/relax/trunk/generic_fns/mol_res_spin.py?rev=18232&r1=18231&r2=18232&view=diff ============================================================================== --- trunk/generic_fns/mol_res_spin.py (original) +++ trunk/generic_fns/mol_res_spin.py Fri Jan 18 17:58:27 2013 @@ -1964,6 +1964,7 @@ dp = pipes.get_pipe(pipe) # Loop over the molecules. + to_remove = [] for i in range(len(dp.mol)): # Molecule skipping. if mol_index != None and mol_index != i: @@ -1971,6 +1972,10 @@ # Alias. mol = dp.mol[i] + + # The molecule ID is no longer unique, so add it to the list to remove. + if len(mol.res) or len(mol.res[0].spin): + to_remove.append(generate_spin_id(mol_name=mol.name)) # Loop over the residues. for j in range(len(mol.res)): @@ -1981,6 +1986,11 @@ # Alias. res = mol.res[j] + # The residue ID is no longer unique, so add it to the list to remove. + if len(res.spin): + to_remove.append(generate_spin_id(mol_name=mol.name, res_num=res.num, res_name=res.name)) + to_remove.append(generate_spin_id(res_num=res.num, res_name=res.name)) + # Loop over the spins. for k in range(len(res.spin)): # Spin skipping. @@ -1991,10 +2001,10 @@ spin = res.spin[k] # The list of IDs to remove. - spin_ids = spin_id_variants_elim(dp=dp, mol_index=i, res_index=j, spin_index=k) + to_remove += spin_id_variants_elim(dp=dp, mol_index=i, res_index=j, spin_index=k) # ID removal. - for spin_id in spin_ids: + for spin_id in to_remove: # Blank IDs. if spin_id == '': continue