@@ -945,49 +945,52 @@ def sliceitup_arom(self, molecule, size_threshold=5):
945945 # mol_set contains new set of fragments
946946 mol_set = Chem .GetMolFrags (new_mol , asMols = True )
947947 # check all fragments' size
948- if all (sum (1 for atom in mol .GetAtoms () if atom .GetAtomicNum () == 6 ) >= size_threshold for mol in mol_set ):
949- if len (mol_set ) == 2 :
950- frag1 = Chem .MolToSmiles (mol_set [0 ])
951- frag2 = Chem .MolToSmiles (mol_set [1 ])
952-
953- frag1_R = frag1 .count ("Na" )
954- frag1_L = frag1 .count ("K" )
955- frag2_R = frag2 .count ("Na" )
956- frag2_L = frag2 .count ("K" )
957-
958- if frag1_R > frag2_R and frag1_L <= frag2_L :
959- frag1_smi = frag1 .replace ("*" , "L" )
960- frag2_smi = frag2 .replace ("*" , "R" )
961- elif frag1_L > frag2_L and frag1_R <= frag2_R :
962- frag1_smi = frag1 .replace ("*" , "R" )
963- frag2_smi = frag2 .replace ("*" , "L" )
964- elif frag2_L > frag1_L and frag2_R <= frag1_R :
965- frag1_smi = frag1 .replace ("*" , "R" )
966- frag2_smi = frag2 .replace ("*" , "L" )
967- elif frag2_R > frag1_R and frag2_L <= frag1_L :
968- frag1_smi = frag1 .replace ("*" , "R" )
969- frag2_smi = frag2 .replace ("*" , "L" )
970- elif randint (0 ,1 )== 1 :
971- frag1_smi = frag1 .replace ("*" , "L" )
972- frag2_smi = frag2 .replace ("*" , "R" )
973- else :
974- frag1_smi = frag1 .replace ("*" , "R" )
975- frag2_smi = frag2 .replace ("*" , "L" )
976-
977- frag_list = [frag1_smi , frag2_smi ]
978-
979- elif len (mol_set ) > 2 : # means it cut into 3 fragments
980- frag_list = []
981- for ind , rdmol in enumerate (mol_set ):
982- frag = Chem .MolToSmiles (rdmol )
983- if frag .count ("*" ) > 1 :
984- frag_smi = frag .replace ("*" , "R" )
948+ try :
949+ if all (sum (1 for atom in mol .GetAtoms () if atom .GetAtomicNum () == 6 ) >= size_threshold for mol in mol_set ):
950+ if len (mol_set ) == 2 :
951+ frag1 = Chem .MolToSmiles (mol_set [0 ])
952+ frag2 = Chem .MolToSmiles (mol_set [1 ])
953+
954+ frag1_R = frag1 .count ("Na" )
955+ frag1_L = frag1 .count ("K" )
956+ frag2_R = frag2 .count ("Na" )
957+ frag2_L = frag2 .count ("K" )
958+
959+ if frag1_R > frag2_R and frag1_L <= frag2_L :
960+ frag1_smi = frag1 .replace ("*" , "L" )
961+ frag2_smi = frag2 .replace ("*" , "R" )
962+ elif frag1_L > frag2_L and frag1_R <= frag2_R :
963+ frag1_smi = frag1 .replace ("*" , "R" )
964+ frag2_smi = frag2 .replace ("*" , "L" )
965+ elif frag2_L > frag1_L and frag2_R <= frag1_R :
966+ frag1_smi = frag1 .replace ("*" , "R" )
967+ frag2_smi = frag2 .replace ("*" , "L" )
968+ elif frag2_R > frag1_R and frag2_L <= frag1_L :
969+ frag1_smi = frag1 .replace ("*" , "R" )
970+ frag2_smi = frag2 .replace ("*" , "L" )
971+ elif randint (0 ,1 )== 1 :
972+ frag1_smi = frag1 .replace ("*" , "L" )
973+ frag2_smi = frag2 .replace ("*" , "R" )
985974 else :
986- frag_smi = frag .replace ("*" , "L" )
987- frag_list .append (frag_smi )
988- break
989- else :
990- # turn to next matched_atom_map
975+ frag1_smi = frag1 .replace ("*" , "R" )
976+ frag2_smi = frag2 .replace ("*" , "L" )
977+
978+ frag_list = [frag1_smi , frag2_smi ]
979+
980+ elif len (mol_set ) > 2 : # means it cut into 3 fragments
981+ frag_list = []
982+ for ind , rdmol in enumerate (mol_set ):
983+ frag = Chem .MolToSmiles (rdmol )
984+ if frag .count ("*" ) > 1 :
985+ frag_smi = frag .replace ("*" , "R" )
986+ else :
987+ frag_smi = frag .replace ("*" , "L" )
988+ frag_list .append (frag_smi )
989+ break
990+ else :
991+ # turn to next matched_atom_map
992+ continue
993+ except :
991994 continue
992995 else :
993996 # no match for this pattern
0 commit comments