├── .gitignore ├── DataGeneration ├── build_grid.py ├── dligand-linux ├── dummy_mol2.mol2 ├── environment.yml ├── example.pdb ├── example_aux.txt ├── fort.21_drug ├── visulization.py └── voxelization.py ├── LICENSE ├── Learning ├── example.h5 ├── labels ├── load_data.py ├── model.py ├── predict.py └── train.py ├── README.md └── image ├── 1a2sA.png └── eg_grid.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | env/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | downloads/ 16 | eggs/ 17 | .eggs/ 18 | lib/ 19 | lib64/ 20 | parts/ 21 | sdist/ 22 | var/ 23 | wheels/ 24 | *.egg-info/ 25 | .installed.cfg 26 | *.egg 27 | 28 | # PyInstaller 29 | # Usually these files are written by a python script from a template 30 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 31 | *.manifest 32 | *.spec 33 | 34 | # Installer logs 35 | pip-log.txt 36 | pip-delete-this-directory.txt 37 | 38 | # Unit test / coverage reports 39 | htmlcov/ 40 | .tox/ 41 | .coverage 42 | .coverage.* 43 | .cache 44 | nosetests.xml 45 | coverage.xml 46 | *.cover 47 | .hypothesis/ 48 | 49 | # Translations 50 | *.mo 51 | *.pot 52 | 53 | # Django stuff: 54 | *.log 55 | local_settings.py 56 | 57 | # Flask stuff: 58 | instance/ 59 | .webassets-cache 60 | 61 | # Scrapy stuff: 62 | .scrapy 63 | 64 | # Sphinx documentation 65 | docs/_build/ 66 | 67 | # PyBuilder 68 | target/ 69 | 70 | # Jupyter Notebook 71 | .ipynb_checkpoints 72 | 73 | # pyenv 74 | .python-version 75 | 76 | # celery beat schedule file 77 | celerybeat-schedule 78 | 79 | # SageMath parsed files 80 | *.sage.py 81 | 82 | # dotenv 83 | .env 84 | 85 | # virtualenv 86 | .venv 87 | venv/ 88 | ENV/ 89 | 90 | # Spyder project settings 91 | .spyderproject 92 | .spyproject 93 | 94 | # Rope project settings 95 | .ropeproject 96 | 97 | # mkdocs documentation 98 | /site 99 | 100 | # mypy 101 | .mypy_cache/ 102 | -------------------------------------------------------------------------------- /DataGeneration/build_grid.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | import numpy as np 4 | import scipy.spatial as sp 5 | import subprocess 6 | import os 7 | import os.path as osp 8 | 9 | import random 10 | import string 11 | 12 | import time 13 | 14 | import pandas as pd 15 | from openbabel import pybel 16 | from biopandas.pdb import PandasPdb 17 | from scipy.spatial.distance import cdist 18 | from scipy.spatial import Delaunay 19 | from sklearn.cluster import DBSCAN 20 | 21 | """ 22 | The following functions process the input pdb files by moving the center of pocket to [0,0,0] 23 | and align the protein to the principle axes of the pocket 24 | """ 25 | def normalize(v): 26 | """ 27 | vector normalization 28 | """ 29 | norm = np.linalg.norm(v) 30 | if norm == 0: 31 | return v 32 | return v / norm 33 | 34 | def vrrotvec(a,b): 35 | """ 36 | Function to rotate one vector to another, inspired by 37 | vrrotvec.m in MATLAB 38 | """ 39 | a = normalize(a) 40 | b = normalize(b) 41 | ax = normalize(np.cross(a,b)) 42 | angle = np.arccos(np.minimum(np.dot(a,b),[1])) 43 | if not np.any(ax): 44 | absa = np.abs(a) 45 | mind = np.argmin(absa) 46 | c = np.zeros((1,3)) 47 | c[mind] = 0 48 | ax = normalize(np.cross(a,c)) 49 | r = np.concatenate((ax,angle)) 50 | return r 51 | 52 | def vrrotvec2mat(r): 53 | """ 54 | Convert the axis-angle representation to the matrix representation of the 55 | rotation 56 | """ 57 | s = np.sin(r[3]) 58 | c = np.cos(r[3]) 59 | t = 1 - c 60 | 61 | n = normalize(r[0:3]) 62 | 63 | x = n[0] 64 | y = n[1] 65 | z = n[2] 66 | 67 | m = np.array( 68 | [[t*x*x + c, t*x*y - s*z, t*x*z + s*y], 69 | [t*x*y + s*z, t*y*y + c, t*y*z - s*x], 70 | [t*x*z - s*y, t*y*z + s*x, t*z*z + c]] 71 | ) 72 | return m 73 | 74 | def coords_transform(protein_coords, pocket_center, pocket_coords): 75 | """ 76 | Transform the protein coordinates so that the pocket is centered at [0,0,0] 77 | and align the protein coordinates according to the principle axes of the pocket 78 | """ 79 | pocket_coords = pocket_coords - pocket_center # center the pocket to 0,0,0 80 | protein_coords = protein_coords - pocket_center # center the protein according to the pocket center 81 | 82 | inertia = np.cov(pocket_coords.T) 83 | e_values, e_vectors = np.linalg.eig(inertia) 84 | sorted_index = np.argsort(e_values)[::-1] 85 | sorted_vectors = e_vectors[:,sorted_index] 86 | # Align the first principal axes to the X-axes 87 | rx = vrrotvec(np.array([1,0,0]),sorted_vectors[:,0]) 88 | mx = vrrotvec2mat(rx) 89 | pa1 = np.matmul(mx.T,sorted_vectors) 90 | # Align the second principal axes to the Y-axes 91 | ry = vrrotvec(np.array([0,1,0]),pa1[:,1]) 92 | my = vrrotvec2mat(ry) 93 | transformation_matrix = np.matmul(my.T,mx.T) 94 | # transform the protein coordinates to the center of the pocket and align with the principal 95 | # axes with the pocket 96 | transformed_coords = (np.matmul(transformation_matrix,protein_coords.T)).T 97 | return transformed_coords 98 | 99 | """ 100 | The following functions generate and refine the binding pocket grid 101 | """ 102 | def sGrid(center, r, N): 103 | """ 104 | Generate spherical grid points at the center provided 105 | """ 106 | center = np.array(center) 107 | x = np.linspace(center[0]-r,center[0]+r,N) 108 | y = np.linspace(center[1]-r,center[1]+r,N) 109 | z = np.linspace(center[2]-r,center[2]+r,N) 110 | #Generate grid of points 111 | X,Y,Z = np.meshgrid(x,y,z) 112 | data = np.vstack((X.ravel(),Y.ravel(),Z.ravel())).T 113 | # indexing the interior points 114 | tree = sp.cKDTree(data) 115 | mask = tree.query_ball_point(center,1.01*r) 116 | points_in_sphere = data[mask] 117 | return points_in_sphere 118 | 119 | def in_hull(p, hull): 120 | """ 121 | Test if a point is inside a convex hull 122 | """ 123 | if not isinstance(hull,Delaunay): 124 | hull = Delaunay(hull) 125 | return hull.find_simplex(p)>=0 126 | 127 | def site_refine(site, protein_coords): 128 | """ 129 | Binding site refinement 130 | """ 131 | # distance matrix for the removal of the grid points that are too close (<= 2 A) to any protein atoms 132 | dist = cdist(site[:,0:3], protein_coords, 'euclidean') 133 | inside_site = [] 134 | for i in range(len(dist)): 135 | if np.any(dist[i,:] < 2.1): 136 | continue 137 | else: 138 | inside_site.append(site[i,:]) 139 | inside_site = np.array(inside_site) 140 | # remove any grid points outside the convex hull 141 | in_bool = in_hull(inside_site[:,0:3], protein_coords) 142 | hull_site = inside_site[in_bool] 143 | # remove isolated grid points 144 | iso_dist = cdist(hull_site[:,0:3],hull_site[:,0:3]) 145 | labels = DBSCAN(eps = 1.414, min_samples = 3, metric = 'precomputed').fit_predict(iso_dist) 146 | unique, count = np.unique(labels, return_counts = True) 147 | sorted_label = [x for _,x in sorted(zip(count,unique))] 148 | sorted_label = np.array(sorted_label) 149 | null_index = np.argwhere(sorted_label == -1) 150 | cluster_labels = np.delete(sorted_label, null_index) 151 | save_labels = np.flip(cluster_labels, axis = 0)[0] 152 | final_label = np.zeros(labels.shape) 153 | for k in range(len(labels)): 154 | if labels[k] == save_labels: 155 | final_label[k] = 1 156 | else: 157 | continue 158 | final_label = np.array(final_label, dtype = bool) 159 | # potential energy normalization 160 | iso_site = hull_site[final_label] 161 | return iso_site 162 | 163 | """ 164 | The following functions create a new dummy mol2 file for the DFIRE calculation 165 | """ 166 | # replace the coordinates in the original string with new coordinates 167 | def replace_coord(original_string, new_coord): 168 | temp = '{:>8} {:>8} {:>8}'.format(new_coord[0],new_coord[1],new_coord[2]) 169 | new_string = original_string.replace(' 50.0000 51.0000 52.0000',temp) 170 | return new_string 171 | 172 | # replace the atom type in the original string with the new atom type 173 | def replace_type(original_string, new_type): 174 | temp = '{:6}'.format(new_type) 175 | new_string = original_string.replace('N.3 ',temp) 176 | return new_string 177 | 178 | # replace the residue type with new residue type 179 | def replace_res(original_string, new_res): 180 | temp = '{:6}'.format(new_res) 181 | new_string = original_string.replace('VAL1 ',temp) 182 | return new_string 183 | 184 | """ 185 | The following functions calculate the DFIRE potentials using the dligand program proivded in the DFIRE paper 186 | """ 187 | # UISNG THE DFIRE FUNCTION 188 | def single_potEnergy(loc1, ld_type_list, mol2_in_string, protein_file): 189 | temp_loc = loc1.round(4) 190 | Es = [] 191 | append = Es.append 192 | r1 = replace_coord(mol2_in_string, temp_loc) 193 | random_string = ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(11)) 194 | temp_filename = '/dev/shm/' + random_string +'.mol2' # TODO: this controls the place to generate the temporary mol2 file 195 | for item in ld_type_list: 196 | rrr = replace_type(r1, item) 197 | f = open(temp_filename,'w') 198 | f.write(rrr) 199 | f.close() 200 | child = subprocess.Popen(['./dligand-linux', temp_filename, protein_file],stdout=subprocess.PIPE) 201 | child.wait() 202 | out = child.communicate() 203 | out = out[0].decode("utf-8") 204 | a = out.replace('\n','') 205 | b = float(a) 206 | append(b) 207 | Es = np.array(Es) 208 | os.remove(temp_filename) 209 | return Es 210 | 211 | def minmax_scale(X,axis = 0): 212 | X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0)) 213 | X_scaled = X_std * (X.max() - X.min()) + X.min() 214 | return X_scaled 215 | 216 | def potEnergy(binding_site, mol2_in_path, protein_file): 217 | ld_type_list = ['C.2','C.3','C.ar','F','N.am','N.2','O.co2','N.ar','S.3','O.2','O.3','N.4','P.3','N.pl3'] 218 | total_potE = {'loc':[],'potE':[]} 219 | mol2_in_file = open(mol2_in_path) 220 | mol2_in_string = mol2_in_file.read() 221 | potEs = np.array([single_potEnergy(loc1, ld_type_list, mol2_in_string, protein_file) for loc1 in binding_site]) 222 | total_potE['potE'] = minmax_scale(potEs, axis = 0) 223 | total_potE['loc'] = binding_site 224 | return total_potE 225 | 226 | # main function 227 | class Grid3DBuilder(object): 228 | """ Given an align protein, generate the binding grid 229 | and calculate the DFIRE potentials """ 230 | @staticmethod 231 | def build(pdb_path, aux_input_path, r, N, output_folder, shape): 232 | """ 233 | Input: protein coordinates, path to the pdb file of the protein, radius, number of points along the radius. 234 | Output: dataframe of the binding grid, including coordinates and potentials for different atom types. 235 | """ 236 | # Parse the pdb file and the auxilary input file 237 | ppdb = PandasPdb().read_pdb(pdb_path) 238 | protein_df = ppdb.df['ATOM'] 239 | content = [] 240 | with open(aux_input_path) as in_strm: 241 | for line in in_strm.readlines(): 242 | l = line.replace('\n','') 243 | idx = l.index(':') 244 | content.append(l[idx+1:None]) 245 | resi = [int(x) for x in content[0].split(' ')] 246 | if len(content[1]) != 0: 247 | pocket_center = np.array([int(x) for x in content[1].split(' ')]) 248 | print('Center provided as {:.2f} {:.2f} {:.2f}'.format(pocket_center[0], pocket_center[1], pocket_center[2])) 249 | else: 250 | print('No center is provided') 251 | pocket_df = protein_df[protein_df['residue_number'].isin(resi)] 252 | pocket_coords = np.array([pocket_df['x_coord'], pocket_df['y_coord'], pocket_df['z_coord']]).T 253 | pocket_center = np.mean(pocket_coords, axis = 0) 254 | print('Center calculated as {:.2f} {:.2f} {:.2f}'.format(pocket_center[0], pocket_center[1], pocket_center[2])) 255 | protein_coords = np.array([protein_df['x_coord'], protein_df['y_coord'], protein_df['z_coord']]).T 256 | transformed_coords = coords_transform(protein_coords, pocket_center, pocket_coords) 257 | # Generate a new pdb file with transformed coordinates 258 | ppdb.df['ATOM']['x_coord'] = transformed_coords[:,0] 259 | ppdb.df['ATOM']['y_coord'] = transformed_coords[:,1] 260 | ppdb.df['ATOM']['z_coord'] = transformed_coords[:,2] 261 | output_trans_pdb_path = osp.join(output_folder, pdb_path[:-4] + '_transformed.pdb') 262 | print('Saving the binding pocket aligned pdb file to: {}.pdb'.format(pdb_path[:-4])) 263 | ppdb.to_pdb(output_trans_pdb_path) 264 | output_trans_mol2_path = osp.join(output_folder, pdb_path[:-4] + '_transformed.mol2') 265 | print('Saving the binding pocket aligned mol2 file to: {}.mol2'.format(pdb_path[:-4])) 266 | mol = next(pybel.readfile('pdb',output_trans_pdb_path)) 267 | mol.write('mol2',output_trans_mol2_path, overwrite=True) 268 | 269 | # Grid generation and DFIRE potential calculation 270 | print('The radius of the binding grid is: {}'.format(r)) 271 | print('The number of points along the diameter is: {}'.format(N)) 272 | binding_site = sGrid(np.array([0,0,0]), r, N) 273 | new_site = site_refine(binding_site, transformed_coords) 274 | print('The number of points in the refined binding set is {}'.format(len(new_site))) 275 | ss = time.time() 276 | if shape == True: 277 | print('Output only shape of the binidng grid') 278 | total_potE = new_site 279 | df = pd.DataFrame(total_potE, columns = ['x','y','z']) 280 | df.to_csv(osp.join(output_folder, pdb_path[:-4] + '.grid'), index=False) 281 | else: 282 | print('Calculating of the binding site potential energy') 283 | total_potE = potEnergy(new_site, 'dummy_mol2.mol2', output_trans_mol2_path) 284 | print('The total time of binding site potential energy computation is: {:.4f} seconds'.format(time.time() - ss)) 285 | df1 = pd.DataFrame(total_potE['loc'], columns = ['x','y','z']) 286 | df2 = pd.DataFrame(total_potE['potE'], columns = ['C.2','C.3','C.ar','F','N.am','N.2','O.co2','N.ar','S.3','O.2','O.3','N.4','P.3','N.pl3']) 287 | frames = [df1,df2] 288 | df = pd.concat(frames, axis=1) 289 | df.to_csv(osp.join(output_folder, pdb_path[:-4] + '.grid'), index=False) 290 | return df 291 | 292 | if __name__ == "__main__": 293 | parser = argparse.ArgumentParser() 294 | parser.add_argument('--f', type=str, required=True, help='Input pdb file name') 295 | parser.add_argument('--a', type=str, required=True, help='Input auxilary file name') 296 | parser.add_argument('--o', type=str, required=True, help='Output folder name') 297 | parser.add_argument('--r', type=int, required=True, help='Grid radius') 298 | parser.add_argument('--n', type=int, required=True, help='Number of points along diameter') 299 | parser.add_argument('--s', dest='shape', action='store_true', help='Return shape of grid only') 300 | parser.add_argument('--p', dest='shape', action='store_false') 301 | parser.set_defaults(shape=False) 302 | 303 | opt = parser.parse_args() 304 | Grid3DBuilder().build(opt.f, opt.a, opt.r, opt.n, opt.o, opt.shape) -------------------------------------------------------------------------------- /DataGeneration/dligand-linux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulimeng/DeepDrug3D/98992afc8a777bd71044caf4e5ef52746e404930/DataGeneration/dligand-linux -------------------------------------------------------------------------------- /DataGeneration/dummy_mol2.mol2: -------------------------------------------------------------------------------- 1 | @MOLECULE 2 | test_pdb.pdb 3 | 1 0 0 0 0 4 | SMALL 5 | GASTEIGER 6 | 7 | @ATOM 8 | 1 N 50.0000 51.0000 52.0000 N.3 1 VAL1 0.0000 9 | @BOND 10 | -------------------------------------------------------------------------------- /DataGeneration/environment.yml: -------------------------------------------------------------------------------- 1 | name: d3d 2 | channels: 3 | - conda-forge 4 | - defaults 5 | dependencies: 6 | - biopandas 7 | - openbabel 8 | - h5py 9 | prefix: /work/pulimeng/envs/ 10 | -------------------------------------------------------------------------------- /DataGeneration/example_aux.txt: -------------------------------------------------------------------------------- 1 | BindingResidueIDs:179 180 181 247 248 249 250 270 271 272 273 274 275 279 298 363 375 378 2 | BindingSiteCenter: 3 | -------------------------------------------------------------------------------- /DataGeneration/visulization.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | import numpy as np 4 | import pandas as pd 5 | import string 6 | 7 | def makeLine(coord, potE, k, num_chr_dict): 8 | atom = 'ATOM' 9 | atom_sn = str(k+1) 10 | atom_name = 'D1' 11 | hundred, one = np.divmod(k,676) 12 | ten, one = np.divmod(k-hundred*676,26) 13 | res_name = num_chr_dict[hundred] + num_chr_dict[ten] + num_chr_dict[one] 14 | E = potE 15 | x = '{:.3f}'.format(round(coord[0], 3)) 16 | y = '{:.3f}'.format(round(coord[1], 3)) 17 | z = '{:.3f}'.format(round(coord[2], 3)) 18 | EE = '{:.2f}'.format(round(E,2)) 19 | string = atom + ' '*2 + '{:>5}'.format(atom_sn) + ' ' + '{:4}'.format(atom_name) + ' ' \ 20 | + '{:>3}'.format(res_name) + ' '*2 + ' 1' + ' '*4 + '{:>8}'.format(x) + '{:>8}'.format(y) + '{:>8}'.format(z) \ 21 | + '{:>6}'.format('1.00') + '{:>6}'.format(EE) + ' '*8 + '\n' 22 | return string 23 | 24 | def main(opt): 25 | num_range = np.linspace(0,25,26, dtype = int) 26 | chr_range = list(string.ascii_uppercase[:27]) 27 | num_chr_dict = dict(zip(num_range,chr_range)) 28 | 29 | site = pd.read_csv(opt.i) 30 | site = site.to_numpy() 31 | with open ('{}_grid_channel_{}.pdb'.format(opt.i[:-5], opt.c),'w') as in_strm: 32 | for k in range(len(site)): 33 | temp_coords = site[k,:] 34 | cl = temp_coords[opt.c] 35 | temp_string = makeLine(temp_coords, cl, k, num_chr_dict) 36 | in_strm.write(temp_string) 37 | print('Number of points is ' + str(len(site))) 38 | 39 | if __name__ == "__main__": 40 | parser = argparse.ArgumentParser() 41 | parser.add_argument('--i', type=str, help='Input grid file') 42 | parser.add_argument('--c', type=int, help='Channel to visualize') 43 | opt = parser.parse_args() 44 | main(opt) -------------------------------------------------------------------------------- /DataGeneration/voxelization.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import h5py 3 | 4 | import numpy as np 5 | 6 | from build_grid import Grid3DBuilder 7 | 8 | def site_voxelization(site, r, N, shape): 9 | """ 10 | Convert the binding site information to numpy array 11 | """ 12 | site = np.array(site, dtype=np.float64) 13 | voxel_length = N+1 14 | voxel_start = -r 15 | voxel_end = r+1 16 | coords = site[:,0:3] 17 | if shape == False: 18 | print('DFIRE potential included in the voxel representation') 19 | potentials = site[:,3:] 20 | voxel = np.zeros(shape=(potentials.shape[1], voxel_length, voxel_length, voxel_length), 21 | dtype = np.float64) 22 | cnt = 0 23 | for x in range(voxel_start, voxel_end+1, 1): 24 | for y in range(voxel_start, voxel_end+1, 1): 25 | for z in range(voxel_start, voxel_end+1, 1): 26 | temp_voxloc = [x,y,z] 27 | distances = np.linalg.norm(coords - temp_voxloc, axis = 1) 28 | min_dist = np.min(distances) 29 | index = np.where(distances == min_dist) 30 | if min_dist < 0.01: 31 | voxel[:,x - voxel_start,y - voxel_start,z - voxel_start] = potentials[index,:] 32 | cnt += 1 33 | else: 34 | voxel[:,x - voxel_start,y - voxel_start,z - voxel_start] = np.ones((14,)) 35 | else: 36 | print('Binary occupation only for voxel representation') 37 | potentials = np.ones((site.shape[0],1)) 38 | voxel = np.zeros(shape=(1, voxel_length, voxel_length, voxel_length), 39 | dtype = np.float64) 40 | cnt = 0 41 | for x in range(voxel_start, voxel_end+1, 1): 42 | for y in range(voxel_start, voxel_end+1, 1): 43 | for z in range(voxel_start, voxel_end+1, 1): 44 | temp_voxloc = [x,y,z] 45 | distances = np.linalg.norm(coords - temp_voxloc, axis = 1) 46 | min_dist = np.min(distances) 47 | index = np.where(distances == min_dist) 48 | if min_dist < 0.01: 49 | voxel[:,x - voxel_start,y - voxel_start,z - voxel_start] = potentials[index,:] 50 | cnt += 1 51 | else: 52 | voxel[:,x - voxel_start,y - voxel_start,z - voxel_start] = np.zeros((1,)) 53 | return voxel 54 | 55 | class Vox3DBuilder(object): 56 | """ 57 | This class convert the pdb file to the voxel representation for the input 58 | of deep learning architecture. The conversion is around 30 mins. 59 | """ 60 | @staticmethod 61 | def voxelization(pdb_path, aux_input_path, r, N, output_folder, shape): 62 | print('Generating pocket grid representation') 63 | pocket_grid = Grid3DBuilder.build(pdb_path, aux_input_path, r, N, output_folder, shape) 64 | print('Converting to numpy array') 65 | pocket_voxel = site_voxelization(pocket_grid, r, N, shape) 66 | pocket_voxel = np.expand_dims(pocket_voxel, axis=0) 67 | with h5py.File('{}/{}.h5'.format(output_folder, pdb_path[:-4]), 'w') as f: 68 | f.create_dataset('X', data=pocket_voxel, compression='gzip', compression_opts=9) 69 | return pocket_voxel 70 | 71 | if __name__ == "__main__": 72 | parser = argparse.ArgumentParser() 73 | parser.add_argument('--f', type=str, required=True, help='Input pdb file name') 74 | parser.add_argument('--a', type=str, required=True, help='Input auxilary file name') 75 | parser.add_argument('--o', type=str, required=True, help='Output folder name') 76 | parser.add_argument('--r', type=int, required=True, help='Grid radius') 77 | parser.add_argument('--n', type=int, required=True, help='Number of points along diameter') 78 | parser.add_argument('--s', dest='shape', action='store_true', help='Return shape of grid only') 79 | parser.add_argument('--p', dest='shape', action='store_false') 80 | parser.set_defaults(shape=False) 81 | 82 | opt = parser.parse_args() 83 | Vox3DBuilder().voxelization(opt.f, opt.a, opt.r, opt.n, opt.o, opt.shape) -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /Learning/example.h5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulimeng/DeepDrug3D/98992afc8a777bd71044caf4e5ef52746e404930/Learning/example.h5 -------------------------------------------------------------------------------- /Learning/labels: -------------------------------------------------------------------------------- 1 | id,class 2 | 5i0iB,0 3 | 4br5A,0 4 | 3thzA,0 5 | 4hvcB,0 6 | 4w7sB,0 7 | 5ld1D,0 8 | 4uofA,0 9 | 5wdsA,0 10 | 1ukvB,0 11 | 1wurA,0 12 | 5c41A,0 13 | 5k5zD,0 14 | 1nzxA,0 15 | 1g6oB,0 16 | 4r7yB,0 17 | 1sxjD,0 18 | 3nd6A,0 19 | 2vpqB,0 20 | 4gt8A,0 21 | 3gviB,0 22 | 2hs4A,0 23 | 2cjwA,0 24 | 1gs5A,0 25 | 2vwbA,0 26 | 5l3wA,0 27 | 2w4kA,0 28 | 3ewsA,0 29 | 1t5cA,0 30 | 5jb2A,0 31 | 1aszC,0 32 | 1e19A,0 33 | 3tuiC,0 34 | 2fn4A,0 35 | 1w2cA,0 36 | 4irkA,0 37 | 3lv8A,0 38 | 1smcB,0 39 | 1u0hC,0 40 | 4ohxA,0 41 | 1jedB,0 42 | 5epvA,0 43 | 1o51A,0 44 | 3vmmA,0 45 | 4dcaA,0 46 | 1ej1B,0 47 | 3hxxA,0 48 | 1s59A,0 49 | 5idoA,0 50 | 3w6nB,0 51 | 4nl4A,0 52 | 5xdrA,0 53 | 5c03A,0 54 | 1glfA,0 55 | 1xscA,0 56 | 4v0lA,0 57 | 1fnnA,0 58 | 4r2iA,0 59 | 1ua2A,0 60 | 1xexA,0 61 | 5fg8A,0 62 | 1znyA,0 63 | 4k9aA,0 64 | 4v94E,0 65 | 2uz3B,0 66 | 3s8cA,0 67 | 5tvkB,0 68 | 4xivB,0 69 | 4c30A,0 70 | 4h2uB,0 71 | 5gg6B,0 72 | 3c4wB,0 73 | 1yhnA,0 74 | 4jn4A,0 75 | 4xhgA,0 76 | 4z9mD,0 77 | 2icxB,0 78 | 4gqtA,0 79 | 5fhhA,0 80 | 2i4oA,0 81 | 5cyoA,0 82 | 4dtfA,0 83 | 1bi9D,0 84 | 1w7iA,0 85 | 2hldK,0 86 | 2j0vB,0 87 | 5ix2B,0 88 | 1p7lA,0 89 | 3amtA,0 90 | 5ovoA,0 91 | 3qf7B,0 92 | 3o6xA,0 93 | 1m74A,0 94 | 3x1kD,0 95 | 2ww4A,0 96 | 4zdqA,0 97 | 1y56A,0 98 | 4qzbA,0 99 | 3s3tA,0 100 | 3hgmA,0 101 | 5e92A,0 102 | 3auyA,0 103 | 1e8xA,0 104 | 5grbB,0 105 | 3vn9A,0 106 | 3uq8A,0 107 | 5fsxA,0 108 | 4k2rA,0 109 | 4mwdB,0 110 | 1id0A,0 111 | 4gx1B,0 112 | 1xmmD,0 113 | 3cwzA,0 114 | 2e21C,0 115 | 5d6jA,0 116 | 1z0fA,0 117 | 4f96A,0 118 | 1e2fA,0 119 | 2v55C,0 120 | 4kxfH,0 121 | 3fzpA,0 122 | 3o98A,0 123 | 3c7nB,0 124 | 4itmA,0 125 | 4ehtA,0 126 | 5mznA,0 127 | 3c3eA,0 128 | 4gvjA,0 129 | 1nueA,0 130 | 4fe2B,0 131 | 2o8cD,0 132 | 1xdnA,0 133 | 3okaA,0 134 | 4yacA,0 135 | 3tifB,0 136 | 5aupD,0 137 | 2pmdA,0 138 | 5d0eB,0 139 | 2z1mA,0 140 | 3pyfA,0 141 | 4rzqA,0 142 | 2hupA,0 143 | 4l2iB,0 144 | 3miaA,0 145 | 1j09A,0 146 | 5jioA,0 147 | 4rqeA,0 148 | 5fbsA,0 149 | 1zxnC,0 150 | 3ubtB,0 151 | 2ns1B,0 152 | 2wjgA,0 153 | 1n06B,0 154 | 4nxuC,0 155 | 4b8wB,0 156 | 4fydA,0 157 | 4kxfB,0 158 | 5o8iB,0 159 | 5d4wA,0 160 | 2ce7C,0 161 | 4z1iD,0 162 | 2phnB,0 163 | 2p9kA,0 164 | 4dx2A,0 165 | 1iqpA,0 166 | 5uj7A,0 167 | 2cn5A,0 168 | 5irnA,0 169 | 3dz8A,0 170 | 3zfdA,0 171 | 4xlvA,0 172 | 3dinA,0 173 | 2akoA,0 174 | 2gm1A,0 175 | 5dn8A,0 176 | 3kh5A,0 177 | 5txxA,0 178 | 2bvcA,0 179 | 1gsaA,0 180 | 2kmxA,0 181 | 4mb2B,0 182 | 3gx9A,0 183 | 2nt8A,0 184 | 3jbzA,0 185 | 5it5A,0 186 | 4u0uA,0 187 | 3tdwA,0 188 | 5uivA,0 189 | 5tsgA,0 190 | 5e26B,0 191 | 1nksF,0 192 | 5xc3A,0 193 | 1u0jA,0 194 | 4ienA,0 195 | 2wbeC,0 196 | 3ih0A,0 197 | 4s0fB,0 198 | 1b6sB,0 199 | 5m06B,0 200 | 5m7gF,0 201 | 3gniB,0 202 | 3ozxB,0 203 | 3nieA,0 204 | 2jg1A,0 205 | 1rzuA,0 206 | 4a36A,0 207 | 1xtsA,0 208 | 4u98A,0 209 | 5e84B,0 210 | 4rx6B,0 211 | 2e2pA,0 212 | 3zkdC,0 213 | 4xckB,0 214 | 5axlA,0 215 | 3fdxA,0 216 | 5dn6G,0 217 | 1ei1B,0 218 | 4ciuA,0 219 | 3ryfB,0 220 | 5uxcA,0 221 | 3a4lB,0 222 | 1jqhA,0 223 | 2iryA,0 224 | 3wt0C,0 225 | 3peyA,0 226 | 1g4aA,0 227 | 4v02A,0 228 | 4cf7B,0 229 | 4rf8A,0 230 | 3fvqB,0 231 | 3hjnA,0 232 | 2rhlB,0 233 | 3nhbA,0 234 | 1ckmA,0 235 | 3ibgB,0 236 | 2xelA,0 237 | 2a5jA,0 238 | 4l16A,0 239 | 3a0tA,0 240 | 4jdcA,0 241 | 3ihlA,0 242 | 4xsvA,0 243 | 4usjA,0 244 | 2ozeA,0 245 | 2xzwC,0 246 | 3dt7A,0 247 | 3px0A,0 248 | 4utgA,0 249 | 3wwmA,0 250 | 5dn6F,0 251 | 4mdeA,0 252 | 1v3sA,0 253 | 3fwrB,0 254 | 2gksB,0 255 | 3t1oA,0 256 | 3bwdA,0 257 | 4am7B,0 258 | 4zs4B,0 259 | 4zvfA,0 260 | 4gnkA,0 261 | 1a8rC,0 262 | 5kk8B,0 263 | 5lb5B,0 264 | 2zanA,0 265 | 3v4sA,0 266 | 2q2tD,0 267 | 4fvqA,0 268 | 1qzrA,0 269 | 2dr3E,0 270 | 4xulA,0 271 | 4k4hI,0 272 | 1rk2B,0 273 | 4xj3A,0 274 | 3i12D,0 275 | 3veyA,0 276 | 2x2eA,0 277 | 3hfwA,0 278 | 3uboB,0 279 | 4rz3A,0 280 | 3ukdA,0 281 | 2xtiB,0 282 | 1ia9B,0 283 | 3jvvA,0 284 | 1qpcA,0 285 | 3w0sA,0 286 | 4hr2A,0 287 | 2srcA,0 288 | 4zgnA,0 289 | 4cr8D,0 290 | 2yw2B,0 291 | 4d2iA,0 292 | 1n6lA,0 293 | 3l86A,0 294 | 4mz7B,0 295 | 2qq0A,0 296 | 4f1mA,0 297 | 2d0oC,0 298 | 1yunB,0 299 | 2faqA,0 300 | 3w1gA,0 301 | 1xu4A,0 302 | 3lq3A,0 303 | 1nneC,0 304 | 1un9A,0 305 | 5vy9A,0 306 | 3a1eB,0 307 | 5f0zA,0 308 | 3tzlB,0 309 | 3se7D,0 310 | 4e84A,0 311 | 4x3vB,0 312 | 4lhyA,0 313 | 4v94C,0 314 | 3h4lB,0 315 | 2wtuA,0 316 | 2e9rC,0 317 | 2acxA,0 318 | 2wwwD,0 319 | 4ng4B,0 320 | 3qttB,0 321 | 3rq6A,0 322 | 3ikhA,0 323 | 4m7xA,0 324 | 5g5xA,0 325 | 2jfgA,0 326 | 2ojwC,0 327 | 1looA,0 328 | 3crcB,0 329 | 3o8dA,0 330 | 1bcpE,0 331 | 3uc5A,0 332 | 3k1jA,0 333 | 1w4rA,0 334 | 4ii3A,0 335 | 2q28A,0 336 | 5me6A,0 337 | 3ig8A,0 338 | 4p7aA,0 339 | 1ryaA,0 340 | 3hj1B,0 341 | 2qo7A,0 342 | 1agrB,0 343 | 4r8qA,0 344 | 2ff7A,0 345 | 2pknA,0 346 | 3reuA,0 347 | 1sylA,0 348 | 4hluC,0 349 | 2idvA,0 350 | 2mscC,0 351 | 3synA,0 352 | 4a6jA,0 353 | 1zp9B,0 354 | 3glfG,0 355 | 3kmwA,0 356 | 3ajeA,0 357 | 1ko5A,0 358 | 5kxqC,0 359 | 3eanD,0 360 | 2ckpA,0 361 | 5eqtA,0 362 | 5vqaA,0 363 | 3u06B,0 364 | 4lpsA,0 365 | 1gn8A,0 366 | 5bu2B,0 367 | 3q4pA,0 368 | 1qssC,0 369 | 3mfsA,0 370 | 4uczA,0 371 | 3tk1A,0 372 | 2clsA,0 373 | 1eyzA,0 374 | 2wqeA,0 375 | 1sxjB,0 376 | 1in5A,0 377 | 4h1gA,0 378 | 4djtB,0 379 | 3zy3A,0 380 | 5ck3D,0 381 | 1tuiA,0 382 | 2dejA,0 383 | 4gxqB,0 384 | 2pyjH,0 385 | 3zidA,0 386 | 1oe0B,0 387 | 5vytD,0 388 | 3lxxA,0 389 | 5errA,0 390 | 1nrjB,0 391 | 1isgA,0 392 | 5im3B,0 393 | 4o1pC,0 394 | 3nl6A,0 395 | 1vtkA,0 396 | 3ohrA,0 397 | 4crsA,0 398 | 2jgbA,0 399 | 4axeA,0 400 | 1wdtA,0 401 | 4j5sA,0 402 | 5oeaB,0 403 | 4yj1A,0 404 | 5kwkB,0 405 | 4edgA,0 406 | 2y65D,0 407 | 1ji0A,0 408 | 3gucA,0 409 | 2iopA,0 410 | 2hvwA,0 411 | 1z7eB,0 412 | 3ie7A,0 413 | 3ll3A,0 414 | 3kjgA,0 415 | 3t5dA,0 416 | 4ctaB,0 417 | 3iewA,0 418 | 4dxlA,0 419 | 5mioC,0 420 | 3kgdD,0 421 | 3fd6B,0 422 | 4xcqA,0 423 | 2db3E,0 424 | 4brdA,0 425 | 5kq5C,0 426 | 1zy5A,0 427 | 3iq0A,0 428 | 2yaaA,0 429 | 1u54A,0 430 | 3zq6D,0 431 | 5vgrA,0 432 | 2jjxB,0 433 | 5bn3A,0 434 | 5exsA,0 435 | 3g59A,0 436 | 5t48A,0 437 | 1gl7B,0 438 | 3dkpA,0 439 | 4ig8A,0 440 | 4bqlB,0 441 | 2varA,0 442 | 1nyrA,0 443 | 2y6pC,0 444 | 4gczA,0 445 | 3s6aA,0 446 | 5mb9B,0 447 | 1f7qA,0 448 | 2xkaF,0 449 | 3j9lG,0 450 | 2oapB,0 451 | 2iyvA,0 452 | 4feyA,0 453 | 2o08B,0 454 | 1wpgB,0 455 | 3k30A,0 456 | 3iwjA,0 457 | 2fb3A,0 458 | 3o8lA,0 459 | 3q9lA,0 460 | 5cmsE,0 461 | 1raaB,0 462 | 5ub8A,0 463 | 2vhqC,0 464 | 4p33A,0 465 | 3fceA,0 466 | 1skqA,0 467 | 1sx3A,0 468 | 5awmA,0 469 | 1y8qD,0 470 | 4v81A,0 471 | 3wjpA,0 472 | 1jwhA,0 473 | 2gekA,0 474 | 4ymuA,0 475 | 2xs0A,0 476 | 2chqA,0 477 | 5vcuA,0 478 | 4o4eA,0 479 | 3cwqA,0 480 | 5mwlA,0 481 | 2imwC,0 482 | 3j94A,0 483 | 4kvaB,0 484 | 5tk7A,0 485 | 1z0iA,0 486 | 2j9lC,0 487 | 4ax8A,0 488 | 3nizA,0 489 | 4jkiA,0 490 | 1rfuD,0 491 | 4ej7A,0 492 | 5h70A,0 493 | 3l2pA,0 494 | 4pfkA,0 495 | 2zetA,0 496 | 1rluA,0 497 | 2dvoA,0 498 | 1i7lB,0 499 | 3bfkB,0 500 | 4c5kB,0 501 | 1p72B,0 502 | 3i5xA,0 503 | 2r7kA,0 504 | 1ju9A,0 505 | 4nahB,0 506 | 3siwA,0 507 | 4qreA,0 508 | 5jzjA,0 509 | 3hqoD,0 510 | 3mhyB,0 511 | 4lgdA,0 512 | 5mvrA,0 513 | 2mjpA,0 514 | 3ab3A,0 515 | 1vj7A,0 516 | 4byfA,0 517 | 1g3iV,0 518 | 3pkpA,0 519 | 4yduC,0 520 | 2r8fA,0 521 | 2j1lA,0 522 | 4fg9B,0 523 | 1kf0A,0 524 | 3mwyA,0 525 | 4ic7A,0 526 | 4anjA,0 527 | 3m6aA,0 528 | 4ieeA,0 529 | 2owmC,0 530 | 4yhjA,0 531 | 3zf8A,0 532 | 1j7lA,0 533 | 5kg6A,0 534 | 4b47A,0 535 | 4nl0A,0 536 | 1s8fB,0 537 | 2w41B,0 538 | 5grfB,0 539 | 4xhoA,0 540 | 1nktB,0 541 | 5jqwA,0 542 | 3wbzE,0 543 | 3c7nA,0 544 | 2bjaB,0 545 | 2wqnA,0 546 | 2aqxA,0 547 | 2jlxB,0 548 | 5u03A,0 549 | 1ytmA,0 550 | 1sxjC,0 551 | 3ungA,0 552 | 5li9A,0 553 | 1kmnB,0 554 | 2cnqA,0 555 | 2vvgB,0 556 | 3orkA,0 557 | 5j7iA,0 558 | 2qthA,0 559 | 1cozA,0 560 | 3mufA,0 561 | 4dxaA,0 562 | 2r6rA,0 563 | 4fidA,0 564 | 4bgaC,0 565 | 2jasC,0 566 | 4yb7A,0 567 | 1z6yA,0 568 | 4j96B,0 569 | 2obmA,0 570 | 1pk8D,0 571 | 2c03B,0 572 | 4fs1C,0 573 | 1ojlE,0 574 | 1hi5A,0 575 | 4wjmA,0 576 | 5d0uA,0 577 | 5gzaA,0 578 | 1byuB,0 579 | 3lssB,0 580 | 3dm5A,0 581 | 5d3mA,0 582 | 1e22A,0 583 | 2fh5B,0 584 | 1zauA,0 585 | 1xmiD,0 586 | 1mabB,0 587 | 4nmjB,0 588 | 1svlA,0 589 | 4jd2B,0 590 | 1vfzA,0 591 | 3a5cA,0 592 | 3vqtA,0 593 | 3bh7A,0 594 | 3j5vA,0 595 | 4m69A,0 596 | 3jq3A,0 597 | 1huxA,0 598 | 3qpwA,0 599 | 2qsyA,0 600 | 2wmcA,0 601 | 1wuuC,0 602 | 1kaoA,0 603 | 3pnlB,0 604 | 4qqxC,0 605 | 4m8iA,0 606 | 4f9aC,0 607 | 1gkzA,0 608 | 4u0mA,0 609 | 5dtuA,0 610 | 1dj2A,0 611 | 4ueuA,0 612 | 2dykB,0 613 | 2rd5D,0 614 | 5x17A,0 615 | 4n57B,0 616 | 3v2uC,0 617 | 5hs2A,0 618 | 5tefA,0 619 | 2cxxA,0 620 | 4v94A,0 621 | 3fe2A,0 622 | 4a9xA,0 623 | 3uimA,0 624 | 2gvzB,0 625 | 1osnC,0 626 | 5dm3C,0 627 | 4iy0A,0 628 | 3vr6B,0 629 | 1pvoI,0 630 | 3crlA,0 631 | 2hf9A,0 632 | 5m04A,0 633 | 3fwyA,0 634 | 4oznA,0 635 | 1v1aA,0 636 | 2qxxA,0 637 | 4uyaA,0 638 | 2x6tB,0 639 | 2po0A,0 640 | 3ss8A,0 641 | 3d5wA,0 642 | 3iayC,0 643 | 1hurA,0 644 | 2be9B,0 645 | 2we3A,0 646 | 4oe4B,0 647 | 5ljwA,0 648 | 3ta1D,0 649 | 5ey1B,0 650 | 4javA,0 651 | 2z02A,0 652 | 3h5nA,0 653 | 1cm8A,0 654 | 1u7wC,0 655 | 1pkgA,0 656 | 5j1sA,0 657 | 2qkmB,0 658 | 2e5yB,0 659 | 1wnlA,0 660 | 5fwmA,0 661 | 5eq6A,0 662 | 2r86A,0 663 | 1j1bB,0 664 | 4c0sB,0 665 | 5uj7C,0 666 | 1dy3A,0 667 | 3meyB,0 668 | 1clqC,0 669 | 2dhrA,0 670 | 2ynmA,0 671 | 4lv8A,0 672 | 4erpD,0 673 | 1h65B,0 674 | 3dwlG,0 675 | 4czyB,0 676 | 3i8xA,0 677 | 1xmsA,0 678 | 1z22A,0 679 | 5v2lA,0 680 | 5db4A,0 681 | 1s4oA,0 682 | 3wfrE,0 683 | 3alnA,0 684 | 5udbI,0 685 | 3kexA,0 686 | 3alnC,0 687 | 5ve7A,0 688 | 5ekdB,0 689 | 1honA,0 690 | 5l2xA,0 691 | 4dqwA,0 692 | 3t35A,0 693 | 3zlbA,0 694 | 3ke5B,0 695 | 4znlB,0 696 | 5uyxD,0 697 | 4i4tA,0 698 | 4ww0B,0 699 | 3pfiA,0 700 | 2b92B,0 701 | 1h3eA,0 702 | 3is5F,0 703 | 4b45A,0 704 | 3h4mA,0 705 | 4bg4A,0 706 | 1fp6A,0 707 | 3x03A,0 708 | 2zs8A,0 709 | 4otpA,0 710 | 4auiA,0 711 | 1h4qA,0 712 | 2zdgC,0 713 | 1q1kA,0 714 | 3h3aB,0 715 | 2bnfA,0 716 | 3b0xA,0 717 | 1i52A,0 718 | 1sxjA,0 719 | 3i4lA,0 720 | 4zg4B,0 721 | 5gmdA,0 722 | 2p09A,0 723 | 3ohaA,0 724 | 1s16A,0 725 | 4c2wA,0 726 | 4r3aB,0 727 | 5h3tD,0 728 | 2cdnA,0 729 | 5gz9A,0 730 | 5goeA,0 731 | 1yp3C,0 732 | 5iunE,0 733 | 1zmcE,0 734 | 2no0A,0 735 | 4ku4A,0 736 | 3zm7A,0 737 | 4gkrB,0 738 | 5hrfA,0 739 | 5tb8A,0 740 | 1xx6A,0 741 | 3q53A,0 742 | 1k3cA,0 743 | 2cduB,0 744 | 4jztA,0 745 | 4bwpA,0 746 | 2nmvB,0 747 | 4ag5A,0 748 | 5ca9A,0 749 | 2w58A,0 750 | 3dcbA,0 751 | 4uxjC,0 752 | 1nlkA,0 753 | 5ftbA,0 754 | 5c46B,0 755 | 3hkoA,0 756 | 4d05A,0 757 | 3gbjA,0 758 | 5ce3B,0 759 | 4edhA,0 760 | 3uf6A,0 761 | 3pzpB,0 762 | 5l9qA,0 763 | 5hkkK,0 764 | 4lniA,0 765 | 4cidA,0 766 | 5d1oA,0 767 | 2oxcA,0 768 | 4e80C,0 769 | 4y9dA,0 770 | 2jkiB,0 771 | 4nlgA,0 772 | 1finA,0 773 | 4s35A,0 774 | 4o4jF,0 775 | 3mleB,0 776 | 5bpfC,0 777 | 2briA,0 778 | 5i0nA,0 779 | 5wm1C,0 780 | 1vfvA,0 781 | 3opyD,0 782 | 4iynB,0 783 | 4zqxA,0 784 | 2wssA,0 785 | 5fv0A,0 786 | 1qvrA,0 787 | 3ug6B,0 788 | 1m7gB,0 789 | 4rv7C,0 790 | 5w2iA,0 791 | 4qnyB,0 792 | 1xs1A,0 793 | 4h4kB,0 794 | 3lrpA,0 795 | 3qvfA,0 796 | 5gyzA,0 797 | 3akkA,0 798 | 3q86A,0 799 | 1s4eF,0 800 | 2gf0B,0 801 | 3innD,0 802 | 2pulA,0 803 | 5ih0A,0 804 | 1dj3B,0 805 | 2xtoA,0 806 | 4m15A,0 807 | 4kqbA,0 808 | 1dflA,0 809 | 2q2rA,0 810 | 3zbqA,0 811 | 3ty5A,0 812 | 4m9xC,0 813 | 5u1gB,0 814 | 1w5tB,0 815 | 5ftnA,0 816 | 3i7vA,0 817 | 1wkkA,0 818 | 1ixsB,0 819 | 4ydsA,0 820 | 3vx4B,0 821 | 1f1hA,0 822 | 2xszC,0 823 | 5vk4B,0 824 | 1miyA,0 825 | 4iw3B,0 826 | 3ab8A,0 827 | 3lkkB,0 828 | 2rsfA,0 829 | 4wtiC,0 830 | 5gomA,0 831 | 2cjaB,0 832 | 3k8dA,0 833 | 3karA,0 834 | 1b8aB,0 835 | 4xgxB,0 836 | 3kx2A,0 837 | 2vugA,0 838 | 3kn5B,0 839 | 5c3vA,0 840 | 5uj7B,0 841 | 3kvgB,0 842 | 1kv3F,0 843 | 3ez2B,0 844 | 3c5eA,0 845 | 1kk3A,0 846 | 2wtkC,0 847 | 4hndA,0 848 | 3wxmA,0 849 | 3lgxC,0 850 | 2bejA,0 851 | 5n9xA,0 852 | 1nb6A,0 853 | 3kb1A,0 854 | 4qdiA,0 855 | 2xwlB,0 856 | 2btqA,0 857 | 4i81E,0 858 | 2r6gB,0 859 | 3cr3A,0 860 | 4deeA,0 861 | 4r7zA,0 862 | 4bloL,0 863 | 5eomB,0 864 | 4fu0B,0 865 | 3lvqA,0 866 | 5we8B,0 867 | 5hvkA,0 868 | 4esvE,0 869 | 5f1fA,0 870 | 3kfeH,0 871 | 4lv5B,0 872 | 4gl2A,0 873 | 5ghiA,0 874 | 4z54A,0 875 | 5cb6A,0 876 | 5ik2E,0 877 | 3a7hB,0 878 | 4lt6A,0 879 | 2pbzA,0 880 | 2hw1A,0 881 | 1htwA,0 882 | 5bq5B,0 883 | 2jibA,0 884 | 4ffbB,0 885 | 3ncrC,0 886 | 3go6B,0 887 | 1p16B,0 888 | 5x40A,0 889 | 3wqtB,0 890 | 3k60A,0 891 | 1nm5B,0 892 | 3hx4A,0 893 | 4hqjD,0 894 | 4v4oY,0 895 | 3sfvA,0 896 | 5trdB,0 897 | 4uqoB,0 898 | 5ofrB,0 899 | 5ng0B,0 900 | 1sdmA,0 901 | 1csnA,0 902 | 2hixA,0 903 | 13pkA,0 904 | 2j4lH,0 905 | 1svwA,0 906 | 1gzfC,0 907 | 3qktD,0 908 | 3i0oA,0 909 | 4d79C,0 910 | 4qjiB,0 911 | 1tc0B,0 912 | 4y8vD,0 913 | 1lkxC,0 914 | 2xszF,0 915 | 2lkdA,0 916 | 4jz7A,0 917 | 3lduA,0 918 | 2r9vA,0 919 | 2x60B,0 920 | 1zfnA,0 921 | 3zc7A,0 922 | 5hzhA,0 923 | 1j1zB,0 924 | 4ww4B,0 925 | 5a07A,0 926 | 5lrtA,0 927 | 2a19B,0 928 | 5irrB,0 929 | 3dzvA,0 930 | 4frzA,0 931 | 3in1A,0 932 | 1ra7A,0 933 | 1r5nA,0 934 | 5jrjA,0 935 | 1v25B,0 936 | 1yfrA,0 937 | 1sazA,0 938 | 2c9oA,0 939 | 2ixfB,0 940 | 5ksdA,0 941 | 3wryC,0 942 | 4f7wA,0 943 | 4ei9A,0 944 | 5htvA,0 945 | 1b76A,0 946 | 1u6rA,0 947 | 4v8rL,0 948 | 4ix4B,0 949 | 3drbB,0 950 | 4r2lA,0 951 | 3c5cB,0 952 | 5uv4A,0 953 | 4i9bA,0 954 | 3oaaI,0 955 | 4zdjA,0 956 | 4xbrA,0 957 | 2g5iB,0 958 | 5bk4A,0 959 | 2bmdA,0 960 | 1pfkA,0 961 | 2h5eA,0 962 | 4idoB,0 963 | 1a0iA,0 964 | 1mkjA,0 965 | 1t7pC,0 966 | 4klzA,0 967 | 2if8A,0 968 | 2pywA,0 969 | 2bufC,0 970 | 4pl9A,0 971 | 3tk1B,0 972 | 5xhcF,0 973 | 4n67A,0 974 | 1g2vA,0 975 | 5a2wA,0 976 | 3mbiA,0 977 | 4hdgA,0 978 | 3uieB,0 979 | 3rsbB,0 980 | 5ifwB,0 981 | 5ji3E,0 982 | 3px6B,0 983 | 2a8sA,0 984 | 1frwA,0 985 | 2v7yA,0 986 | 3votA,0 987 | 4dz6A,0 988 | 5mlzA,0 989 | 2ocpA,0 990 | 4gx1A,0 991 | 4xruB,0 992 | 1yrbA,0 993 | 3c41A,0 994 | 2nunA,0 995 | 4y0xA,0 996 | 2qenA,0 997 | 4btjB,0 998 | 4cojB,0 999 | 4nh0B,0 1000 | 3rs9A,0 1001 | 4zclA,0 1002 | 4d82B,0 1003 | 4mitC,0 1004 | 2xj9A,0 1005 | 3pqcA,0 1006 | 2b51A,0 1007 | 2pmlA,0 1008 | 1jlrB,0 1009 | 1ty8A,0 1010 | 5jwqA,0 1011 | 3fpiA,0 1012 | 3ttcA,0 1013 | 2eryB,0 1014 | 5if9A,0 1015 | 1oxuA,0 1016 | 4x4oC,0 1017 | 2bq1B,0 1018 | 1a6eA,0 1019 | 3ko4D,0 1020 | 4j9vA,0 1021 | 3p23C,0 1022 | 2z7qA,0 1023 | 1f9aA,0 1024 | 2vedA,0 1025 | 5cm7A,0 1026 | 5dgxA,0 1027 | 1wc6C,0 1028 | 5khwA,0 1029 | 5vy9D,0 1030 | 4jz7C,0 1031 | 1x3mA,0 1032 | 5h68A,0 1033 | 2itxA,0 1034 | 4kyuA,0 1035 | 1tuuA,0 1036 | 2iutA,0 1037 | 3dlsA,0 1038 | 5f9zB,0 1039 | 1xr1A,0 1040 | 3lzzA,0 1041 | 3rwoA,0 1042 | 1m83A,0 1043 | 2j3eA,0 1044 | 4p9dA,0 1045 | 3wv9A,0 1046 | 5b0oB,0 1047 | 4ncfB,0 1048 | 2bfrA,0 1049 | 2vwiA,0 1050 | 2z09A,0 1051 | 2gxaG,0 1052 | 4i1vA,0 1053 | 3lj0A,0 1054 | 3umoA,0 1055 | 1sxjE,0 1056 | 3dzhA,0 1057 | 3dkcA,0 1058 | 1kyqA,0 1059 | 4xjcA,0 1060 | 5x9uD,0 1061 | 5j1jA,0 1062 | 3n8dB,0 1063 | 5y4zA,0 1064 | 1b4sA,0 1065 | 3ufxB,0 1066 | 2bm1A,0 1067 | 4ww9A,0 1068 | 2dyaB,0 1069 | 5jbqA,0 1070 | 4uxxC,0 1071 | 1w78A,0 1072 | 4u40A,0 1073 | 2cnwD,0 1074 | 4ffbA,0 1075 | 1kfdA,0 1076 | 2qbyC,0 1077 | 4wgjA,0 1078 | 1dv2B,0 1079 | 3lf0B,0 1080 | 1b0uA,0 1081 | 4qclA,0 1082 | 2dwcB,0 1083 | 1grnA,0 1084 | 3whkA,0 1085 | 5burA,0 1086 | 1v34A,0 1087 | 3hyoA,0 1088 | 2is6C,0 1089 | 4cvnA,0 1090 | 5mtvA,0 1091 | 4qhtC,0 1092 | 5ofoA,0 1093 | 4oauA,0 1094 | 5gufA,0 1095 | 3ax6B,0 1096 | 5ky2A,0 1097 | 3zecB,0 1098 | 4cqmC,0 1099 | 3gqkA,0 1100 | 4dpuA,0 1101 | 1iowA,0 1102 | 4zukA,0 1103 | 4y0vA,0 1104 | 3refA,0 1105 | 3emdA,0 1106 | 2xjaA,0 1107 | 2ooyF,0 1108 | 3r03A,0 1109 | 3hmnA,0 1110 | 2b9iA,0 1111 | 4wopA,0 1112 | 4iszA,0 1113 | 2q3hA,0 1114 | 5ck3B,0 1115 | 4kr7A,0 1116 | 5kutA,0 1117 | 3ffuA,0 1118 | 3cokA,0 1119 | 1p50A,0 1120 | 4rvoB,0 1121 | 3kalA,0 1122 | 3f2dC,0 1123 | 1cnfA,0 1124 | 4bebA,0 1125 | 2y4kA,0 1126 | 2dcnA,0 1127 | 4x2dA,0 1128 | 3ocmA,0 1129 | 1a82A,0 1130 | 3wryB,0 1131 | 1a6eB,0 1132 | 5hnvA,0 1133 | 4mo4C,0 1134 | 2ja1A,0 1135 | 2p5sB,0 1136 | 1q3sB,0 1137 | 5afuP,0 1138 | 5j5pB,0 1139 | 5g3yA,0 1140 | 2xzlA,0 1141 | 5oopA,0 1142 | 4v1tB,0 1143 | 1uf9C,0 1144 | 3ruqC,0 1145 | 3kkqA,0 1146 | 2awnA,0 1147 | 2ch6A,0 1148 | 2vt3B,0 1149 | 4eqmA,0 1150 | 4bivA,0 1151 | 1o6bA,0 1152 | 5svmA,0 1153 | 3uk6L,0 1154 | 3b6vA,0 1155 | 2shkB,0 1156 | 1xjqA,0 1157 | 4i3vA,0 1158 | 1zaoA,0 1159 | 2atvA,0 1160 | 1jwaA,0 1161 | 3k58A,0 1162 | 4krcA,0 1163 | 5e3iB,0 1164 | 3vzuA,0 1165 | 4b46A,0 1166 | 2vb6A,0 1167 | 2zu9B,0 1168 | 3qfuA,0 1169 | 5kwaB,0 1170 | 4orkB,0 1171 | 1phpA,0 1172 | 2peyB,0 1173 | 5ulsA,0 1174 | 4lrlC,0 1175 | 3h0lB,0 1176 | 3aloA,0 1177 | 3u5zA,0 1178 | 1xp8A,0 1179 | 1z0jA,0 1180 | 4xyjA,0 1181 | 2e87A,0 1182 | 3otbA,0 1183 | 3d8bB,0 1184 | 3ju6A,0 1185 | 1o0hA,0 1186 | 4i94B,0 1187 | 4r9uD,0 1188 | 1kvkA,0 1189 | 4cxaA,0 1190 | 1e0jA,0 1191 | 1mozB,0 1192 | 2gryA,0 1193 | 1v9pA,0 1194 | 1tz6B,0 1195 | 3bjuA,0 1196 | 5k2mB,0 1197 | 1s5gA,0 1198 | 1dawA,0 1199 | 5wu3B,0 1200 | 2g77B,0 1201 | 2bovA,0 1202 | 1djnB,0 1203 | 3ouuA,0 1204 | 4z87A,0 1205 | 4cdgA,0 1206 | 3k5iA,0 1207 | 1esqC,0 1208 | 3o3pB,0 1209 | 1g3qA,0 1210 | 5tjrA,0 1211 | 2h57B,0 1212 | 5dacA,0 1213 | 4lrjA,0 1214 | 2qz4A,0 1215 | 5tkyA,0 1216 | 5udsA,0 1217 | 5mcpH,0 1218 | 2fnaA,0 1219 | 4ho9A,0 1220 | 4a5aD,0 1221 | 1excA,0 1222 | 1q9sA,0 1223 | 5j2mA,0 1224 | 3w8qA,0 1225 | 3clvA,0 1226 | 3v00B,0 1227 | 3brbB,0 1228 | 4j7cB,0 1229 | 4i2iA,0 1230 | 2hv7B,0 1231 | 3q5iA,0 1232 | 4woeA,0 1233 | 2i5bA,0 1234 | 5k1pA,0 1235 | 1hp1A,0 1236 | 2wkpA,0 1237 | 4xd8A,0 1238 | 2j4lF,0 1239 | 4r39A,0 1240 | 3ge1B,0 1241 | 5idjA,0 1242 | 3gplA,0 1243 | 5c2kA,0 1244 | 3ll9B,0 1245 | 2xwnB,0 1246 | 2efcB,0 1247 | 2wwfC,0 1248 | 1ql6A,0 1249 | 4wc0B,0 1250 | 3qktA,0 1251 | 4rkzA,0 1252 | 1rf8A,0 1253 | 4g5yA,0 1254 | 3plsA,0 1255 | 3lkiB,0 1256 | 4mobA,0 1257 | 3eihA,0 1258 | 4oi4B,0 1259 | 1ny5B,0 1260 | 4v81X,0 1261 | 2h1fA,0 1262 | 3nbfC,0 1263 | 5h67A,0 1264 | 2q16A,0 1265 | 2ijmB,0 1266 | 2biyA,0 1267 | 2j4eB,0 1268 | 3epsA,0 1269 | 4dbqA,0 1270 | 5wdeA,0 1271 | 3hqdA,0 1272 | 2ztsA,0 1273 | 4ts7A,0 1274 | 3la6B,0 1275 | 2ogiB,0 1276 | 1p39A,0 1277 | 3hwsA,0 1278 | 1r0zA,0 1279 | 1nqtC,0 1280 | 5i9eA,0 1281 | 4bfmA,0 1282 | 4kgmA,0 1283 | 5xvuA,0 1284 | 2gjaA,0 1285 | 4hutA,0 1286 | 3iedA,0 1287 | 2y83E,0 1288 | 1jjvA,0 1289 | 4xf6B,0 1290 | 4phtF,0 1291 | 4p4tA,0 1292 | 2q0eA,0 1293 | 1qhyA,0 1294 | 4f6tA,0 1295 | 3jqmI,0 1296 | 1g41A,0 1297 | 2grjA,0 1298 | 2fp4B,0 1299 | 5c93A,0 1300 | 2ywvB,0 1301 | 2w6dB,0 1302 | 1d2eA,0 1303 | 4ydqA,0 1304 | 1h7uA,0 1305 | 1d5cA,0 1306 | 2z4rA,0 1307 | 1q99A,0 1308 | 1w1wD,0 1309 | 2d3aA,0 1310 | 2yhyA,0 1311 | 1gc5A,0 1312 | 3cnnA,0 1313 | 4phgA,0 1314 | 4ekkA,0 1315 | 2y9qA,0 1316 | 4fflA,0 1317 | 4xruD,0 1318 | 5bo7A,0 1319 | 4ebuA,0 1320 | 3tr5B,0 1321 | 5iz4A,0 1322 | 5jc3A,0 1323 | 1jcgA,0 1324 | 5lxtF,0 1325 | 1gqyB,0 1326 | 1uj2A,0 1327 | 4zkeA,0 1328 | 1nvfC,0 1329 | 3efsA,0 1330 | 3a37A,0 1331 | 4b6uA,0 1332 | 2c49A,0 1333 | 1xfvA,0 1334 | 3d2rB,0 1335 | 2g88A,0 1336 | 2v1uA,0 1337 | 4wnrA,0 1338 | 4ndoB,0 1339 | 4d86A,0 1340 | 3ng0A,0 1341 | 4v94H,0 1342 | 2an9A,0 1343 | 1mjhB,0 1344 | 1c4kA,0 1345 | 3oaaD,0 1346 | 5i9wA,0 1347 | 2oidB,0 1348 | 2ch4A,0 1349 | 1e94F,0 1350 | 2ivpA,0 1351 | 2r65A,0 1352 | 2hryA,0 1353 | 2a00A,0 1354 | 5x9hA,0 1355 | 2wpdF,0 1356 | 3ufgA,0 1357 | 2fsnB,0 1358 | 4c7oD,0 1359 | 3gqcA,0 1360 | 3k09F,0 1361 | 3uk6G,0 1362 | 5ku1A,0 1363 | 4ileA,0 1364 | 5huxA,0 1365 | 5m7nA,0 1366 | 5xoxA,0 1367 | 1kmnC,0 1368 | 2wojD,0 1369 | 1ukyA,0 1370 | 1zs6A,0 1371 | 1z84A,0 1372 | 3hziA,0 1373 | 3t4nC,0 1374 | 2a19C,0 1375 | 3iqxA,0 1376 | 2qu8A,0 1377 | 1vc8A,0 1378 | 5l22B,0 1379 | 3tiiB,0 1380 | 5in4B,0 1381 | 3acaA,0 1382 | 2j87D,0 1383 | 3dsrA,0 1384 | 4wvyA,0 1385 | 2g2fA,0 1386 | 2xd4A,0 1387 | 1b62A,0 1388 | 5ec0A,0 1389 | 1v8kA,0 1390 | 4l1kA,0 1391 | 4xcdA,0 1392 | 5l9nA,0 1393 | 2ksqA,0 1394 | 3c9uB,0 1395 | 3rfxA,0 1396 | 5ck3F,0 1397 | 1xjeA,0 1398 | 1ii0B,0 1399 | 5j5cA,0 1400 | 2d32A,0 1401 | 4j95D,0 1402 | 5dzcA,0 1403 | 2v2zB,0 1404 | 4bjrA,0 1405 | 4c7oC,0 1406 | 5supB,0 1407 | 1gq9A,0 1408 | 4fkyA,0 1409 | 2a9zA,0 1410 | 3qo7A,0 1411 | 1l0oA,0 1412 | 4fl2A,0 1413 | 2qbyD,0 1414 | 3io3A,0 1415 | 1qpgA,0 1416 | 5fg3A,0 1417 | 4o7lA,0 1418 | 3cisG,0 1419 | 3cb2A,0 1420 | 5tgcD,0 1421 | 2vawA,0 1422 | 3t99A,0 1423 | 1bofA,0 1424 | 5k7xE,0 1425 | 4mwhA,0 1426 | 5a8aA,0 1427 | 2npfB,0 1428 | 2we5A,0 1429 | 1cz7D,0 1430 | 4a5lA,0 1431 | 2r6fA,0 1432 | 1qhgA,0 1433 | 1t8eC,0 1434 | 2qg4E,0 1435 | 4v94F,0 1436 | 3f8pD,0 1437 | 3bf1A,0 1438 | 4yduB,0 1439 | 1mx0C,0 1440 | 1ksfA,0 1441 | 5d9hB,0 1442 | 3u67A,0 1443 | 1ri1A,0 1444 | 4lc1A,0 1445 | 5ldkB,0 1446 | 2nzjC,0 1447 | 4s1hA,0 1448 | 4pxaA,0 1449 | 2f02A,0 1450 | 2v55D,0 1451 | 3zq6B,0 1452 | 4czlA,0 1453 | 3dzdA,0 1454 | 5jzvA,0 1455 | 3pyzA,0 1456 | 3r5xA,0 1457 | 4wbdA,0 1458 | 3bsnA,0 1459 | 5ep4A,0 1460 | 3e70A,0 1461 | 2hyiE,0 1462 | 2vf7C,0 1463 | 5efaA,0 1464 | 5kwvA,0 1465 | 2oilA,0 1466 | 4jyzA,0 1467 | 1hwkD,0 1468 | 1a49C,0 1469 | 4arzB,0 1470 | 3ea0B,0 1471 | 1z2nA,0 1472 | 4y8vC,0 1473 | 3j15B,0 1474 | 1kp2A,0 1475 | 3eujA,0 1476 | 1f6bB,0 1477 | 5c1tA,0 1478 | 3gonA,0 1479 | 5foeB,0 1480 | 4pj1B,0 1481 | 5mcpE,0 1482 | 4wpuA,0 1483 | 2j9eB,0 1484 | 3vpbC,0 1485 | 3sl2A,0 1486 | 5dgkB,0 1487 | 1u5rA,0 1488 | 3zvmA,0 1489 | 2hcbD,0 1490 | 3n6mA,0 1491 | 2j3mB,0 1492 | 4hseA,0 1493 | 3g2fA,0 1494 | 2gjkA,0 1495 | 5fmqA,0 1496 | 4q5hA,0 1497 | 1h79A,0 1498 | 5d4oA,0 1499 | 4oh4A,0 1500 | 2wepA,0 1501 | 4ncnB,0 1502 | 4wh3A,0 1503 | 2fahA,0 1504 | 1wbpA,0 1505 | 2eg2A,0 1506 | 3l8kA,0 1507 | 5dqwA,0 1508 | 3qx9C,0 1509 | 3cphB,0 1510 | 3llmB,0 1511 | 4kp4A,0 1512 | 4ifcB,0 1513 | 1fwkA,0 1514 | 4cyjB,0 1515 | 4wb7B,0 1516 | 4arzA,0 1517 | 1wvcA,0 1518 | 3c23B,0 1519 | 2c39D,0 1520 | 2ga9B,0 1521 | 3eccA,0 1522 | 3doeA,0 1523 | 3lltA,0 1524 | 5xzvA,0 1525 | 2pc9B,0 1526 | 2j0wA,0 1527 | 2ywwA,0 1528 | 1br2A,0 1529 | 3egiB,0 1530 | 1br1A,0 1531 | 4usjC,0 1532 | 2jlgC,0 1533 | 3zznA,0 1534 | 3m93A,0 1535 | 1w5aB,0 1536 | 4bzqB,0 1537 | 5tthA,0 1538 | 1t6xB,0 1539 | 4atbA,0 1540 | 5eckD,0 1541 | 3lreB,0 1542 | 3hz6A,0 1543 | 2c98A,0 1544 | 4pdsA,0 1545 | 3pfqA,0 1546 | 5f1gA,0 1547 | 4yplB,0 1548 | 2zejB,0 1549 | 5u3cA,0 1550 | 1u3gA,0 1551 | 1vpaA,0 1552 | 5f1cB,0 1553 | 4zirB,0 1554 | 3ejmA,0 1555 | 1prhA,1 1556 | 5oheF,1 1557 | 2e74A,1 1558 | 1s5lP,1 1559 | 3s1iA,1 1560 | 3o5cA,1 1561 | 3mk7C,1 1562 | 4hkaA,1 1563 | 3ocdA,1 1564 | 1ngkB,1 1565 | 1cl6A,1 1566 | 2xykB,1 1567 | 5k8zB,1 1568 | 1jdlA,1 1569 | 2yevB,1 1570 | 3bxuB,1 1571 | 3ubrA,1 1572 | 1x3xA,1 1573 | 1h31A,1 1574 | 2uulA,1 1575 | 1a4eD,1 1576 | 1cc5A,1 1577 | 3cwbC,1 1578 | 2d2mA,1 1579 | 4rm4A,1 1580 | 1jebA,1 1581 | 1mytA,1 1582 | 1bvbA,1 1583 | 2xleA,1 1584 | 1sp3A,1 1585 | 1a7vA,1 1586 | 2r4zB,1 1587 | 4uylB,1 1588 | 3ut2A,1 1589 | 1ezvC,1 1590 | 2zonD,1 1591 | 3bk9A,1 1592 | 2bk9A,1 1593 | 5loqC,1 1594 | 1kx2A,1 1595 | 1hroA,1 1596 | 1outB,1 1597 | 4i91A,1 1598 | 1hlmA,1 1599 | 2je2A,1 1600 | 1qgwD,1 1601 | 3dmiA,1 1602 | 2fynA,1 1603 | 2zooA,1 1604 | 3fjwA,1 1605 | 3qzpB,1 1606 | 2k78A,1 1607 | 3ellA,1 1608 | 4ejgE,1 1609 | 5de0C,1 1610 | 4xtqA,1 1611 | 4bwiA,1 1612 | 1zrtB,1 1613 | 3pmqA,1 1614 | 1kn1B,1 1615 | 5y1iA,1 1616 | 1gwsA,1 1617 | 2r1hA,1 1618 | 1j77A,1 1619 | 1oagA,1 1620 | 3ov0A,1 1621 | 1bbhA,1 1622 | 1suoA,1 1623 | 1dw0A,1 1624 | 3tf8B,1 1625 | 4uc1A,1 1626 | 5b3vB,1 1627 | 1dvvA,1 1628 | 1yeaA,1 1629 | 4lmsC,1 1630 | 3awmA,1 1631 | 2d2mB,1 1632 | 1a56A,1 1633 | 4ympB,1 1634 | 1gcvA,1 1635 | 3qpiB,1 1636 | 1m56A,1 1637 | 3cslB,1 1638 | 3bcqA,1 1639 | 4u8uD,1 1640 | 1h97A,1 1641 | 2hpdB,1 1642 | 1os6A,1 1643 | 2pbjD,1 1644 | 2c7jA,1 1645 | 3caoA,1 1646 | 4jj0A,1 1647 | 5l91A,1 1648 | 2blfB,1 1649 | 1ctmA,1 1650 | 4atjB,1 1651 | 2eimA,1 1652 | 3mgxA,1 1653 | 4l6vS,1 1654 | 2w31A,1 1655 | 4b2nA,1 1656 | 2wtgA,1 1657 | 5c2vC,1 1658 | 1w7oA,1 1659 | 3a4hA,1 1660 | 2zzsA,1 1661 | 2bz9A,1 1662 | 1liaB,1 1663 | 3q08A,1 1664 | 4h2lB,1 1665 | 3mvcA,1 1666 | 1mjtA,1 1667 | 5mapB,1 1668 | 1c6sA,1 1669 | 1f4uA,1 1670 | 3dp5A,1 1671 | 4o7gB,1 1672 | 3qugA,1 1673 | 1wmuB,1 1674 | 1d06A,1 1675 | 2ynmC,1 1676 | 1z1nA,1 1677 | 4c0nA,1 1678 | 2j8wA,1 1679 | 4gd3I,1 1680 | 3w2zA,1 1681 | 4y7sA,1 1682 | 4eieA,1 1683 | 3jbbI,1 1684 | 1iw1A,1 1685 | 2d09A,1 1686 | 1hbhA,1 1687 | 1m7sA,1 1688 | 1x9fG,1 1689 | 4b2yA,1 1690 | 3u8pB,1 1691 | 1cpcB,1 1692 | 1gcvB,1 1693 | 4i3bA,1 1694 | 1uvxA,1 1695 | 1fj0A,1 1696 | 3nu1A,1 1697 | 5aurA,1 1698 | 4u8uB,1 1699 | 2olpA,1 1700 | 4j20A,1 1701 | 1c2nA,1 1702 | 1j0pA,1 1703 | 2y8hA,1 1704 | 2d2mD,1 1705 | 1b82A,1 1706 | 1mj4A,1 1707 | 1yhuB,1 1708 | 4qi3A,1 1709 | 1it2A,1 1710 | 1spgB,1 1711 | 1dvhA,1 1712 | 3ayfA,1 1713 | 1mhlB,1 1714 | 4fa4B,1 1715 | 1lhsA,1 1716 | 4l2mA,1 1717 | 4uiqA,1 1718 | 1cyfA,1 1719 | 4u8uC,1 1720 | 3lxiB,1 1721 | 1ithA,1 1722 | 4xxlA,1 1723 | 3ej6B,1 1724 | 3m97A,1 1725 | 1sk7A,1 1726 | 3gm6A,1 1727 | 2oyyA,1 1728 | 2l4dA,1 1729 | 4b8nB,1 1730 | 1zzhB,1 1731 | 2ozyA,1 1732 | 4xkbA,1 1733 | 2vgrC,1 1734 | 5o0tA,1 1735 | 4e37B,1 1736 | 1bbpA,1 1737 | 1schB,1 1738 | 3hf4A,1 1739 | 1qn2A,1 1740 | 5a13B,1 1741 | 5jggA,1 1742 | 1si8A,1 1743 | 3wcuD,1 1744 | 1spgA,1 1745 | 2uydA,1 1746 | 2x9oA,1 1747 | 101mA,1 1748 | 1binA,1 1749 | 2fynB,1 1750 | 1kqgC,1 1751 | 4lmsA,1 1752 | 2c7jB,1 1753 | 2czsA,1 1754 | 2ybqA,1 1755 | 3at5B,1 1756 | 5d1vA,1 1757 | 5vcgA,1 1758 | 1m1pA,1 1759 | 2a3mA,1 1760 | 1woxB,1 1761 | 2iufA,1 1762 | 1b8dA,1 1763 | 3tm9A,1 1764 | 5fygA,1 1765 | 1c7dA,1 1766 | 3mkbB,1 1767 | 1he2A,1 1768 | 2qppB,1 1769 | 1v4uA,1 1770 | 2vjhB,1 1771 | 4gydA,1 1772 | 2yp1C,1 1773 | 2vr0F,1 1774 | 4ourB,1 1775 | 5kzlA,1 1776 | 5xnmA,1 1777 | 3ucpA,1 1778 | 3gw9A,1 1779 | 3volA,1 1780 | 3czhA,1 1781 | 1ew6A,1 1782 | 1gyoA,1 1783 | 1x9fA,1 1784 | 4l6gA,1 1785 | 4u99A,1 1786 | 3h4nB,1 1787 | 5bv2B,1 1788 | 2civA,1 1789 | 5foiA,1 1790 | 5bv5A,1 1791 | 4aamA,1 1792 | 1h31B,1 1793 | 3ejeH,1 1794 | 1rz6A,1 1795 | 5tiaD,1 1796 | 2vjtB,1 1797 | 4xmhA,1 1798 | 5gj3A,1 1799 | 3aeqA,1 1800 | 2vjhA,1 1801 | 5vbuA,1 1802 | 1izoA,1 1803 | 3zhwA,1 1804 | 1f1cA,1 1805 | 5xnlV,1 1806 | 3qnsA,1 1807 | 2rfbA,1 1808 | 3wctB,1 1809 | 1i7yA,1 1810 | 1gdiA,1 1811 | 1q90A,1 1812 | 1fs7A,1 1813 | 1nr6A,1 1814 | 2ig3A,1 1815 | 1cchA,1 1816 | 3mk7A,1 1817 | 1f99B,1 1818 | 4u8uA,1 1819 | 4pwvA,1 1820 | 3qjtA,1 1821 | 3aq5A,1 1822 | 2zdoD,1 1823 | 2vjrB,1 1824 | 2nzaA,1 1825 | 4uiiA,1 1826 | 1drmA,1 1827 | 5b50A,1 1828 | 3ph2A,1 1829 | 4lmxC,1 1830 | 1dlwA,1 1831 | 5x24A,1 1832 | 3wctC,1 1833 | 1yhuC,1 1834 | 1b7vA,1 1835 | 1cxyA,1 1836 | 2dc3A,1 1837 | 4oqrA,1 1838 | 2zboA,1 1839 | 3o0rD,1 1840 | 5kyoA,1 1841 | 3t3zB,1 1842 | 4jouA,1 1843 | 5y8aA,1 1844 | 2q8qA,1 1845 | 1hbhB,1 1846 | 1akkA,1 1847 | 3vreB,1 1848 | 1ux8A,1 1849 | 5aqdA,1 1850 | 4rknA,1 1851 | 1d8uA,1 1852 | 1qjsA,1 1853 | 2uulB,1 1854 | 1ashA,1 1855 | 3zbyB,1 1856 | 4lm6B,1 1857 | 4gl5A,1 1858 | 4o1wA,1 1859 | 3tktA,1 1860 | 1cg5B,1 1861 | 1ci3A,1 1862 | 1h21A,1 1863 | 3rwlA,1 1864 | 3vp5A,1 1865 | 4cabA,1 1866 | 2i89A,1 1867 | 2flqB,1 1868 | 3wmmA,1 1869 | 5f1aA,1 1870 | 4tx3A,1 1871 | 4n4oA,1 1872 | 1gdvA,1 1873 | 3cx5D,1 1874 | 2c1vA,1 1875 | 5xnlC,1 1876 | 3wctA,1 1877 | 1mqfA,1 1878 | 2ri4D,1 1879 | 1iqcB,1 1880 | 3lf5A,1 1881 | 1or4A,1 1882 | 1v4wB,1 1883 | 5t2kB,1 1884 | 4l0dA,1 1885 | 4g1bA,1 1886 | 1xq5A,1 1887 | 1gu6B,1 1888 | 4j6dB,1 1889 | 1hbrA,1 1890 | 3hyuA,1 1891 | 3emmA,1 1892 | 5gweA,1 1893 | 3pt7B,1 1894 | 3vliA,1 1895 | 2d1eA,1 1896 | 1sy7B,1 1897 | 1gqaA,1 1898 | 3wfxA,1 1899 | 1qdbC,1 1900 | 3m5qA,1 1901 | 1gksA,1 1902 | 1xf6B,1 1903 | 5f6zA,1 1904 | 3hyuB,1 1905 | 1tguC,1 1906 | 2fw5A,1 1907 | 4n73A,1 1908 | 3rtlB,1 1909 | 2c1dA,1 1910 | 4i8vC,1 1911 | 3hq8A,1 1912 | 3o0rC,1 1913 | 1fdhB,1 1914 | 2vjrA,1 1915 | 5akpA,1 1916 | 1x9fB,1 1917 | 2e84A,1 1918 | 2k2nA,1 1919 | 1jjuA,1 1920 | 2bkmA,1 1921 | 2yk3A,1 1922 | 4xydB,1 1923 | 1aqeA,1 1924 | 4b4yA,1 1925 | 5fujA,1 1926 | 4uzvA,1 1927 | 4qi7A,1 1928 | 1ntfA,1 1929 | 4xxiA,1 1930 | 5llyC,1 1931 | 3h8tA,1 1932 | 4v2kA,1 1933 | 1d4cA,1 1934 | 2vhdA,1 1935 | 2ccyA,1 1936 | 2c2cA,1 1937 | 2q2oA,1 1938 | 1ecaA,1 1939 | 1qksA,1 1940 | 5dfxA,1 1941 | 1a4fB,1 1942 | 1x9fD,1 1943 | 4lm6A,1 1944 | 2dgeA,1 1945 | 4bf4D,1 1946 | 4qoqA,1 1947 | 4gu7A,1 1948 | 1jrxA,1 1949 | 4r1zA,1 1950 | 1ix3A,1 1951 | 3mk7B,1 1952 | 3ia8A,1 1953 | 2vzwB,1 1954 | 1c6oA,1 1955 | 3x15A,1 1956 | 2zdpA,1 1957 | 1w5cB,1 1958 | 1s66A,1 1959 | 4zvbA,1 1960 | 3nn2B,1 1961 | 2ibjA,1 1962 | 1dxtB,1 1963 | 5o1lB,1 1964 | 4b7fA,1 1965 | 1qn1A,1 1966 | 2yiuB,1 1967 | 5mg1A,1 1968 | 1ls9A,1 1969 | 1cyjA,1 1970 | 3notA,1 1971 | 1cnoG,1 1972 | 2noxB,1 1973 | 4xdiA,1 1974 | 1yhuA,1 1975 | 1ccrA,1 1976 | 4lmhD,1 1977 | 1n5uA,1 1978 | 1we1A,1 1979 | 1dm1A,1 1980 | 4n4jA,1 1981 | 1etpA,1 1982 | 2wh8B,1 1983 | 1u17A,1 1984 | 2bq4B,1 1985 | 1hbgA,1 1986 | 4w7jC,1 1987 | 5cx7E,1 1988 | 1soxA,1 1989 | 1fftE,1 1990 | 2oolA,1 1991 | 2r79A,1 1992 | 3qqrB,1 1993 | 2amoB,1 1994 | 3b42A,1 1995 | 5jnzB,1 1996 | 1a4fA,1 1997 | 1yiqA,1 1998 | 1f99A,1 1999 | 1f5oA,1 2000 | 2r1hB,1 2001 | 2bh4A,1 2002 | 4o4sG,1 2003 | 4d1nC,1 2004 | 3swjA,1 2005 | 3rivA,1 2006 | 2c8sA,1 2007 | 4czoA,1 2008 | 1s56B,1 2009 | 2ivfC,1 2010 | 1a9wB,1 2011 | 1jniA,1 2012 | 4jetA,1 2013 | 1allA,1 2014 | 1fcbA,1 2015 | 2wy4A,1 2016 | 3at5A,1 2017 | 3dbmA,1 2018 | 5aqdM,1 2019 | 1d7cA,1 2020 | 2zfoC,1 2021 | 1ofwA,1 2022 | 5xnlD,1 2023 | 1gjqA,1 2024 | 4cdpA,1 2025 | 1a2sA,1 2026 | 4e04B,1 2027 | 4egnB,1 2028 | 5irvC,1 2029 | 3e65B,1 2030 | 3gasA,1 2031 | 4lm8A,1 2032 | 3ziyA,1 2033 | 1hlbA,1 2034 | 2nwbA,1 2035 | 4yt3A,1 2036 | 2q7aA,1 2037 | 1ft9A,1 2038 | 1cxaA,1 2039 | 1fhfA,1 2040 | 4u72A,1 2041 | 1oj6B,1 2042 | 2c0kA,1 2043 | 1v75A,1 2044 | 1tu9A,1 2045 | 1co6A,1 2046 | 1x3kA,1 2047 | 3nerB,1 2048 | 1ogyB,1 2049 | 3vlmA,1 2050 | 1d1vA,1 2051 | 1bz1A,1 2052 | 5lo9A,1 2053 | 3zjhB,1 2054 | 1xbnA,1 2055 | 4zgxJ,1 2056 | 2vr0A,1 2057 | 1xq5B,1 2058 | 4pwaD,1 2059 | 1w2lA,1 2060 | 2zt9C,1 2061 | 4h0mA,1 2062 | 3t6dA,1 2063 | 3dr0A,1 2064 | 1kwjA,1 2065 | 4ljiA,1 2066 | 5ti9C,1 2067 | 1bccD,1 2068 | 1cg5A,1 2069 | 3r9cA,1 2070 | 1ebtA,1 2071 | 1oahB,1 2072 | 1ly8B,1 2073 | 3e4wA,1 2074 | 1e29A,1 2075 | 1h1oB,1 2076 | 4g1xA,1 2077 | 3p3zA,1 2078 | 2xkrA,1 2079 | 1cpcA,1 2080 | 1mg2D,1 2081 | 2vywA,1 2082 | 3dsjA,1 2083 | 2xtsB,1 2084 | 1t88A,1 2085 | 3hx9A,1 2086 | 2jxmB,1 2087 | 1egyA,1 2088 | 1wveB,1 2089 | 1outA,1 2090 | 5hh3B,1 2091 | 4cx9A,1 2092 | 3cp5A,1 2093 | 4wnuB,1 2094 | 1cpqA,1 2095 | 4hrrB,1 2096 | 5b6qA,1 2097 | 3a9fA,1 2098 | 1euoA,1 2099 | 2d0sA,1 2100 | 2fmyA,1 2101 | 2j0pA,1 2102 | 2k3vA,1 2103 | 1qgwA,1 2104 | 1jmxA,1 2105 | 4rlrA,1 2106 | 2xq1O,1 2107 | 1fcdD,1 2108 | 5ff1B,1 2109 | 3oa8B,1 2110 | 4uurA,1 2111 | 2d0wA,1 2112 | 2v7iA,1 2113 | 4nk2A,1 2114 | 3pc3A,1 2115 | 4h8qA,1 2116 | 3a15B,1 2117 | 2hreA,1 2118 | 2c1dB,1 2119 | 4hrrA,1 2120 | 2i96A,1 2121 | 1hdsD,1 2122 | 5v3uA,1 2123 | 5lthA,1 2124 | 1qwlA,1 2125 | 3ae3D,1 2126 | 1yq4D,1 2127 | 3sikB,1 2128 | 1kr7A,1 2129 | 5xnlW,1 2130 | 3bcqB,1 2131 | 4x8yA,1 2132 | 4ubsA,1 2133 | 1z24A,1 2134 | 4kmgA,1 2135 | 5l8rE,1 2136 | 2y4eB,1 2137 | 1be3C,1 2138 | 1c52A,1 2139 | 1gu2A,1 2140 | 1kibA,1 2141 | 1mwbA,1 2142 | 3egwC,1 2143 | 4f0tB,1 2144 | 3ml1B,1 2145 | 5b3iA,1 2146 | 1r3qA,1 2147 | 4fofA,1 2148 | 1gm4A,1 2149 | 4xe3A,1 2150 | 4bjaA,1 2151 | 154lA00,2 2152 | 1a3gB00,2 2153 | 1a4iB00,2 2154 | 1a5iA00,2 2155 | 1a8tA00,2 2156 | 1af7A00,2 2157 | 1aimA00,2 2158 | 1alwB00,2 2159 | 1apuA00,2 2160 | 1aqcC00,2 2161 | 1avpA00,2 2162 | 1awbA00,2 2163 | 1aymA00,2 2164 | 1ayxA00,2 2165 | 1b25C00,2 2166 | 1b2iA00,2 2167 | 1b4uB00,2 2168 | 1b5jA00,2 2169 | 1b8hB00,2 2170 | 1bagA00,2 2171 | 1bckA00,2 2172 | 1bdaA00,2 2173 | 1be9A00,2 2174 | 1bevA00,2 2175 | 1bh6A00,2 2176 | 1bkcA00,2 2177 | 1bobA00,2 2178 | 1booA00,2 2179 | 1bqsA00,2 2180 | 1c21A00,2 2181 | 1c3sA00,2 2182 | 1c3xA00,2 2183 | 1c5fA00,2 2184 | 1c7sA00,2 2185 | 1cebA00,2 2186 | 1cguA00,2 2187 | 1chmB00,2 2188 | 1cm0A00,2 2189 | 1covA00,2 2190 | 1ctuA00,2 2191 | 1cvrA00,2 2192 | 1cy6A00,2 2193 | 1cynA00,2 2194 | 1cziA00,2 2195 | 1d00D00,2 2196 | 1d6uB00,2 2197 | 1d9uA00,2 2198 | 1ddlC00,2 2199 | 1dl5A00,2 2200 | 1dp2A00,2 2201 | 1dppC00,2 2202 | 1dqeA00,2 2203 | 1ds1A00,2 2204 | 1dtdA00,2 2205 | 1dtpA00,2 2206 | 1e4nB00,2 2207 | 1e5iA00,2 2208 | 1e6aB00,2 2209 | 1ecqD00,2 2210 | 1ef9A00,2 2211 | 1ei6D00,2 2212 | 1ejeA00,2 2213 | 1ek2A00,2 2214 | 1emjC00,2 2215 | 1eobB00,2 2216 | 1eseA00,2 2217 | 1ev1A00,2 2218 | 1f0xB00,2 2219 | 1f1vA00,2 2220 | 1f2pA00,2 2221 | 1f3lA00,2 2222 | 1f4cB00,2 2223 | 1f8iC00,2 2224 | 1fayH00,2 2225 | 1fbdA00,2 2226 | 1fboA00,2 2227 | 1ffvC00,2 2228 | 1fnzA00,2 2229 | 1fo0A00,2 2230 | 1fo2A00,2 2231 | 1fpnA00,2 2232 | 1fpqA00,2 2233 | 1furB00,2 2234 | 1fvgA00,2 2235 | 1fw9A00,2 2236 | 1fy7A00,2 2237 | 1g0hB00,2 2238 | 1g1rC00,2 2239 | 1g60B00,2 2240 | 1gecA00,2 2241 | 1gffA00,2 2242 | 1gklA00,2 2243 | 1gkmA00,2 2244 | 1gnyA00,2 2245 | 1gq2K00,2 2246 | 1gt6A00,2 2247 | 1gxbC00,2 2248 | 1h2cA00,2 2249 | 1h41B00,2 2250 | 1h4hC00,2 2251 | 1h6eA00,2 2252 | 1h6hA00,2 2253 | 1h6wA00,2 2254 | 1h8gB00,2 2255 | 1h8pA00,2 2256 | 1hcnB00,2 2257 | 1ho3B00,2 2258 | 1horB00,2 2259 | 1hpcA00,2 2260 | 1hriA00,2 2261 | 1hshA00,2 2262 | 1hyiA00,2 2263 | 1i0rA00,2 2264 | 1i19B00,2 2265 | 1i1qA00,2 2266 | 1i2kA00,2 2267 | 1i3sB00,2 2268 | 1i7sC00,2 2269 | 1ia7A00,2 2270 | 1ib1G00,2 2271 | 1iktA00,2 2272 | 1iooA00,2 2273 | 1issB00,2 2274 | 1it7A00,2 2275 | 1j0kA00,2 2276 | 1j0nA00,2 2277 | 1j12C00,2 2278 | 1j1wB00,2 2279 | 1j2qL00,2 2280 | 1j36B00,2 2281 | 1j71A00,2 2282 | 1jdxA00,2 2283 | 1jgiA00,2 2284 | 1jibB00,2 2285 | 1jmuB00,2 2286 | 1js4A00,2 2287 | 1jslB00,2 2288 | 1jxnD00,2 2289 | 1jxzC00,2 2290 | 1k0eB00,2 2291 | 1k0gA00,2 2292 | 1k1wA00,2 2293 | 1k1yA00,2 2294 | 1k39C00,2 2295 | 1k9fA00,2 2296 | 1k9iH00,2 2297 | 1kapA00,2 2298 | 1kdzA00,2 2299 | 1kecB00,2 2300 | 1kkrB00,2 2301 | 1knfA00,2 2302 | 1kq0A00,2 2303 | 1kxhA00,2 2304 | 1kyfA00,2 2305 | 1l1yE00,2 2306 | 1la3A00,2 2307 | 1lbzA00,2 2308 | 1lf9A00,2 2309 | 1lmpA00,2 2310 | 1lopA00,2 2311 | 1lqyA00,2 2312 | 1lryA00,2 2313 | 1ltmA00,2 2314 | 1lu2B00,2 2315 | 1lv8B00,2 2316 | 1lvoC00,2 2317 | 1lwuB00,2 2318 | 1lwwC00,2 2319 | 1lxkA00,2 2320 | 1lxmA00,2 2321 | 1ly2A00,2 2322 | 1lzyA00,2 2323 | 1m01A00,2 2324 | 1m0sB00,2 2325 | 1m21A00,2 2326 | 1m2xA00,2 2327 | 1m4uA00,2 2328 | 1m6dA00,2 2329 | 1m72A00,2 2330 | 1m7eA00,2 2331 | 1maaC00,2 2332 | 1mc0A00,2 2333 | 1mhcA00,2 2334 | 1mskA00,2 2335 | 1n1yA00,2 2336 | 1n24A00,2 2337 | 1n2xA00,2 2338 | 1n3qB00,2 2339 | 1n47A00,2 2340 | 1n61C00,2 2341 | 1n6cA00,2 2342 | 1n71B00,2 2343 | 1n73F00,2 2344 | 1nh6A00,2 2345 | 1njuC00,2 2346 | 1nltA00,2 2347 | 1nopD00,2 2348 | 1npzA00,2 2349 | 1ns8B00,2 2350 | 1nw7A00,2 2351 | 1nx8A00,2 2352 | 1o5wA00,2 2353 | 1o70A00,2 2354 | 1o72A00,2 2355 | 1o8bB00,2 2356 | 1o8sA00,2 2357 | 1oa3A00,2 2358 | 1oc1A00,2 2359 | 1oclA00,2 2360 | 1ocuA00,2 2361 | 1of4A00,2 2362 | 1ofiD00,2 2363 | 1ogoA00,2 2364 | 1oijC00,2 2365 | 1oipA00,2 2366 | 1olmB00,2 2367 | 1onxA00,2 2368 | 1oopA00,2 2369 | 1otjB00,2 2370 | 1ox5A00,2 2371 | 1p0yC00,2 2372 | 1p42B00,2 2373 | 1p5rB00,2 2374 | 1p6eA00,2 2375 | 1p7wA00,2 2376 | 1padA00,2 2377 | 1pcmA00,2 2378 | 1pegA00,2 2379 | 1pgoA00,2 2380 | 1pnfA00,2 2381 | 1ppiA00,2 2382 | 1pq7A00,2 2383 | 1pqpA00,2 2384 | 1psoA00,2 2385 | 1pubA00,2 2386 | 1pz2A00,2 2387 | 1pz4A00,2 2388 | 1q33A00,2 2389 | 1q51G00,2 2390 | 1q6iB00,2 2391 | 1q8aB00,2 2392 | 1qapB00,2 2393 | 1qd1A00,2 2394 | 1qdqA00,2 2395 | 1qf1A00,2 2396 | 1qltA00,2 2397 | 1qngA00,2 2398 | 1qooD00,2 2399 | 1qpqA00,2 2400 | 1qs0A00,2 2401 | 1qs8A00,2 2402 | 1qsrA00,2 2403 | 1qu2B00,2 2404 | 1qxwA00,2 2405 | 1qzzA00,2 2406 | 1r17A00,2 2407 | 1r1aA00,2 2408 | 1r3nH00,2 2409 | 1r4wB00,2 2410 | 1rakA00,2 2411 | 1re0B00,2 2412 | 1redB00,2 2413 | 1remA00,2 2414 | 1rm6E00,2 2415 | 1rq5A00,2 2416 | 1rr2A00,2 2417 | 1rs0A00,2 2418 | 1rtvA00,2 2419 | 1rwcA00,2 2420 | 1rxuF00,2 2421 | 1rxzA00,2 2422 | 1rz0F00,2 2423 | 1s0iA00,2 2424 | 1s4vB00,2 2425 | 1s7lA00,2 2426 | 1sbfA00,2 2427 | 1sfqD00,2 2428 | 1sftB00,2 2429 | 1sfyC00,2 2430 | 1sg4B00,2 2431 | 1sioC00,2 2432 | 1siqA00,2 2433 | 1smrC00,2 2434 | 1so0A00,2 2435 | 1sojB00,2 2436 | 1sqcA00,2 2437 | 1sqfA00,2 2438 | 1srqC00,2 2439 | 1szoE00,2 2440 | 1szzA00,2 2441 | 1t2wA00,2 2442 | 1t3qF00,2 2443 | 1t47B00,2 2444 | 1t7oA00,2 2445 | 1tg6A00,2 2446 | 1ti1A00,2 2447 | 1tj4A00,2 2448 | 1tk2A00,2 2449 | 1tl9A00,2 2450 | 1tveB00,2 2451 | 1twiC00,2 2452 | 1tywA00,2 2453 | 1u1xA00,2 2454 | 1u2zB00,2 2455 | 1u4gA00,2 2456 | 1u5bA00,2 2457 | 1ucaA00,2 2458 | 1uefA00,2 2459 | 1ugyC00,2 2460 | 1uhvD00,2 2461 | 1ukmB00,2 2462 | 1umbA00,2 2463 | 1uqsA00,2 2464 | 1uscB00,2 2465 | 1uu5A00,2 2466 | 1uwsB00,2 2467 | 1uy2A00,2 2468 | 1uz0A00,2 2469 | 1v2bB00,2 2470 | 1v30A00,2 2471 | 1v3hA00,2 2472 | 1v3lB00,2 2473 | 1v6jC00,2 2474 | 1v9nA00,2 2475 | 1v9tB00,2 2476 | 1vbpA00,2 2477 | 1vd3A00,2 2478 | 1vdnA00,2 2479 | 1vfhA00,2 2480 | 1vmkA00,2 2481 | 1vrlC00,2 2482 | 1vsgA00,2 2483 | 1vz5B00,2 2484 | 1vzbA00,2 2485 | 1w1pB00,2 2486 | 1w27B00,2 2487 | 1w2tD00,2 2488 | 1w61A00,2 2489 | 1w6fA00,2 2490 | 1w7vC00,2 2491 | 1w88A00,2 2492 | 1w9oB00,2 2493 | 1w9wA00,2 2494 | 1w9xA00,2 2495 | 1wcqA00,2 2496 | 1wdaA00,2 2497 | 1wdiA00,2 2498 | 1weiA00,2 2499 | 1wkmA00,2 2500 | 1wmzC00,2 2501 | 1wnzA00,2 2502 | 1wogA00,2 2503 | 1ws1A00,2 2504 | 1wtaA00,2 2505 | 1wu5A00,2 2506 | 1wvmA00,2 2507 | 1wzuA00,2 2508 | 1x1dA00,2 2509 | 1x2hA00,2 2510 | 1x7pA00,2 2511 | 1x7wA00,2 2512 | 1x9iB00,2 2513 | 1xa8B00,2 2514 | 1xdhB00,2 2515 | 1xocA00,2 2516 | 1xpyD00,2 2517 | 1xq7A00,2 2518 | 1xrmA00,2 2519 | 1xskA00,2 2520 | 1xtbA00,2 2521 | 1xu3B00,2 2522 | 1xvuA00,2 2523 | 1xwqA00,2 2524 | 1xxrD00,2 2525 | 1y0gD00,2 2526 | 1y0yA00,2 2527 | 1y1aB00,2 2528 | 1y9qA00,2 2529 | 1yatA00,2 2530 | 1yg6H00,2 2531 | 1yk3G00,2 2532 | 1ynhC00,2 2533 | 1yquB00,2 2534 | 1yreB00,2 2535 | 1ywhA00,2 2536 | 1yy5B00,2 2537 | 1z7sA00,2 2538 | 1z8gA00,2 2539 | 1zapA00,2 2540 | 1zb7A00,2 2541 | 1zg9C00,2 2542 | 1zhfA00,2 2543 | 1zsqA00,2 2544 | 1zt4A00,2 2545 | 1zy1B00,2 2546 | 1zz1D00,2 2547 | 2a1xA00,2 2548 | 2a9gA00,2 2549 | 2aa9A00,2 2550 | 2aacA00,2 2551 | 2afxB00,2 2552 | 2agwA00,2 2553 | 2ahgB00,2 2554 | 2ahvA00,2 2555 | 2ai7A00,2 2556 | 2aijA00,2 2557 | 2ajhA00,2 2558 | 2aphA00,2 2559 | 2au9A00,2 2560 | 2b13B00,2 2561 | 2b2wA00,2 2562 | 2b4kA00,2 2563 | 2b5uC00,2 2564 | 2b7pC00,2 2565 | 2bdzB00,2 2566 | 2bfgF00,2 2567 | 2bgcA00,2 2568 | 2bh2B00,2 2569 | 2bj0A00,2 2570 | 2bkvB00,2 2571 | 2bnnA00,2 2572 | 2bqyA00,2 2573 | 2braA00,2 2574 | 2bu3A00,2 2575 | 2bvfA00,2 2576 | 2bwaB00,2 2577 | 2c2lA00,2 2578 | 2c4mC00,2 2579 | 2c53A00,2 2580 | 2c8nB00,2 2581 | 2c9kA00,2 2582 | 2cdpA00,2 2583 | 2cfeA00,2 2584 | 2cftA00,2 2585 | 2cfwA00,2 2586 | 2cgnA00,2 2587 | 2cicA00,2 2588 | 2cirA00,2 2589 | 2cmeC00,2 2590 | 2cntB00,2 2591 | 2cwwB00,2 2592 | 2cy2A00,2 2593 | 2d0hA00,2 2594 | 2d0qB00,2 2595 | 2d29A00,2 2596 | 2d5nB00,2 2597 | 2d5wA00,2 2598 | 2dd4F00,2 2599 | 2dd8C00,2 2600 | 2df8A00,2 2601 | 2dg5D00,2 2602 | 2djhA00,2 2603 | 2dkdA00,2 2604 | 2e1tA00,2 2605 | 2e2xA00,2 2606 | 2e4gA00,2 2607 | 2e4vA00,2 2608 | 2e50B00,2 2609 | 2e8zA00,2 2610 | 2eacB00,2 2611 | 2egwA00,2 2612 | 2ek9A00,2 2613 | 2eo7A00,2 2614 | 2erpB00,2 2615 | 2eugA00,2 2616 | 2ew5A00,2 2617 | 2eweA00,2 2618 | 2exkC00,2 2619 | 2exrA00,2 2620 | 2exuA00,2 2621 | 2f5tA00,2 2622 | 2f8gA00,2 2623 | 2fapA00,2 2624 | 2fcvB00,2 2625 | 2fg6A00,2 2626 | 2fgeA00,2 2627 | 2fh8A00,2 2628 | 2fiwA00,2 2629 | 2fmbA00,2 2630 | 2fn1A00,2 2631 | 2fo5B00,2 2632 | 2fp2B00,2 2633 | 2fr0A00,2 2634 | 2ft0A00,2 2635 | 2fugI00,2 2636 | 2fvkD00,2 2637 | 2fy5A00,2 2638 | 2fzmA00,2 2639 | 2g0bA00,2 2640 | 2g3nA00,2 2641 | 2g9uA00,2 2642 | 2gamB00,2 2643 | 2gbbD00,2 2644 | 2gd2D00,2 2645 | 2gduA00,2 2646 | 2gfjB00,2 2647 | 2gh4A00,2 2648 | 2gkeA00,2 2649 | 2gmjB00,2 2650 | 2gqtA00,2 2651 | 2h1tA00,2 2652 | 2h3qA00,2 2653 | 2h42A00,2 2654 | 2h5zB00,2 2655 | 2h6tA00,2 2656 | 2h8gA00,2 2657 | 2hbmA00,2 2658 | 2hbuA00,2 2659 | 2hd0B00,2 2660 | 2hfkB00,2 2661 | 2hgxA00,2 2662 | 2hmaA00,2 2663 | 2hnuA00,2 2664 | 2hu7B00,2 2665 | 2hxuA00,2 2666 | 2i4gA00,2 2667 | 2i54C00,2 2668 | 2i9uB00,2 2669 | 2ichA00,2 2670 | 2igqA00,2 2671 | 2igwA00,2 2672 | 2imlD00,2 2673 | 2iuwA00,2 2674 | 2ix9A00,2 2675 | 2ixcA00,2 2676 | 2iyoA00,2 2677 | 2j1vA00,2 2678 | 2j5sA00,2 2679 | 2j61A00,2 2680 | 2j66A00,2 2681 | 2j7qA00,2 2682 | 2j83A00,2 2683 | 2j9pB00,2 2684 | 2jf4A00,2 2685 | 2jfkB00,2 2686 | 2jgrA00,2 2687 | 2jigA00,2 2688 | 2jihB00,2 2689 | 2jjqA00,2 2690 | 2jk0G00,2 2691 | 2jkpA00,2 2692 | 2kr2A00,2 2693 | 2m0vA00,2 2694 | 2mnzA00,2 2695 | 2mtzA00,2 2696 | 2nqlB00,2 2697 | 2nr4A00,2 2698 | 2nspB00,2 2699 | 2nv4A00,2 2700 | 2nv9B00,2 2701 | 2nx5P00,2 2702 | 2o0vA00,2 2703 | 2o0zA00,2 2704 | 2o12A00,2 2705 | 2o1oB00,2 2706 | 2o1xA00,2 2707 | 2o1xC00,2 2708 | 2o2dC00,2 2709 | 2o74B00,2 2710 | 2o7bG00,2 2711 | 2o7iA00,2 2712 | 2o7pB00,2 2713 | 2o7vA00,2 2714 | 2o8jB00,2 2715 | 2oa6D00,2 2716 | 2og7A00,2 2717 | 2ogzA00,2 2718 | 2ojuB00,2 2719 | 2okcA00,2 2720 | 2opzA00,2 2721 | 2os3A00,2 2722 | 2otcA00,2 2723 | 2ou2A00,2 2724 | 2ou3A00,2 2725 | 2owxA00,2 2726 | 2p0rB00,2 2727 | 2p0wA00,2 2728 | 2p18A00,2 2729 | 2p34D00,2 2730 | 2p3dB00,2 2731 | 2p3vD00,2 2732 | 2p6eC00,2 2733 | 2pcuA00,2 2734 | 2pfrA00,2 2735 | 2pgzA00,2 2736 | 2phlA00,2 2737 | 2pi8C00,2 2738 | 2pk4A00,2 2739 | 2plmA00,2 2740 | 2poyB00,2 2741 | 2pp3B00,2 2742 | 2preA00,2 2743 | 2ps8B00,2 2744 | 2puwB00,2 2745 | 2puzB00,2 2746 | 2pv3A00,2 2747 | 2pyhB00,2 2748 | 2q09A00,2 2749 | 2q0jA00,2 2750 | 2q1aA00,2 2751 | 2q37A00,2 2752 | 2q5yA00,2 2753 | 2q6gB00,2 2754 | 2q7bA00,2 2755 | 2q7tB00,2 2756 | 2qa1A00,2 2757 | 2qa2A00,2 2758 | 2qbwA00,2 2759 | 2qbxA00,2 2760 | 2qdsA00,2 2761 | 2qeoB00,2 2762 | 2qguA00,2 2763 | 2qiaA00,2 2764 | 2qicA00,2 2765 | 2qikA00,2 2766 | 2qjnA00,2 2767 | 2qm2B00,2 2768 | 2qmcB00,2 2769 | 2qmxB00,2 2770 | 2qo3A00,2 2771 | 2qqoA00,2 2772 | 2qs8B00,2 2773 | 2qt5A00,2 2774 | 2qtlA00,2 2775 | 2qxfA00,2 2776 | 2qyqA00,2 2777 | 2qzxA00,2 2778 | 2r05A00,2 2779 | 2r2iA00,2 2780 | 2r4pA00,2 2781 | 2r58A00,2 2782 | 2r5vA00,2 2783 | 2r6sA00,2 2784 | 2r8qB00,2 2785 | 2r9eA00,2 2786 | 2ra5A00,2 2787 | 2rakA00,2 2788 | 2ramC00,2 2789 | 2rc4A00,2 2790 | 2rcuB00,2 2791 | 2rdbB00,2 2792 | 2rdeB00,2 2793 | 2rdqA00,2 2794 | 2rfyA00,2 2795 | 2rghA00,2 2796 | 2rgoA00,2 2797 | 2rjpB00,2 2798 | 2rkgA00,2 2799 | 2rl1A00,2 2800 | 2rmcE00,2 2801 | 2shpB00,2 2802 | 2sn3A00,2 2803 | 2uvfA00,2 2804 | 2uw1A00,2 2805 | 2uzfA00,2 2806 | 2uzjA00,2 2807 | 2v0gC00,2 2808 | 2v10B00,2 2809 | 2v4vA00,2 2810 | 2v64C00,2 2811 | 2v74A00,2 2812 | 2v89B00,2 2813 | 2v8kA00,2 2814 | 2v9gC00,2 2815 | 2vaxK00,2 2816 | 2vcdA00,2 2817 | 2vf5A00,2 2818 | 2vfcA00,2 2819 | 2vfrA00,2 2820 | 2vkhC00,2 2821 | 2vl4A00,2 2822 | 2vnfC00,2 2823 | 2vngA00,2 2824 | 2vpeA00,2 2825 | 2vr3A00,2 2826 | 2vraA00,2 2827 | 2vrqB00,2 2828 | 2vssB00,2 2829 | 2vu9A00,2 2830 | 2vurB00,2 2831 | 2vvlH00,2 2832 | 2vxjE00,2 2833 | 2vy0B00,2 2834 | 2vyaB00,2 2835 | 2vytA00,2 2836 | 2vzsB00,2 2837 | 2vzzA00,2 2838 | 2w2iC00,2 2839 | 2w39A00,2 2840 | 2w3yB00,2 2841 | 2w47A00,2 2842 | 2w48A00,2 2843 | 2w55E00,2 2844 | 2w90A00,2 2845 | 2wabA00,2 2846 | 2walA00,2 2847 | 2wbqA00,2 2848 | 2wcoA00,2 2849 | 2wcuA00,2 2850 | 2wcvB00,2 2851 | 2wdwB00,2 2852 | 2weuB00,2 2853 | 2wfjA00,2 2854 | 2witC00,2 2855 | 2wl9B00,2 2856 | 2wmgA00,2 2857 | 2wnuF00,2 2858 | 2wpxA00,2 2859 | 2wr8A00,2 2860 | 2wv4A00,2 2861 | 2wvtA00,2 2862 | 2ww0H00,2 2863 | 2ww2B00,2 2864 | 2wzgA00,2 2865 | 2x1eA00,2 2866 | 2x1nD00,2 2867 | 2x34B00,2 2868 | 2x4yI00,2 2869 | 2x5iA00,2 2870 | 2x6yA00,2 2871 | 2x7kA00,2 2872 | 2x8tB00,2 2873 | 2xe4A00,2 2874 | 2xfyA00,2 2875 | 2xhkB00,2 2876 | 2xlcF00,2 2877 | 2xm1A00,2 2878 | 2xm7A00,2 2879 | 2xn1A00,2 2880 | 2xonA00,2 2881 | 2xq0A00,2 2882 | 2xryA00,2 2883 | 2xt9A00,2 2884 | 2xu4A00,2 2885 | 2xvkA00,2 2886 | 2y08B00,2 2887 | 2y0mA00,2 2888 | 2y1fB00,2 2889 | 2y2lA00,2 2890 | 2y55C00,2 2891 | 2y5yB00,2 2892 | 2y6gA00,2 2893 | 2y7hB00,2 2894 | 2y7lA00,2 2895 | 2y9xA00,2 2896 | 2yb0D00,2 2897 | 2yb9A00,2 2898 | 2yd8A00,2 2899 | 2yepC00,2 2900 | 2yfoA00,2 2901 | 2yftA00,2 2902 | 2yhgA00,2 2903 | 2ylzA00,2 2904 | 2ynbB00,2 2905 | 2yoeC00,2 2906 | 2yr4B00,2 2907 | 2ytzB00,2 2908 | 2yvwA00,2 2909 | 2yx1B00,2 2910 | 2yyiA00,2 2911 | 2yzoB00,2 2912 | 2z23A00,2 2913 | 2z4eF00,2 2914 | 2z52A00,2 2915 | 2z5sA00,2 2916 | 2z6vA00,2 2917 | 2z70B00,2 2918 | 2z71B00,2 2919 | 2zblB00,2 2920 | 2zecC00,2 2921 | 2zfnA00,2 2922 | 2zi8B00,2 2923 | 2zicA00,2 2924 | 2zifB00,2 2925 | 2zj3A00,2 2926 | 2zjdC00,2 2927 | 2zjfA00,2 2928 | 2zjlA00,2 2929 | 2zl4G00,2 2930 | 2zmlD00,2 2931 | 2zneB00,2 2932 | 2zofB00,2 2933 | 2zokE00,2 2934 | 2zpaB00,2 2935 | 2zpyA00,2 2936 | 2zsiA00,2 2937 | 2zu2A00,2 2938 | 2zuwB00,2 2939 | 2zvwD00,2 2940 | 2zw5B00,2 2941 | 2zw9B00,2 2942 | 2zxdB00,2 2943 | 2zyaA00,2 2944 | 2zyiB00,2 2945 | 2zzgA00,2 2946 | 2zznA00,2 2947 | 3a06B00,2 2948 | 3a1iA00,2 2949 | 3a35A00,2 2950 | 3a3iB00,2 2951 | 3a4aA00,2 2952 | 3a6jE00,2 2953 | 3a75D00,2 2954 | 3a8iA00,2 2955 | 3ac0C00,2 2956 | 3afjA00,2 2957 | 3aflA00,2 2958 | 3ageA00,2 2959 | 3agoA00,2 2960 | 3ah1B00,2 2961 | 3ahrA00,2 2962 | 3ahyA00,2 2963 | 3aiqA00,2 2964 | 3al6B00,2 2965 | 3aluD00,2 2966 | 3amqD00,2 2967 | 3ankA00,2 2968 | 3aosB00,2 2969 | 3au8A00,2 2970 | 3awiB00,2 2971 | 3axtA00,2 2972 | 3b00D00,2 2973 | 3b07B00,2 2974 | 3b3wA00,2 2975 | 3b5iA00,2 2976 | 3b7qA00,2 2977 | 3b8yB00,2 2978 | 3b9aA00,2 2979 | 3b9oA00,2 2980 | 3bbhA00,2 2981 | 3be7G00,2 2982 | 3bg3B00,2 2983 | 3bk2A00,2 2984 | 3bksA00,2 2985 | 3bkvA00,2 2986 | 3blqB00,2 2987 | 3bo5A00,2 2988 | 3bo7B00,2 2989 | 3bpfC00,2 2990 | 3bpmA00,2 2991 | 3breB00,2 2992 | 3bsfB00,2 2993 | 3bu0A00,2 2994 | 3buaD00,2 2995 | 3bxdA00,2 2996 | 3bxhB00,2 2997 | 3c0oA00,2 2998 | 3c0zB00,2 2999 | 3c1hA00,2 3000 | 3c2rB00,2 3001 | 3c2uB00,2 3002 | 3c49A00,2 3003 | 3c7fA00,2 3004 | 3c8wB00,2 3005 | 3cdgA00,2 3006 | 3ckbB00,2 3007 | 3claA00,2 3008 | 3cnvC00,2 3009 | 3co8A00,2 3010 | 3cpaA00,2 3011 | 3ct5A00,2 3012 | 3cvuC00,2 3013 | 3czkA00,2 3014 | 3d1rA00,2 3015 | 3d2sH00,2 3016 | 3d2zA00,2 3017 | 3d3hA00,2 3018 | 3d3xA00,2 3019 | 3d44A00,2 3020 | 3d46D00,2 3021 | 3d6nA00,2 3022 | 3d75A00,2 3023 | 3dddA00,2 3024 | 3dktC00,2 3025 | 3dmfA00,2 3026 | 3doiB00,2 3027 | 3dowA00,2 3028 | 3dr8B00,2 3029 | 3dy9A00,2 3030 | 3e0mB00,2 3031 | 3e4pA00,2 3032 | 3e4vA00,2 3033 | 3e6bB00,2 3034 | 3e78A00,2 3035 | 3e7jB00,2 3036 | 3e8wA00,2 3037 | 3e9sA00,2 3038 | 3eb9A00,2 3039 | 3ebhA00,2 3040 | 3ecnB00,2 3041 | 3edjA00,2 3042 | 3ekgB00,2 3043 | 3ekmA00,2 3044 | 3emwA00,2 3045 | 3emyA00,2 3046 | 3engA00,2 3047 | 3envA00,2 3048 | 3eonC00,2 3049 | 3eovB00,2 3050 | 3ephA00,2 3051 | 3eq9A00,2 3052 | 3eryB00,2 3053 | 3es7A00,2 3054 | 3etrE00,2 3055 | 3euvB00,2 3056 | 3exhC00,2 3057 | 3exhE00,2 3058 | 3f70A00,2 3059 | 3f7tA00,2 3060 | 3f9cB00,2 3061 | 3fbuA00,2 3062 | 3fg4B00,2 3063 | 3fhvA00,2 3064 | 3fmqA00,2 3065 | 3fmwA00,2 3066 | 3fnuA00,2 3067 | 3fr8B00,2 3068 | 3fssA00,2 3069 | 3fv3G00,2 3070 | 3fvlB00,2 3071 | 3fxlA00,2 3072 | 3fxrA00,2 3073 | 3fz5A00,2 3074 | 3g3uB00,2 3075 | 3g5kA00,2 3076 | 3g68B00,2 3077 | 3g6nA00,2 3078 | 3gd9A00,2 3079 | 3gf3A00,2 3080 | 3gguB00,2 3081 | 3gh5A00,2 3082 | 3ghgE00,2 3083 | 3gjbB00,2 3084 | 3gm5A00,2 3085 | 3gmvA00,2 3086 | 3goyA00,2 3087 | 3gyhA00,2 3088 | 3gyqB00,2 3089 | 3h0mJ00,2 3090 | 3h3lB00,2 3091 | 3h5zA00,2 3092 | 3h62A00,2 3093 | 3h7jB00,2 3094 | 3h8gC00,2 3095 | 3h9kD00,2 3096 | 3hhiB00,2 3097 | 3hhwC00,2 3098 | 3hi0B00,2 3099 | 3hk9E00,2 3100 | 3hklB00,2 3101 | 3hkvA00,2 3102 | 3hmzA00,2 3103 | 3hpeA00,2 3104 | 3hpyB00,2 3105 | 3hrdC00,2 3106 | 3ht5A00,2 3107 | 3htxD00,2 3108 | 3hw4D00,2 3109 | 3hwkE00,2 3110 | 3hwoB00,2 3111 | 3hxfB00,2 3112 | 3i0uA00,2 3113 | 3i3aB00,2 3114 | 3i3lA00,2 3115 | 3i45A00,2 3116 | 3i53A00,2 3117 | 3i5aA00,2 3118 | 3i6mA00,2 3119 | 3i98A00,2 3120 | 3i99A00,2 3121 | 3ie1B00,2 3122 | 3ifzB00,2 3123 | 3ihzA00,2 3124 | 3iiiA00,2 3125 | 3ikbB00,2 3126 | 3ilfA00,2 3127 | 3ioqA00,2 3128 | 3it3A00,2 3129 | 3it6A00,2 3130 | 3it7B00,2 3131 | 3itcA00,2 3132 | 3iuqA00,2 3133 | 3iylR00,2 3134 | 3jbeA00,2 3135 | 3jtkB00,2 3136 | 3jucA00,2 3137 | 3jyjA00,2 3138 | 3k3oA00,2 3139 | 3k4dB00,2 3140 | 3k6lA00,2 3141 | 3k7vB00,2 3142 | 3k87B00,2 3143 | 3k8gB00,2 3144 | 3kb4C00,2 3145 | 3kdzB00,2 3146 | 3kgyA00,2 3147 | 3khsD00,2 3148 | 3ki6A00,2 3149 | 3kjrB00,2 3150 | 3kqiA00,2 3151 | 3kt7A00,2 3152 | 3kvaA00,2 3153 | 3kvnB00,2 3154 | 3kw0A00,2 3155 | 3kw5A00,2 3156 | 3kxaD00,2 3157 | 3kyqA00,2 3158 | 3kz7A00,2 3159 | 3l11A00,2 3160 | 3l4kA00,2 3161 | 3l4lA00,2 3162 | 3l95C00,2 3163 | 3la7A00,2 3164 | 3lbaA00,2 3165 | 3ld4A00,2 3166 | 3ldbA00,2 3167 | 3ldfA00,2 3168 | 3ldrA00,2 3169 | 3legA00,2 3170 | 3lhlA00,2 3171 | 3liaA00,2 3172 | 3livA00,2 3173 | 3lkbA00,2 3174 | 3llrC00,2 3175 | 3lm1A00,2 3176 | 3lmkB00,2 3177 | 3lqiA00,2 3178 | 3lstA00,2 3179 | 3luyA00,2 3180 | 3lyiA00,2 3181 | 3m34A00,2 3182 | 3m4fC00,2 3183 | 3m5cA00,2 3184 | 3m5hE00,2 3185 | 3m5pA00,2 3186 | 3m6rA00,2 3187 | 3m6sC00,2 3188 | 3m6vA00,2 3189 | 3m8tA00,2 3190 | 3maxA00,2 3191 | 3meaA00,2 3192 | 3mi0C00,2 3193 | 3mi5A00,2 3194 | 3mjeA00,2 3195 | 3mosA00,2 3196 | 3mpbB00,2 3197 | 3msuA00,2 3198 | 3mvyA00,2 3199 | 3mwsB00,2 3200 | 3mx6A00,2 3201 | 3n0sA00,2 3202 | 3n0tB00,2 3203 | 3n10B00,2 3204 | 3n2cF00,2 3205 | 3nbqD00,2 3206 | 3nf4A00,2 3207 | 3nfzA00,2 3208 | 3nhiA00,2 3209 | 3nihA00,2 3210 | 3njqA00,2 3211 | 3njzA00,2 3212 | 3nk7A00,2 3213 | 3nnbA00,2 3214 | 3nnlA00,2 3215 | 3npkB00,2 3216 | 3nsnA00,2 3217 | 3nzpB00,2 3218 | 3o14A00,2 3219 | 3o3nC00,2 3220 | 3o7qA00,2 3221 | 3o9mA00,2 3222 | 3o9pA00,2 3223 | 3ob6A00,2 3224 | 3obxA00,2 3225 | 3obzA00,2 3226 | 3ocxA00,2 3227 | 3odmE00,2 3228 | 3ognB00,2 3229 | 3oijB00,2 3230 | 3okxB00,2 3231 | 3olrD00,2 3232 | 3omgA00,2 3233 | 3ooiA00,2 3234 | 3optA00,2 3235 | 3otpD00,2 3236 | 3owcB00,2 3237 | 3oxoG00,2 3238 | 3ozbE00,2 3239 | 3ozmF00,2 3240 | 3p0fA00,2 3241 | 3p0jA00,2 3242 | 3p0wC00,2 3243 | 3p0xA00,2 3244 | 3p37C00,2 3245 | 3p73A00,2 3246 | 3p87G00,2 3247 | 3p8eA00,2 3248 | 3p8hA00,2 3249 | 3pb9A00,2 3250 | 3pboA00,2 3251 | 3pcnF00,2 3252 | 3pcsB00,2 3253 | 3pf7B00,2 3254 | 3pfpB00,2 3255 | 3pfrC00,2 3256 | 3pg6C00,2 3257 | 3phcD00,2 3258 | 3phdB00,2 3259 | 3pijB00,2 3260 | 3pkdA00,2 3261 | 3pkoA00,2 3262 | 3pkxA00,2 3263 | 3pmiD00,2 3264 | 3pmpB00,2 3265 | 3pocA00,2 3266 | 3popB00,2 3267 | 3pp9C00,2 3268 | 3pr3B00,2 3269 | 3pt1A00,2 3270 | 3pt9A00,2 3271 | 3ptkB00,2 3272 | 3pu3B00,2 3273 | 3puqB00,2 3274 | 3pvcA00,2 3275 | 3pvrA00,2 3276 | 3pwvD00,2 3277 | 3pxpC00,2 3278 | 3q0gF00,2 3279 | 3q34A00,2 3280 | 3q35A00,2 3281 | 3q3mE00,2 3282 | 3q4kA00,2 3283 | 3q5rA00,2 3284 | 3q7jA00,2 3285 | 3q9cE00,2 3286 | 3qazZ00,2 3287 | 3qb8A00,2 3288 | 3qd9B00,2 3289 | 3qk8C00,2 3290 | 3qkjD00,2 3291 | 3qmkA00,2 3292 | 3qoxA00,2 3293 | 3qq3A00,2 3294 | 3qryB00,2 3295 | 3qs1C00,2 3296 | 3qw8A00,2 3297 | 3qxqC00,2 3298 | 3qxyA00,2 3299 | 3qzyA00,2 3300 | 3r0qA00,2 3301 | 3r52A00,2 3302 | 3r75A00,2 3303 | 3r95A00,2 3304 | 3r97A00,2 3305 | 3r9tB00,2 3306 | 3rceA00,2 3307 | 3rh7D00,2 3308 | 3ribB00,2 3309 | 3rpnB00,2 3310 | 3rq4A00,2 3311 | 3rsjC00,2 3312 | 3rt3A00,2 3313 | 3rv8B00,2 3314 | 3rx6A00,2 3315 | 3rybA00,2 3316 | 3rywC00,2 3317 | 3rznA00,2 3318 | 3s1sA00,2 3319 | 3s3nA00,2 3320 | 3s6fA00,2 3321 | 3s6yC00,2 3322 | 3s99A00,2 3323 | 3s9zA00,2 3324 | 3sbcC00,2 3325 | 3sbfD00,2 3326 | 3sczB00,2 3327 | 3sf6A00,2 3328 | 3sieA00,2 3329 | 3sl0A00,2 3330 | 3sm2B00,2 3331 | 3smaA00,2 3332 | 3sn4A00,2 3333 | 3so6A00,2 3334 | 3souA00,2 3335 | 3sqmA00,2 3336 | 3sraB00,2 3337 | 3srzA00,2 3338 | 3ssoC00,2 3339 | 3su9A00,2 3340 | 3sw5D00,2 3341 | 3sxnD00,2 3342 | 3symA00,2 3343 | 3sz5A00,2 3344 | 3t1uA00,2 3345 | 3t3cB00,2 3346 | 3t4jB00,2 3347 | 3t58A00,2 3348 | 3t89F00,2 3349 | 3tavA00,2 3350 | 3tb5B00,2 3351 | 3tbeF00,2 3352 | 3td7A00,2 3353 | 3te4A00,2 3354 | 3tegA00,2 3355 | 3tehB00,2 3356 | 3thtB00,2 3357 | 3tlbA00,2 3358 | 3topA00,2 3359 | 3tt7B00,2 3360 | 3ttyF00,2 3361 | 3ty2B00,2 3362 | 3u04A00,2 3363 | 3u1tA00,2 3364 | 3u2sC00,2 3365 | 3u41C00,2 3366 | 3u7mA00,2 3367 | 3u86A00,2 3368 | 3u9wA00,2 3369 | 3ua3B00,2 3370 | 3ubmC00,2 3371 | 3ucbA00,2 3372 | 3udiB00,2 3373 | 3uerA00,2 3374 | 3uesA00,2 3375 | 3ufmA00,2 3376 | 3ujhB00,2 3377 | 3ul2D00,2 3378 | 3umvB00,2 3379 | 3unbH00,2 3380 | 3unfH00,2 3381 | 3unfK00,2 3382 | 3unfN00,2 3383 | 3unvB00,2 3384 | 3uoaB00,2 3385 | 3uoxB00,2 3386 | 3upoB00,2 3387 | 3uqiA00,2 3388 | 3uriA00,2 3389 | 3usoB00,2 3390 | 3usuG00,2 3391 | 3uthD00,2 3392 | 3uwbA00,2 3393 | 3uyyB00,2 3394 | 3v17C00,2 3395 | 3v1kA00,2 3396 | 3v3wA00,2 3397 | 3v56B00,2 3398 | 3v68A00,2 3399 | 3v77F00,2 3400 | 3v8hC00,2 3401 | 3v99A00,2 3402 | 3valA00,2 3403 | 3vbhA00,2 3404 | 3veuA00,2 3405 | 3vgdA00,2 3406 | 3vikA00,2 3407 | 3vivA00,2 3408 | 3vj6A00,2 3409 | 3vjcE00,2 3410 | 3vl9A00,2 3411 | 3vmpA00,2 3412 | 3vmtA00,2 3413 | 3vmwA00,2 3414 | 3vnzA00,2 3415 | 3vseA00,2 3416 | 3vslB00,2 3417 | 3vsuC00,2 3418 | 3vt0A00,2 3419 | 3vwdA00,2 3420 | 3vx1A00,2 3421 | 3vywA00,2 3422 | 3vzbA00,2 3423 | 3vzoA00,2 3424 | 3w21A00,2 3425 | 3w54C00,2 3426 | 3w6dC00,2 3427 | 3w7xA00,2 3428 | 3wbaA00,2 3429 | 3wdyA00,2 3430 | 3we0A00,2 3431 | 3we7B00,2 3432 | 3wevA00,2 3433 | 3wh1A00,2 3434 | 3wiqA00,2 3435 | 3wj1A00,2 3436 | 3wkgA00,2 3437 | 3wl6B00,2 3438 | 3woqA00,2 3439 | 3wpmB00,2 3440 | 3wqzA00,2 3441 | 3wrgA00,2 3442 | 3wsgA00,2 3443 | 3ww1A00,2 3444 | 3wwjF00,2 3445 | 3wy4A00,2 3446 | 3x0dA00,2 3447 | 3x0yB00,2 3448 | 3x3eA00,2 3449 | 3zdaA00,2 3450 | 3zg8B00,2 3451 | 3zgeA00,2 3452 | 3zgjA00,2 3453 | 3zgpA00,2 3454 | 3zj0A00,2 3455 | 3zjxD00,2 3456 | 3zkgA00,2 3457 | 3zmbB00,2 3458 | 3zseA00,2 3459 | 3zt5C00,2 3460 | 3zupB00,2 3461 | 3zvxA00,2 3462 | 3zwbB00,2 3463 | 3zxlA00,2 3464 | 3zzmA00,2 3465 | 4a0tA00,2 3466 | 4a39A00,2 3467 | 4a3rD00,2 3468 | 4a4aA00,2 3469 | 4a6dA00,2 3470 | 4a6kC00,2 3471 | 4ac7C00,2 3472 | 4ac8A00,2 3473 | 4ag7B00,2 3474 | 4am8E00,2 3475 | 4aoxA00,2 3476 | 4aq0A00,2 3477 | 4aqlA00,2 3478 | 4atfC00,2 3479 | 4autA00,2 3480 | 4aw7A00,2 3481 | 4awhB00,2 3482 | 4ayoA00,2 3483 | 4b10C00,2 3484 | 4b17A00,2 3485 | 4b21A00,2 3486 | 4b4fA00,2 3487 | 4b8pA00,2 3488 | 4b95C00,2 3489 | 4b9wB00,2 3490 | 4bb9A00,2 3491 | 4bcaA00,2 3492 | 4be3A00,2 3493 | 4beuA00,2 3494 | 4bj6E00,2 3495 | 4bosA00,2 3496 | 4bp9F00,2 3497 | 4bpsA00,2 3498 | 4bpzB00,2 3499 | 4bq3C00,2 3500 | 4bq6D00,2 3501 | 4bqoB00,2 3502 | 4bt3A00,2 3503 | 4btvB00,2 3504 | 4bu0A00,2 3505 | 4bu2A00,2 3506 | 4bupA00,2 3507 | 4bvsA00,2 3508 | 4bvvA00,2 3509 | 4bvwB00,2 3510 | 4bw5A00,2 3511 | 4bxrA00,2 3512 | 4bxwA00,2 3513 | 4bz6A00,2 3514 | 4c03B00,2 3515 | 4c0pD00,2 3516 | 4c1eB00,2 3517 | 4c1hA00,2 3518 | 4c2gA00,2 3519 | 4c5rA00,2 3520 | 4c6lA00,2 3521 | 4c8dA00,2 3522 | 4ce5A00,2 3523 | 4cevA00,2 3524 | 4cfoA00,2 3525 | 4chiA00,2 3526 | 4ci2B00,2 3527 | 4cj6A00,2 3528 | 4cp0A00,2 3529 | 4cp8A00,2 3530 | 4cpkB00,2 3531 | 4cq6B00,2 3532 | 4cqbB00,2 3533 | 4ctsA00,2 3534 | 4cubB00,2 3535 | 4cxtA00,2 3536 | 4cy8D00,2 3537 | 4czzA00,2 3538 | 4d0dJ00,2 3539 | 4d1aA00,2 3540 | 4d1jD00,2 3541 | 4d6eA00,2 3542 | 4daaB00,2 3543 | 4ddqF00,2 3544 | 4dlcA00,2 3545 | 4dmgB00,2 3546 | 4dolA00,2 3547 | 4dpdB00,2 3548 | 4dr9B00,2 3549 | 4driA00,2 3550 | 4drjA00,2 3551 | 4dunA00,2 3552 | 4dx9K00,2 3553 | 4dz2B00,2 3554 | 4e0fA00,2 3555 | 4e0vB00,2 3556 | 4e2sO00,2 3557 | 4e4vB00,2 3558 | 4e6tB00,2 3559 | 4e70B00,2 3560 | 4e8cA00,2 3561 | 4ehiA00,2 3562 | 4eiqB00,2 3563 | 4eoyA00,2 3564 | 4etzA00,2 3565 | 4ev5F00,2 3566 | 4ev6E00,2 3567 | 4evrA00,2 3568 | 4evsA00,2 3569 | 4eyfB00,2 3570 | 4ezhB00,2 3571 | 4f07G00,2 3572 | 4f0wA00,2 3573 | 4f13B00,2 3574 | 4f27A00,2 3575 | 4f35C00,2 3576 | 4f3zC00,2 3577 | 4f5zA00,2 3578 | 4f66B00,2 3579 | 4fchA00,2 3580 | 4fe7A00,2 3581 | 4fh1A00,2 3582 | 4fivA00,2 3583 | 4flnC00,2 3584 | 4fnbA00,2 3585 | 4fnsA00,2 3586 | 4fo8A00,2 3587 | 4foaA00,2 3588 | 4fp9A00,2 3589 | 4fsxB00,2 3590 | 4ft2A00,2 3591 | 4fw7C00,2 3592 | 4fwjB00,2 3593 | 4g32A00,2 3594 | 4g4jA00,2 3595 | 4g56C00,2 3596 | 4g67A00,2 3597 | 4g8cA00,2 3598 | 4g8jF00,2 3599 | 4gaoA00,2 3600 | 4gbaB00,2 3601 | 4gbdB00,2 3602 | 4gc9A00,2 3603 | 4ggmA00,2 3604 | 4gikB00,2 3605 | 4gjzA00,2 3606 | 4gl8A00,2 3607 | 4gmeB00,2 3608 | 4gn1B00,2 3609 | 4go8A00,2 3610 | 4gplB00,2 3611 | 4gpsA00,2 3612 | 4gsuA00,2 3613 | 4gsvB00,2 3614 | 4gu5B00,2 3615 | 4gvqB00,2 3616 | 4gx7B00,2 3617 | 4gz6B00,2 3618 | 4h04A00,2 3619 | 4h0uA00,2 3620 | 4h12A00,2 3621 | 4h3yA00,2 3622 | 4h69F00,2 3623 | 4h6bK00,2 3624 | 4h6uA00,2 3625 | 4hbmB00,2 3626 | 4hdmA00,2 3627 | 4hevA00,2 3628 | 4hgdC00,2 3629 | 4hh0A00,2 3630 | 4hhzA00,2 3631 | 4hjhA00,2 3632 | 4hmeA00,2 3633 | 4hotA00,2 3634 | 4hp5A00,2 3635 | 4hrcH00,2 3636 | 4hsrB00,2 3637 | 4hxgL00,2 3638 | 4hxyA00,2 3639 | 4hy7A00,2 3640 | 4hzeA00,2 3641 | 4i1rA00,2 3642 | 4i52D00,2 3643 | 4i6gA00,2 3644 | 4i75A00,2 3645 | 4ialA00,2 3646 | 4iavA00,2 3647 | 4icsA00,2 3648 | 4icyA00,2 3649 | 4iczA00,2 3650 | 4ie5A00,2 3651 | 4ig6A00,2 3652 | 4ig7A00,2 3653 | 4igqA00,2 3654 | 4ij8A00,2 3655 | 4iknA00,2 3656 | 4il0H00,2 3657 | 4impC00,2 3658 | 4inqA00,2 3659 | 4inwA00,2 3660 | 4io0A00,2 3661 | 4issA00,2 3662 | 4it1C00,2 3663 | 4iu0A00,2 3664 | 4iuwA00,2 3665 | 4izdB00,2 3666 | 4j0jB00,2 3667 | 4j25C00,2 3668 | 4j25F00,2 3669 | 4j3tA00,2 3670 | 4j4vC00,2 3671 | 4j5dA00,2 3672 | 4j5hA00,2 3673 | 4j9xA00,2 3674 | 4jbwG00,2 3675 | 4jd6C00,2 3676 | 4jgxB00,2 3677 | 4jmgA00,2 3678 | 4jmxA00,2 3679 | 4jn7A00,2 3680 | 4josB00,2 3681 | 4jpxA00,2 3682 | 4jreD00,2 3683 | 4juuB00,2 3684 | 4jvtA00,2 3685 | 4jwlA00,2 3686 | 4jwtA00,2 3687 | 4jyxB00,2 3688 | 4k2sB00,2 3689 | 4k2xB00,2 3690 | 4k30A00,2 3691 | 4k6nA00,2 3692 | 4k6xB00,2 3693 | 4kc8A00,2 3694 | 4kf6B00,2 3695 | 4kn0A00,2 3696 | 4koxA00,2 3697 | 4kpsA00,2 3698 | 4kqqB00,2 3699 | 4krhB00,2 3700 | 4ksiA00,2 3701 | 4kwwF00,2 3702 | 4l0mA00,2 3703 | 4l1uB00,2 3704 | 4l4tA00,2 3705 | 4l4xA00,2 3706 | 4l51A00,2 3707 | 4l5cD00,2 3708 | 4l82B00,2 3709 | 4lb0B00,2 3710 | 4lc9A00,2 3711 | 4lfdA00,2 3712 | 4lhkA00,2 3713 | 4lhnA00,2 3714 | 4livA00,2 3715 | 4lksB00,2 3716 | 4lo3C00,2 3717 | 4lq4A00,2 3718 | 4lvdA00,2 3719 | 4lxrB00,2 3720 | 4lzcA00,2 3721 | 4lzjD00,2 3722 | 4m0rB00,2 3723 | 4m1cA00,2 3724 | 4m26B00,2 3725 | 4m2cC00,2 3726 | 4m38A00,2 3727 | 4m7fB00,2 3728 | 4m8dE00,2 3729 | 4m8jA00,2 3730 | 4m8uA00,2 3731 | 4mc3A00,2 3732 | 4mdkB00,2 3733 | 4mdtD00,2 3734 | 4mfkA00,2 3735 | 4mfzA00,2 3736 | 4mgkA00,2 3737 | 4ml8C00,2 3738 | 4mloA00,2 3739 | 4mrfA00,2 3740 | 4mrtB00,2 3741 | 4ms4A00,2 3742 | 4mxeA00,2 3743 | 4mymA00,2 3744 | 4mzvA00,2 3745 | 4n03A00,2 3746 | 4n0iA00,2 3747 | 4n5fB00,2 3748 | 4n76B00,2 3749 | 4n8iA00,2 3750 | 4nf1C00,2 3751 | 4nf9B00,2 3752 | 4nftC00,2 3753 | 4nhyC00,2 3754 | 4nidA00,2 3755 | 4nkbB00,2 3756 | 4nmlA00,2 3757 | 4nnbA00,2 3758 | 4nndC00,2 3759 | 4nnrB00,2 3760 | 4nq3B00,2 3761 | 4ns1A00,2 3762 | 4nt8A00,2 3763 | 4nv5B00,2 3764 | 4nv7A00,2 3765 | 4nx0B00,2 3766 | 4nymC00,2 3767 | 4nz3A00,2 3768 | 4nz6B00,2 3769 | 4o48B00,2 3770 | 4o61A00,2 3771 | 4o7uD00,2 3772 | 4odoA00,2 3773 | 4odrA00,2 3774 | 4oesA00,2 3775 | 4ojvA00,2 3776 | 4ojzA00,2 3777 | 4okmB00,2 3778 | 4omcD00,2 3779 | 4omfC00,2 3780 | 4omgB00,2 3781 | 4onjA00,2 3782 | 4ontC00,2 3783 | 4oo6A00,2 3784 | 4oqqB00,2 3785 | 4ovaC00,2 3786 | 4oxdA00,2 3787 | 4oz9A00,2 3788 | 4ozvA00,2 3789 | 4p04B00,2 3790 | 4p1wC00,2 3791 | 4p56C00,2 3792 | 4p5hJ00,2 3793 | 4p6rA00,2 3794 | 4pahA00,2 3795 | 4pehG00,2 3796 | 4pfuB00,2 3797 | 4pfyB00,2 3798 | 4pghC00,2 3799 | 4pgnB00,2 3800 | 4ph7B00,2 3801 | 4pinB00,2 3802 | 4piqA00,2 3803 | 4pj5A00,2 3804 | 4pq9B00,2 3805 | 4pqaA00,2 3806 | 4pr3B00,2 3807 | 4prhA00,2 3808 | 4pv6K00,2 3809 | 4pvrA00,2 3810 | 4pw4A00,2 3811 | 4pwcA00,2 3812 | 4px7A00,2 3813 | 4pxbB00,2 3814 | 4pxdB00,2 3815 | 4pyhA00,2 3816 | 4pytA00,2 3817 | 4q2bE00,2 3818 | 4q2gA00,2 3819 | 4q42B00,2 3820 | 4q4iA00,2 3821 | 4q60A00,2 3822 | 4q72A00,2 3823 | 4q7gA00,2 3824 | 4q9oA00,2 3825 | 4qa4A00,2 3826 | 4qafA00,2 3827 | 4qbbA00,2 3828 | 4qenA00,2 3829 | 4qfhA00,2 3830 | 4qflA00,2 3831 | 4qicA00,2 3832 | 4qjkA00,2 3833 | 4qkdB00,2 3834 | 4qt9B00,2 3835 | 4qu2A00,2 3836 | 4qwiL00,2 3837 | 4qwiN00,2 3838 | 4qwmA00,2 3839 | 4r29D00,2 3840 | 4r4nQ00,2 3841 | 4r4yA00,2 3842 | 4r67L00,2 3843 | 4r67V00,2 3844 | 4r6iA00,2 3845 | 4r84A00,2 3846 | 4r88A00,2 3847 | 4ra0A00,2 3848 | 4reoA00,2 3849 | 4rg2B00,2 3850 | 4ri1A00,2 3851 | 4rl6B00,2 3852 | 4rm0A00,2 3853 | 4rnhA00,2 3854 | 4rp8A00,2 3855 | 4rqxA00,2 3856 | 4rs2B00,2 3857 | 4rtbA00,2 3858 | 4rubE00,2 3859 | 4rvdA00,2 3860 | 4rxdB00,2 3861 | 4ryfJ00,2 3862 | 4rzbA00,2 3863 | 4rzmB00,2 3864 | 4s0gA00,2 3865 | 4s13A00,2 3866 | 4s2tB00,2 3867 | 4s3rA00,2 3868 | 4tglA00,2 3869 | 4tkgA00,2 3870 | 4tkxA00,2 3871 | 4tlgB00,2 3872 | 4tnvP00,2 3873 | 4tsnC00,2 3874 | 4tsrA00,2 3875 | 4tszQ00,2 3876 | 4tvmA00,2 3877 | 4tvuC00,2 3878 | 4txjB00,2 3879 | 4tyvB00,2 3880 | 4u0vA00,2 3881 | 4u33D00,2 3882 | 4u62B00,2 3883 | 4u6jA00,2 3884 | 4u9vA00,2 3885 | 4ua3B00,2 3886 | 4uamC00,2 3887 | 4ucbB00,2 3888 | 4ufcA00,2 3889 | 4uuqA00,2 3890 | 4uybA00,2 3891 | 4uzlA00,2 3892 | 4v08B00,2 3893 | 4v1cI00,2 3894 | 4w50B00,2 3895 | 4wclA00,2 3896 | 4wcxB00,2 3897 | 4wdaA00,2 3898 | 4wgxC00,2 3899 | 4wkrA00,2 3900 | 4wlkA00,2 3901 | 4wm8A00,2 3902 | 4wrcA00,2 3903 | 4wriA00,2 3904 | 4ws0A00,2 3905 | 4wswF00,2 3906 | 4wv8A00,2 3907 | 4wxlB00,2 3908 | 4wymE00,2 3909 | 4wyuA00,2 3910 | 4x1dA00,2 3911 | 4x2tF00,2 3912 | 4x3qD00,2 3913 | 4x6cC00,2 3914 | 4x6jA00,2 3915 | 4x84A00,2 3916 | 4x8eB00,2 3917 | 4xb5A00,2 3918 | 4xboB00,2 3919 | 4xcaD00,2 3920 | 4xg0A00,2 3921 | 4xhcA00,2 3922 | 4xl8C00,2 3923 | 4xlyA00,2 3924 | 4xmaA00,2 3925 | 4xmrA00,2 3926 | 4xnwA00,2 3927 | 4xruC00,2 3928 | 4xsdA00,2 3929 | 4xwtA00,2 3930 | 4y33B00,2 3931 | 4y5sB00,2 3932 | 4y6kC00,2 3933 | 4y6qA00,2 3934 | 4yfaC00,2 3935 | 4yicB00,2 3936 | 4yjkB00,2 3937 | 4ylhI00,2 3938 | 4ylqB00,2 3939 | 4ymwC00,2 3940 | 4yn2A00,2 3941 | 4ynnA00,2 3942 | 4yoyC00,2 3943 | 4yp1A00,2 3944 | 4ypaB00,2 3945 | 4yutB00,2 3946 | 4yvgA00,2 3947 | 4yx6A00,2 3948 | 4yx9A00,2 3949 | 4yz3B00,2 3950 | 4z2tB00,2 3951 | 4z44A00,2 3952 | 4z4pA00,2 3953 | 4z73L00,2 3954 | 4z7fB00,2 3955 | 4za4A00,2 3956 | 4zacB00,2 3957 | 4zadA00,2 3958 | 4zbgA00,2 3959 | 4zc6B00,2 3960 | 4ze9A00,2 3961 | 4zevA00,2 3962 | 4zfkB00,2 3963 | 4zl4A00,2 3964 | 4zlaD00,2 3965 | 4zlfA00,2 3966 | 4zm6A00,2 3967 | 4zo3B00,2 3968 | 4zocB00,2 3969 | 4zowA00,2 3970 | 4zraA00,2 3971 | 4zrtA00,2 3972 | 4zwbA00,2 3973 | 4zxaF00,2 3974 | 4zzxA00,2 3975 | 5a01B00,2 3976 | 5a0jA00,2 3977 | 5a2cA00,2 3978 | 5a3kA00,2 3979 | 5a60A00,2 3980 | 5a63B00,2 3981 | 5a65B00,2 3982 | 5a66A00,2 3983 | 5aa5L00,2 3984 | 5abaB00,2 3985 | 5ac5A00,2 3986 | 5afpA00,2 3987 | 5agdB00,2 3988 | 5ai9A00,2 3989 | 5apaA00,2 3990 | 5aprA00,2 3991 | 5axrA00,2 3992 | 5b8iC00,2 3993 | 5bntC00,2 3994 | 5boaE00,2 3995 | 5bp0J00,2 3996 | 5bq2D00,2 3997 | 5bqyF00,2 3998 | 5btxA00,2 3999 | 5bugD00,2 4000 | 5bx2A00,2 4001 | 5by6B00,2 4002 | 5c11A00,2 4003 | 5c17A00,2 4004 | 5c3pC00,2 4005 | 5c3pD00,2 4006 | 5c5tA00,2 4007 | 5c6vC00,2 4008 | 5c8tB00,2 4009 | 5c90G00,2 4010 | 5c9aA00,2 4011 | 5ce8A00,2 4012 | 5cedA00,2 4013 | 5cfyB00,2 4014 | 5cg0B00,2 4015 | 5cg5A00,2 4016 | 5cg9A00,2 4017 | 5cimB00,2 4018 | 5cltC00,2 4019 | 5cniB00,2 4020 | 5cr2B00,2 4021 | 5crwA00,2 4022 | 5ct2A00,2 4023 | 5ctoA00,2 4024 | 5cuyD00,2 4025 | 5cvvB00,2 4026 | 5czyA00,2 4027 | 5d2kA00,2 4028 | 5d9yA00,2 4029 | 5dapA00,2 4030 | 5dgrA00,2 4031 | 5dj4E00,2 4032 | 5dk6A00,2 4033 | 5dkiY00,2 4034 | 5dkxA00,2 4035 | 5dlbA00,2 4036 | 5dqrD00,2 4037 | 5dstG00,2 4038 | 5duaA00,2 4039 | 5dulA00,2 4040 | 5dulC00,2 4041 | 5dw5B00,2 4042 | 5dw8A00,2 4043 | 5dwfD00,2 4044 | 5dwnC00,2 4045 | 5dz2A00,2 4046 | 5dzkC00,2 4047 | 5dzkS00,2 4048 | 5e3aA00,2 4049 | 5e4wD00,2 4050 | 5e6oB00,2 4051 | 5ec5F00,2 4052 | 5eegB00,2 4053 | 5elhB00,2 4054 | 5ep9B00,2 4055 | 5epaF00,2 4056 | 5eq9B00,2 4057 | 5eqiA00,2 4058 | 5er8A00,2 4059 | 5ermB00,2 4060 | 5eroC00,2 4061 | 5exdL00,2 4062 | 5eyhA00,2 4063 | 5ezsA00,2 4064 | 5f2tB00,2 4065 | 5f4zC00,2 4066 | 5f6uA00,2 4067 | 5fc3B00,2 4068 | 5fd8B00,2 4069 | 5fgfW00,2 4070 | 5fiaA00,2 4071 | 5fjwF00,2 4072 | 5fmgI00,2 4073 | 5fobA00,2 4074 | 5fqhA00,2 4075 | 5fusB00,2 4076 | 5fy7A00,2 4077 | 5fy8A00,2 4078 | 5fyzA00,2 4079 | 5h8jJ00,2 4080 | 5hguA00,2 4081 | 5hh7A00,2 4082 | 5hkpA00,2 4083 | 5hq8A00,2 4084 | 5hr4A00,2 4085 | 5hv4A00,2 4086 | 5hyoA00,2 4087 | 5i2bA00,2 4088 | 5i70A00,2 4089 | 5i91A00,2 4090 | 5ij7A00,2 4091 | 5im2A00,2 4092 | 5iwsA00,2 4093 | 5jd4E00,2 4094 | 5jjuA00,2 4095 | 5jp4A00,2 4096 | 7acnA00,2 4097 | -------------------------------------------------------------------------------- /Learning/load_data.py: -------------------------------------------------------------------------------- 1 | import os 2 | import pandas as pd 3 | import h5py 4 | 5 | import torch 6 | from torch.utils.data import Dataset 7 | 8 | def load_feature(path): 9 | with h5py.File(path, 'r') as f: 10 | X = f['X'][()] 11 | X = torch.FloatTensor(X) 12 | return X 13 | 14 | class VoxelDataset(Dataset): 15 | 16 | def __init__(self, label_file, root_dir): 17 | """ 18 | Args: 19 | label_file (string): Path to the csv file with labels. 20 | root_dir (string): Directory with all the voxel data. 21 | transform (callable, optional): Optional transform to be applied 22 | on a sample. 23 | """ 24 | self.labels = pd.read_csv(label_file) 25 | self.root_dir = root_dir 26 | 27 | def __len__(self): 28 | return len(self.labels) 29 | 30 | def __getitem__(self, idx): 31 | if torch.is_tensor(idx): 32 | idx = idx.tolist() 33 | 34 | voxel_name = os.path.join(self.root_dir, 35 | self.labels.iloc[idx, 0]) + '.h5' 36 | voxel = load_feature(voxel_name) 37 | label = self.labels.iloc[idx, 1] 38 | sample = {'voxel': voxel, 'label': label} 39 | 40 | return sample 41 | -------------------------------------------------------------------------------- /Learning/model.py: -------------------------------------------------------------------------------- 1 | import torch 2 | import torch.nn as nn 3 | 4 | class DeepDrug3D(nn.Module): 5 | def __init__(self, in_channel): 6 | super(DeepDrug3D, self).__init__() 7 | 8 | self.conv1 = nn.Conv3d(in_channel, 64, 5) 9 | self.conv2 = nn.Conv3d(64, 64, 3) 10 | 11 | self.pool = nn.MaxPool3d((2,2,2), stride=None) 12 | self.fc1 = nn.Linear(64*13*13*13, 128) 13 | self.fc2 = nn.Linear(128,3) 14 | 15 | def reset_parameters(self): 16 | self.conv1.reset_parameters() 17 | self.conv2.reset_parameters() 18 | self.fc1.reset_parameters() 19 | self.fc2.reset_parameters() 20 | 21 | def forward(self, x): 22 | x = self.conv1(x) 23 | x = nn.LeakyReLU(negative_slope=0.1)(x) 24 | x = nn.Dropout(p=0.2)(x) 25 | 26 | x = self.conv2(x) 27 | x = nn.LeakyReLU(negative_slope=0.1)(x) 28 | 29 | x = self.pool(x) 30 | x = nn.Dropout(p=0.4)(x) 31 | 32 | x = torch.flatten(x, start_dim=1) 33 | x = self.fc1(x) 34 | x = nn.LeakyReLU(negative_slope=0.1)(x) 35 | x = nn.Dropout(p=0.4)(x) 36 | 37 | x = self.fc2(x) 38 | return x -------------------------------------------------------------------------------- /Learning/predict.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | import h5py 3 | 4 | import numpy as np 5 | import torch 6 | import torch.nn.functional as F 7 | from model import DeepDrug3D 8 | 9 | def load_data(path): 10 | with h5py.File(path, 'r') as f: 11 | X = f['X'][()] 12 | if len(X.shape) == 4: 13 | X = np.expand_dims(X, axis=0) 14 | X = torch.FloatTensor(X) 15 | return X 16 | 17 | def predict(path, model_path): 18 | device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") 19 | print('Current device: ' + str(device)) 20 | 21 | net = DeepDrug3D(14) 22 | net.load_state_dict(torch.load(model_path)) 23 | net.to(device) 24 | data = load_data(path) 25 | data = data.to(device) 26 | output = net(data) 27 | proba = F.softmax(output, dim=1) 28 | score = proba.data.cpu().numpy()[0] 29 | print('The probability of pocket provided binds with ATP ligands: {:.4f}'.format(score[0])) 30 | print('The probability of pocket provided binds with Heme ligands: {:.4f}'.format(score[1])) 31 | print('The probability of pocket provided binds with other ligands: {:.4f}'.format(score[2])) 32 | 33 | if __name__ == "__main__": 34 | parser = argparse.ArgumentParser() 35 | parser.add_argument('--f', type=str, required=True, help='Input h5 file name') 36 | parser.add_argument('--m', type=str, required=True, help='Path to the trained model weights') 37 | opt = parser.parse_args() 38 | 39 | predict(opt.f, opt.m) -------------------------------------------------------------------------------- /Learning/train.py: -------------------------------------------------------------------------------- 1 | import argparse 2 | 3 | import os 4 | import random 5 | import pandas as pd 6 | import numpy as np 7 | import time 8 | 9 | import torch 10 | 11 | from load_data import VoxelDataset 12 | from torch.utils.data import DataLoader, Subset 13 | 14 | from model import DeepDrug3D 15 | 16 | from sklearn.metrics import confusion_matrix 17 | from sklearn.model_selection import StratifiedKFold 18 | from sklearn.metrics import accuracy_score 19 | 20 | seed = 12306 21 | random.seed(seed) 22 | torch.manual_seed(seed) 23 | if torch.cuda.is_available(): 24 | torch.cuda.manual_seed_all(seed) 25 | 26 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') 27 | print('Current device: ' + str(device)) 28 | 29 | def main(opt): 30 | in_channel = 14 31 | model = DeepDrug3D(in_channel) 32 | print(model) 33 | model = model.to(device) 34 | criterion = torch.nn.CrossEntropyLoss() 35 | 36 | if opt.opath is None: 37 | os.mkdir('./logs') 38 | opt.opath = './logs' 39 | 40 | labels = pd.read_csv(opt.lpath) 41 | xid = labels['id'].tolist() 42 | ys = labels['class'].tolist() 43 | dataset = VoxelDataset(label_file=opt.lpath, root_dir=opt.path) 44 | kfold = StratifiedKFold(n_splits=2, shuffle=True, random_state=seed) 45 | bs = opt.bs 46 | f_cnt = 0 47 | for train_id, val_id in kfold.split(xid, ys): 48 | train_set = Subset(dataset, train_id) 49 | train_loader = DataLoader(train_set, batch_size=bs, shuffle=True) 50 | val_set = Subset(dataset, val_id) 51 | val_loader = DataLoader(val_set, batch_size=bs, shuffle=True) 52 | 53 | tr_losses = np.zeros((opt.epoch,)) 54 | tr_accs = np.zeros((opt.epoch,)) 55 | val_losses = np.zeros((opt.epoch,)) 56 | val_accs = np.zeros((opt.epoch,)) 57 | 58 | model.reset_parameters() 59 | optimizer = torch.optim.Adam(model.parameters(), lr=opt.lr) 60 | 61 | best_val_loss = 1e6 62 | 63 | print('===================Fold {} starts==================='.format(f_cnt+1)) 64 | for epoch in range(opt.epoch): 65 | s = time.time() 66 | 67 | model.train() 68 | losses = 0 69 | acc = 0 70 | 71 | for i, sampled_batch in enumerate(train_loader): 72 | data = sampled_batch['voxel'] 73 | y = sampled_batch['label'].squeeze() 74 | data = data.type(torch.FloatTensor) 75 | if in_channel == 1: 76 | data = torch.unsqueeze(data,1) 77 | y = y.to(device) 78 | data = data.to(device) 79 | optimizer.zero_grad() 80 | output = model(data) 81 | loss = criterion(output, y) 82 | loss.backward() 83 | optimizer.step() 84 | 85 | y_true = y.cpu().numpy() 86 | y_pred = output.data.cpu().numpy().argmax(axis=1) 87 | acc += accuracy_score(y_true, y_pred)*100 88 | losses += loss.data.cpu().numpy() 89 | 90 | tr_losses[epoch] = losses/(i+1) 91 | tr_accs[epoch] = acc/(i+1) 92 | 93 | model.eval() 94 | v_losses = 0 95 | v_acc = 0 96 | y_preds = [] 97 | y_trues = [] 98 | 99 | for j, sampled_batch in enumerate(val_loader): 100 | data = sampled_batch['voxel'] 101 | y = sampled_batch['label'].squeeze() 102 | data = data.type(torch.FloatTensor) 103 | if in_channel == 1: 104 | data = torch.unsqueeze(data,1) 105 | y = y.to(device) 106 | data = data.to(device) 107 | with torch.no_grad(): 108 | output = model(data) 109 | loss = criterion(output, y) 110 | 111 | y_pred = output.data.cpu().numpy().argmax(axis=1) 112 | y_true = y.cpu().numpy() 113 | y_trues += y_true.tolist() 114 | y_preds += y_pred.tolist() 115 | v_acc += accuracy_score(y_true, y_pred)*100 116 | v_losses += loss.data.cpu().numpy() 117 | 118 | cnf = confusion_matrix(y_trues, y_preds) 119 | val_losses[epoch] = v_losses/(j+1) 120 | val_accs[epoch] = v_acc/(j+1) 121 | 122 | current_val_loss = v_losses/(j+1) 123 | if current_val_loss < best_val_loss: 124 | best_val_loss = current_val_loss 125 | torch.save(model.state_dict(), os.path.join(opt.opath, 'best_model_fold_{}.ckpt'.format(f_cnt+1))) 126 | 127 | print('Epoch: {:03d} | time: {:.4f} seconds\n' 128 | 'Train Loss: {:.4f} | Train accuracy {:.4f}\n' 129 | 'Validation Loss: {:.4f} | Validation accuracy {:.4f} | Best {:.4f}'.format(epoch+1, time.time()-s, losses/(i+1), 130 | acc/(i+1), v_losses/(j+1), v_acc/(j+1), best_val_loss)) 131 | print('Validation confusion matrix:') 132 | print(cnf) 133 | 134 | print('===================Fold {} ends==================='.format(f_cnt+1)) 135 | np.save(os.path.join(opt.opath, 'train_loss_{}.npy'.format(f_cnt+1)), tr_losses) 136 | np.save(os.path.join(opt.opath, 'train_acc_{}.npy'.format(f_cnt+1)), tr_accs) 137 | np.save(os.path.join(opt.opath, 'val_loss_{}.npy'.format(f_cnt+1)), val_losses) 138 | np.save(os.path.join(opt.opath, 'val_acc_{}.npy'.format(f_cnt+1)), val_accs) 139 | 140 | f_cnt += 1 141 | 142 | if __name__ == "__main__": 143 | parser = argparse.ArgumentParser() 144 | parser.add_argument('--path', type=str, required=True, help='path to data folder') 145 | parser.add_argument('--lpath', type=str, required=True, help='path to label file') 146 | parser.add_argument('--opath', type=str, required=False, help='output folder name') 147 | parser.add_argument('--bs', type=int, required=True, help='batch size') 148 | parser.add_argument('--lr', type=float, required=True, help='learning rate') 149 | parser.add_argument('--epoch', type=int, required=True, help='number of epochs to train for') 150 | 151 | opt = parser.parse_args() 152 | main(opt) 153 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DeepDrug3D 2 | 3 | DeepDrug3D is a tool to predict the protein pocket to be ATP/Heme/other-binding given the binding residue numbers and the protein structure. 4 | 5 | If you find this tool useful, please star this repo and cite our paper :) 6 | 7 | Pu L, Govindaraj RG, Lemoine JM, Wu HC, Brylinski M (2019) DeepDrug3D: Classification of ligand-binding pockets in proteins with a convolutional neural network. PLOS Computational Biology 15(2): e1006718. https://doi.org/10.1371/journal.pcbi.1006718 8 | 9 | This README file is written by Limeng Pu. 10 | 11 |

12 | 13 |

14 | 15 | An example of binding grid generated, pdb ID: 1a2sA, atom type: C.ar. Red --> low potentials while Blue --> high potentials. 16 | 17 | # Change Log 18 | 19 | **This is a newer version of the implmentation. Since many people are interested in visualize the output from the grid generation like in the image above, I've decided to seperate the data-generation module and the training/prediction module. Another reason for this iteration of implementation is the dligand-linux used for potential calculation requires 32-bit Linux while Pytorch requires 64-bit Linux. It causes confiliction and resulting in different errors depending on the order you install them. Also the deep learning library used has been changed from Keras to Pytorch**. 20 | 21 | # Prerequisites 22 | 23 | 1. System requirement: Linux (DFIRE potential calculation only runs on Linux. Tested on Red Hat Enterprise Linux 6) 24 | 2. The data-generation module dependencies are provided in `./DataGeneration/environment.yml`. Please change line 9 in the file according to your system. To install all the dependencies run `conda env create -f environment.yml`. 25 | 3. The learning module requires Pytorch. To install it, refer to https://pytorch.org/get-started/locally. 26 | 27 | # Usage 28 | 29 | The package provides data-generation, prediction, and training modules. 30 | 31 | 1. Data generation 32 | 33 | This module generates data for training/prediction while providing intermediate results for visualization. All files are under `./DataGeneration`. The DFIRE potential calculation uses the module (`./DataGeneration/dligand-linux`) described in `A Knowledge-Based Energy Function for Protein−Ligand, Protein−Protein, and Protein−DNA Complexes by Zhang et al.` since it is written in Fortran, which is faster than our own implementation in Python. 34 | 35 | To generate the binding grid data, run 36 | 37 |
python voxelization.py --f example.pdb --a example_aux.txt --o results --r 15 --n 31 --p
38 | 39 | - `--f` input pdb file path. 40 | - `--a` input auxilary file path, with binding residue numbers and center of ligand (optional). An example of the auxilary file is provided in `example_aux.txt`. 41 | - `--r` the radius of the spherical grid. 42 | - `--n` the number of points along the dimension of the spherical grid. 43 | - `--o` output folder path. 44 | - `--p` or `--s` whether to calculate the potential nor not. If not, only the binary occupied grid will be returne, i.e., the shape of the grid only. Default, yes (`--p`). 45 | 46 | Several files will be saved, including `example_transformed.pdb` (coordinate-transformed pdb file), `example_transformed.mol2` (coordinate-transformed mol2 file for the calculation of DFIRE potential), `example.grid` (grid representation of the binding pocket grid for visualization), and `example.h5` (numpy array of the voxel representation). 47 | 48 | To visualize the output binidng pocket grid, run 49 | 50 |
python visualization --i example.grid --c 0
51 | 52 | - `--i` input binding pocket grid file path. 53 | - `--c` channel to visualize. Note that if you pass `--s` in the previous step, the channel number `--c` has to be 0. 54 | 55 | An output `example_grid.pdb` will be generated for visualization. Note this pocket grid matches the transformed protein `example_transformed.pdb`. 56 | 57 | 2. Prediction 58 | 59 | This module classifies the target binding pocket to be either an ATP-, Heme-, or other-type pocket, which basically means which type of ligand it tends to binding to. The trained model is available at `https://osf.io/enz69/`. All files are under `./Learning`. 60 | 61 | To use the prediction module, run 62 | 63 |
python predict.py --f example.h5 --m path_to_the_trianed_model
64 | 65 | 66 | - `--f` input h5 file path. 67 | - `--m` path to the trained model weights. 68 | 69 | The output would be something like 70 | 71 |
The probability of pocket provided binds with ATP ligands: 0.3000
72 | The probability of pocket provided binds with Heme ligands: 0.2000
73 | The probability of pocket provided binds with other ligands: 0.5000
74 | 
75 | 76 | 3. Training 77 | 78 | In order to use our model to train your own dataset, you have to convert your dataset, which will be pdbs to voxel representation of protein-ligand biniding grid representation. The data conversion procedure has been descibed before. The module runs a random 5-fold cross validation. All the related results including loss, accuracy and model weights will be saved. All files are under `./Learning`. 79 | 80 | The trainig module can be runned as 81 | 82 |
python train.py --path path_to_your_data_folder --lpath path_to_your_label_file --bs batch_size --lr inital_learning_rate --epoch number_of_epoches --opath output_folder_path
83 | 84 | - `--path` path to the folder contains all the voxel data. 85 | - `--lpath` label file path. The file should be a comma separated file with no header. The first column is the filename and the second column is the class (starts from 0). An example has been provided `./Learning/labels`. 86 | - `--bs`, `--lr`, `--epoch` is the hyperparameters related to the model. Recommanded values are 64, 1e-5, 50. 87 | - `--opath` If no output location is provided, a `logs` folder will be created under current working directory to store everything. 88 | 89 | # Dataset 90 | 91 | We provided our dataset we used for the training at https://osf.io/enz69/, which are the voxel representations of ATP, Heme, and other along with the class label file. 92 | -------------------------------------------------------------------------------- /image/1a2sA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulimeng/DeepDrug3D/98992afc8a777bd71044caf4e5ef52746e404930/image/1a2sA.png -------------------------------------------------------------------------------- /image/eg_grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pulimeng/DeepDrug3D/98992afc8a777bd71044caf4e5ef52746e404930/image/eg_grid.png --------------------------------------------------------------------------------