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