Advertisement
Guest User

Untitled

a guest
Apr 18th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.85 KB | None | 0 0
  1. # Copyright (C) Insilico Medicine, Inc - All Rights Reserved
  2. # Unauthorized copying of this file, via any medium is strictly prohibited
  3. # Proprietary and confidential
  4. import os
  5.  
  6. os.environ["CUDA_VISIBLE_DEVICES"] = "0"
  7. from darwin.molecules import FingerPrintsTransformer, FingerPrints2DTransformer, FingerPrints3DTransformer, \
  8.     MCFTransformer, SimilarityTransformerGPU, DrugLikenessFilterTransformer, StructuralSimilarityTransformerGPU, \
  9.     TopologicalSimilarityTransformerGPU, MCFFilterTransformer
  10. from darwin.database.molecules.db_interface import DBInterface
  11. import pandas
  12. from darwin.training.flow import Transform
  13. import numpy
  14. from darwin.training import PickleDataset, Dataset, pipe
  15. from darwin.summary import PipeScorer
  16.  
  17. # from my_callback import *   # Due to the bug with pipe unpickling
  18.  
  19. db = DBInterface(db_name='db_gentlemen', username='gentleman', password='pudge23', port=27018)
  20. X, _ = db.datasets('bbb').get_x(mol_repr='smiles')
  21. data = pandas.concat([X])["smiles"].values
  22. X = X["smiles"].values.squeeze()
  23. mcf = db.mcf.get_dataframe()
  24.  
  25. y = X.copy()
  26. data1 = Dataset(X, y)
  27.  
  28. X, _ = db.datasets('bbb').get_x(mol_repr='smiles')
  29. X = X["smiles"].values.squeeze()
  30. y = X.copy()
  31.  
  32. data2 = Dataset(X, y)
  33.  
  34. n_jobs = 10
  35. maximum = 0.8
  36. minimum = 0.75
  37.  
  38.  
  39. @pipe
  40. class mcf_filter:
  41.     data = data1
  42.     model = MCFFilterTransformer()
  43.     model_mcf = mcf
  44.     model_n_jobs = n_jobs
  45.     model_on_the_fly = True
  46.     model_return_dataframe = False
  47.     context = {
  48.         'train': {'top': data1},
  49.         'io': Transform(top=data1, bottom='druglikeness_filter'),
  50.         'io_output': Transform(top=data1)
  51.     }
  52.  
  53.  
  54. @pipe
  55. class druglikeness_filter:
  56.     model = DrugLikenessFilterTransformer()
  57.     model_n_jobs = n_jobs
  58.     model_on_the_fly = True
  59.     model_return_dataframe = False
  60.     context = {
  61.         'train': {'top': 'mcf_filter__io'},
  62.         'io': Transform(top='mcf_filter__io', bottom='fingerprints'),
  63.         'io_output': Transform(top='mcf_filter__io')
  64.     }
  65.  
  66.  
  67. @pipe
  68. class fingerprints:
  69.     model = FingerPrintsTransformer()
  70.     model_n_jobs = n_jobs
  71.     model_return_dataframe = False
  72.     model_fingerprint_type_to_ndarray = True
  73.     context = {
  74.         'train': {'top': 'druglikeness_filter__io'},
  75.         'io': Transform(top='druglikeness_filter__io', bottom='structural_similarity'),
  76.         'io_output': Transform(top='druglikeness_filter__io')
  77.     }
  78.  
  79.  
  80. @pipe
  81. class fingerprints_external:
  82.     model = FingerPrintsTransformer()
  83.     model_n_jobs = n_jobs
  84.     model_return_dataframe = False
  85.     model_fingerprint_type_to_ndarray = True
  86.     context = {
  87.         'train': {'top': data2},
  88.         'io': Transform(top=data2, bottom='structural_similarity'),
  89.         'io_output': Transform(top=data2)
  90.     }
  91.  
  92.  
  93. @pipe
  94. class structural_similarity:
  95.     model = StructuralSimilarityTransformerGPU()
  96.     model_maximum = maximum
  97.     model_return_dataframe = False
  98.     context = {
  99.         'train': {'top_1': 'fingerprints__io', 'top_2': 'fingerprints_external__io'},
  100.         'io': Transform(top_1='fingerprints__io', top_2='fingerprints_external__io',
  101.                         bottom='fingerprints2d'),
  102.         'io_output': Transform(top_1='fingerprints__io', top_2='fingerprints_external__io')
  103.     }
  104.  
  105.  
  106. @pipe
  107. class fingerprints2d:
  108.     model = FingerPrints2DTransformer()
  109.     model_n_jobs = n_jobs
  110.     model_return_dataframe = False
  111.     model_fingerprint_type_to_ndarray = True
  112.     context = {
  113.         'train': {'top': 'structural_similarity__io'},
  114.         'io': Transform(top='structural_similarity__io', bottom='topological_similarity'),
  115.         'io_output': Transform(top='structural_similarity__io')
  116.     }
  117.  
  118.  
  119. @pipe
  120. class fingerprints2d_external:
  121.     model = FingerPrints2DTransformer()
  122.     model_n_jobs = n_jobs
  123.     model_return_dataframe = False
  124.     model_fingerprint_type_to_ndarray = True
  125.     data = data1
  126.     context = {
  127.         'train': {'top': data2},
  128.         'io': Transform(top=data2, bottom='topological_similarity'),
  129.         'io_output': Transform(top=data2)
  130.     }
  131.  
  132.  
  133. @pipe
  134. class topological_similarity:
  135.     model = TopologicalSimilarityTransformerGPU()
  136.     model_minimum = minimum
  137.     model_return_dataframe = False
  138.     context = {
  139.         'train': {'top_1': 'fingerprints2d__io', 'top_2': 'fingerprints2d_external__io'},
  140.         'io_output': Transform(top_1='fingerprints2d__io', top_2='fingerprints2d_external__io',
  141.                                bottom='topological_similarity'),
  142.         'io_scorer': Transform(top_1='fingerprints2d__io', top_2='fingerprints2d_external__io',
  143.                                bottom='scorer')
  144.     }
  145.  
  146.  
  147. @pipe
  148. class scorer:
  149.     model = PipeScorer()
  150.     model_dataset_name = 'new_pred_test'
  151.     context = {
  152.         'train': {
  153.             'top': 'topological_similarity__io_scorer'
  154.         }
  155.     }
  156.  
  157.  
  158. # result = topological_similarity.make('io_output')
  159. result = scorer.make('train')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement