@@ -945,71 +945,69 @@ 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- 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 frag 2 has the least Rs and frag 1 has the
960- # same or fewer Ls than frag 2 -->
961- # assign R to frag 2 and L to frag 1
962- if frag1_R > frag2_R and frag1_L <= frag2_L :
963- frag1_smi = frag1 .replace ("*" , "L" )
964- frag2_smi = frag2 .replace ("*" , "R" )
965-
966- # if frag 2 has the least Ls and frag 1 has the
967- # same or fewer Rs than frag 2 -->
968- # assign R to frag 1 and L to frag 2
969- elif frag1_L > frag2_L and frag1_R <= frag2_R :
970- frag1_smi = frag1 .replace ("*" , "R" )
971- frag2_smi = frag2 .replace ("*" , "L" )
972-
973- # if frag 1 has the least Ls and frag 2 has the
974- # same or fewer Rs than frag 1 -->
975- # assign R to frag 2 and L to frag 1
976- elif frag2_L > frag1_L and frag2_R <= frag1_R :
977- frag1_smi = frag1 .replace ("*" , "L" )
978- frag2_smi = frag2 .replace ("*" , "R" )
979-
980- # if frag 1 has the least Rs and frag 2 has the
981- # same or fewer Ls than frag 1 -->
982- # assign R to frag 1 and L to frag 2
983- elif frag2_R > frag1_R and frag2_L <= frag1_L :
984- frag1_smi = frag1 .replace ("*" , "R" )
985- frag2_smi = frag2 .replace ("*" , "L" )
986-
987- # else if frag 1 and frag 2 have equal number
988- # of Rs and Ls or one frag has more Rs and
989- # more Ls than the other, choose randomly
990- elif randint (0 , 1 ) == 1 :
991- frag1_smi = frag1 .replace ("*" , "L" )
992- frag2_smi = frag2 .replace ("*" , "R" )
948+
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 frag 2 has the least Rs and frag 1 has the
960+ # same or fewer Ls than frag 2 -->
961+ # assign R to frag 2 and L to frag 1
962+ if frag1_R > frag2_R and frag1_L <= frag2_L :
963+ frag1_smi = frag1 .replace ("*" , "L" )
964+ frag2_smi = frag2 .replace ("*" , "R" )
965+
966+ # if frag 2 has the least Ls and frag 1 has the
967+ # same or fewer Rs than frag 2 -->
968+ # assign R to frag 1 and L to frag 2
969+ elif frag1_L > frag2_L and frag1_R <= frag2_R :
970+ frag1_smi = frag1 .replace ("*" , "R" )
971+ frag2_smi = frag2 .replace ("*" , "L" )
972+
973+ # if frag 1 has the least Ls and frag 2 has the
974+ # same or fewer Rs than frag 1 -->
975+ # assign R to frag 2 and L to frag 1
976+ elif frag2_L > frag1_L and frag2_R <= frag1_R :
977+ frag1_smi = frag1 .replace ("*" , "L" )
978+ frag2_smi = frag2 .replace ("*" , "R" )
979+
980+ # if frag 1 has the least Rs and frag 2 has the
981+ # same or fewer Ls than frag 1 -->
982+ # assign R to frag 1 and L to frag 2
983+ elif frag2_R > frag1_R and frag2_L <= frag1_L :
984+ frag1_smi = frag1 .replace ("*" , "R" )
985+ frag2_smi = frag2 .replace ("*" , "L" )
986+
987+ # else if frag 1 and frag 2 have equal number
988+ # of Rs and Ls or one frag has more Rs and
989+ # more Ls than the other, choose randomly
990+ elif randint (0 , 1 ) == 1 :
991+ frag1_smi = frag1 .replace ("*" , "L" )
992+ frag2_smi = frag2 .replace ("*" , "R" )
993+ else :
994+ frag1_smi = frag1 .replace ("*" , "R" )
995+ frag2_smi = frag2 .replace ("*" , "L" )
996+
997+ frag_list = [frag1_smi , frag2_smi ]
998+
999+ elif len (mol_set ) > 2 : # means it cut into 3 fragments
1000+ frag_list = []
1001+ for ind , rdmol in enumerate (mol_set ):
1002+ frag = Chem .MolToSmiles (rdmol )
1003+ if frag .count ("*" ) > 1 :
1004+ frag_smi = frag .replace ("*" , "R" )
9931005 else :
994- frag1_smi = frag1 .replace ("*" , "R" )
995- frag2_smi = frag2 .replace ("*" , "L" )
996-
997- frag_list = [frag1_smi , frag2_smi ]
998-
999- elif len (mol_set ) > 2 : # means it cut into 3 fragments
1000- frag_list = []
1001- for ind , rdmol in enumerate (mol_set ):
1002- frag = Chem .MolToSmiles (rdmol )
1003- if frag .count ("*" ) > 1 :
1004- frag_smi = frag .replace ("*" , "R" )
1005- else :
1006- frag_smi = frag .replace ("*" , "L" )
1007- frag_list .append (frag_smi )
1008- break
1009- else :
1010- # turn to next matched_atom_map
1011- continue
1012- except :
1006+ frag_smi = frag .replace ("*" , "L" )
1007+ frag_list .append (frag_smi )
1008+ break
1009+ else :
1010+ # turn to next matched_atom_map
10131011 continue
10141012 else :
10151013 # no match for this pattern
@@ -1111,52 +1109,49 @@ def sliceitup_aliph(self, molecule, size_threshold=5):
11111109 # mol_set contains new set of fragments
11121110 mol_set = Chem .GetMolFrags (new_mol , asMols = True )
11131111 # check all fragments' size
1114- try :
1115- if all (sum (1 for atom in mol .GetAtoms () if atom .GetAtomicNum () == 6 ) >= size_threshold for mol in mol_set ):
1116- if len (mol_set ) == 2 :
1117- frag1 = Chem .MolToSmiles (mol_set [0 ])
1118- frag2 = Chem .MolToSmiles (mol_set [1 ])
1119-
1120- frag1_R = frag1 .count ("Na" )
1121- frag1_L = frag1 .count ("K" )
1122- frag2_R = frag2 .count ("Na" )
1123- frag2_L = frag2 .count ("K" )
1124-
1125- if frag1_R > frag2_R and frag1_L <= frag2_L :
1126- frag1_smi = frag1 .replace ("*" , "L" )
1127- frag2_smi = frag2 .replace ("*" , "R" )
1128- elif frag1_L > frag2_L and frag1_R <= frag2_R :
1129- frag1_smi = frag1 .replace ("*" , "R" )
1130- frag2_smi = frag2 .replace ("*" , "L" )
1131- elif frag2_L > frag1_L and frag2_R <= frag1_R :
1132- frag1_smi = frag1 .replace ("*" , "L" )
1133- frag2_smi = frag2 .replace ("*" , "R" )
1134- elif frag2_R > frag1_R and frag2_L <= frag1_L :
1135- frag1_smi = frag1 .replace ("*" , "R" )
1136- frag2_smi = frag2 .replace ("*" , "L" )
1137- elif randint (0 ,1 )== 1 :
1138- frag1_smi = frag1 .replace ("*" , "L" )
1139- frag2_smi = frag2 .replace ("*" , "R" )
1112+ if all (sum (1 for atom in mol .GetAtoms () if atom .GetAtomicNum () == 6 ) >= size_threshold for mol in mol_set ):
1113+ if len (mol_set ) == 2 :
1114+ frag1 = Chem .MolToSmiles (mol_set [0 ])
1115+ frag2 = Chem .MolToSmiles (mol_set [1 ])
1116+
1117+ frag1_R = frag1 .count ("Na" )
1118+ frag1_L = frag1 .count ("K" )
1119+ frag2_R = frag2 .count ("Na" )
1120+ frag2_L = frag2 .count ("K" )
1121+
1122+ if frag1_R > frag2_R and frag1_L <= frag2_L :
1123+ frag1_smi = frag1 .replace ("*" , "L" )
1124+ frag2_smi = frag2 .replace ("*" , "R" )
1125+ elif frag1_L > frag2_L and frag1_R <= frag2_R :
1126+ frag1_smi = frag1 .replace ("*" , "R" )
1127+ frag2_smi = frag2 .replace ("*" , "L" )
1128+ elif frag2_L > frag1_L and frag2_R <= frag1_R :
1129+ frag1_smi = frag1 .replace ("*" , "L" )
1130+ frag2_smi = frag2 .replace ("*" , "R" )
1131+ elif frag2_R > frag1_R and frag2_L <= frag1_L :
1132+ frag1_smi = frag1 .replace ("*" , "R" )
1133+ frag2_smi = frag2 .replace ("*" , "L" )
1134+ elif randint (0 ,1 )== 1 :
1135+ frag1_smi = frag1 .replace ("*" , "L" )
1136+ frag2_smi = frag2 .replace ("*" , "R" )
1137+ else :
1138+ frag1_smi = frag1 .replace ("*" , "R" )
1139+ frag2_smi = frag2 .replace ("*" , "L" )
1140+
1141+ frag_list = [frag1_smi , frag2_smi ]
1142+
1143+ elif len (mol_set ) > 2 : # means it cut into 3 fragments
1144+ frag_list = []
1145+ for ind , rdmol in enumerate (mol_set ):
1146+ frag = Chem .MolToSmiles (rdmol )
1147+ if frag .count ("*" ) > 1 :
1148+ frag_smi = frag .replace ("*" , "R" )
11401149 else :
1141- frag1_smi = frag1 .replace ("*" , "R" )
1142- frag2_smi = frag2 .replace ("*" , "L" )
1143-
1144- frag_list = [frag1_smi , frag2_smi ]
1145-
1146- elif len (mol_set ) > 2 : # means it cut into 3 fragments
1147- frag_list = []
1148- for ind , rdmol in enumerate (mol_set ):
1149- frag = Chem .MolToSmiles (rdmol )
1150- if frag .count ("*" ) > 1 :
1151- frag_smi = frag .replace ("*" , "R" )
1152- else :
1153- frag_smi = frag .replace ("*" , "L" )
1154- frag_list .append (frag_smi )
1155- break
1156- else :
1157- # turn to next matched_atom_map
1158- continue
1159- except :
1150+ frag_smi = frag .replace ("*" , "L" )
1151+ frag_list .append (frag_smi )
1152+ break
1153+ else :
1154+ # turn to next matched_atom_map
11601155 continue
11611156 else :
11621157 # no match for this pattern
0 commit comments