code: def gen_kinase(
      KINASE_tasks,
      raw_train_dir,
      train_dir,
      valid_dir,
      test_dir,
      shard_size=10000,
  ):
      """Load Kinase datasets."""
      train_files = "KINASE_training_disguised_combined_full.csv.gz"
      valid_files = "KINASE_test1_disguised_combined_full.csv.gz"
      test_files = "KINASE_test2_disguised_combined_full.csv.gz"
  
      # Featurize Kinase dataset
      print("About to featurize KINASE dataset.")
      featurizer = dc.feat.UserDefinedFeaturizer(kinase_descriptors)
  
      loader = dc.data.UserCSVLoader(
          tasks=KINASE_tasks, id_field="Molecule", featurizer=featurizer
      )
  
      train_datasets, valid_datasets, test_datasets = [], [], []
      print("Featurizing train datasets")
      train_dataset = loader.featurize(
          train_files, shard_size=shard_size
      )
  
      print("Featurizing valid datasets")
      valid_dataset = loader.featurize(
          valid_files, shard_size=shard_size
      )
  
      print("Featurizing test datasets")
      test_dataset = loader.featurize(test_files, shard_size=shard_size)
  
      print("Remove missing entries from datasets.")
      remove_missing_entries(train_dataset)
      remove_missing_entries(valid_dataset)
      remove_missing_entries(test_dataset)
  
      print("Transforming datasets with transformers.")
      transformers = get_transformers(train_dataset)
      raw_train_dataset = train_dataset
  
      for transformer in transformers:
          print(
              "Performing transformations with %s"
              % transformer.__class__.__name__
          )
          print("Transforming datasets")
          train_dataset = transformer.transform(train_dataset)
          valid_dataset = transformer.transform(valid_dataset)
          test_dataset = transformer.transform(test_dataset)
  
      print("Shuffling order of train dataset.")
      train_dataset.sparse_shuffle()
  
      print("Moving directories")
      raw_train_dataset.move(raw_train_dir)
      train_dataset.move(train_dir)
      valid_dataset.move(valid_dir)
      test_dataset.move(test_dir)
  
      return (
          raw_train_dataset,
          train_dataset,
          valid_dataset,
          test_dataset,
      )
  
file_path: deepchem/examples/kinase/KINASE_datasets.py
imports: from __future__ import print_function
  from __future__ import division
  from __future__ import unicode_literals
  import os
  import shutil
  import time
  import numpy
  import deepchem
  from kinase_features import kinase_descriptors
label_desc: Use image node_id 3 for calling a global function with example usage: gen_kinase(KINASE_tasks, raw_train_dir, train_dir, valid_dir, test_dir, shard_size) and returns: raw_train_dataset,  train_dataset,  valid_dataset,  test_dataset