class_docstr: Class for doing data splits based on the butina clustering of a bulk tanimoto
  fingerprint matrix.
  
  Note
  ----
  This class requires RDKit to be installed.
  
  Examples
  --------
  >>> import deepchem as dc
  >>> import numpy as np
  >>> # creation of demo data set with some smiles strings
  >>> smiles= ['C', 'CC', 'CCC', 'CCCC', 'CCCCC']
  >>> Xs = np.zeros(len(smiles))
  >>> # creation of a deepchem dataset with the smile codes in the ids field
  >>> dataset = dc.data.DiskDataset.from_numpy(X=Xs,ids=smiles)
  >>> butinasplitter = dc.splits.ButinaSplitter()
  >>> train_dataset, test_dataset = butinasplitter.train_test_split(dataset)
  >>> print(train_dataset.ids)
  ['CCCC' 'CCC' 'CCCCC' 'CC']
  >>> print(test_dataset.ids)
  ['C']
class_docstr_tok: ["Class","for","doing","data","splits","based","on","the","butina","clustering","of","a","bulk","tanimoto","fingerprint","matrix",".","Note","--","--","This","class","requires","RDKit","to","be","installed",".","Examples","--","--","--","--",">",">",">","import","deepchem","as","dc",">",">",">","import","numpy","as","np",">",">",">","#","creation","of","demo","data","set","with","some","smiles","strings",">",">",">","smiles=","[","'","C","'",",","'CC","'",",","'CCC","'",",","'CCCC","'",",","'CCCCC","'","]",">",">",">","Xs","=","np.zeros","(","len","(","smiles",")",")",">",">",">","#","creation","of","a","deepchem","dataset","with","the","smile","codes","in","the","ids","field",">",">",">","dataset","=","dc.data.DiskDataset.from_numpy","(","X=Xs",",","ids=smiles",")",">",">",">","butinasplitter","=","dc.splits.ButinaSplitter","(",")",">",">",">","train_dataset",",","test_dataset","=","butinasplitter.train_test_split","(","dataset",")",">",">",">","print","(","train_dataset.ids",")","[","'CCCC","'","'CCC","'","'CCCCC","'","'CC","'","]",">",">",">","print","(","test_dataset.ids",")","[","'","C","'","]"]
docstr: Create a ButinaSplitter.
  
  Parameters
  ----------
  cutoff: float (default 0.6)
      The cutoff value for tanimoto similarity.  Molecules that are more similar
      than this will tend to be put in the same dataset.
docstr_tok: ["Create","a","ButinaSplitter",".","Parameters","--","--","--","--","--","cutoff",":","float","(","default","0.6",")","The","cutoff","value","for","tanimoto","similarity",".","Molecules","that","are","more","similar","than","this","will","tend","to","be","put","in","the","same","dataset","."]
code: def __init__(self, cutoff: float = 0.6):
      """Create a ButinaSplitter.
  
      Parameters
      ----------
      cutoff: float (default 0.6)
          The cutoff value for tanimoto similarity.  Molecules that are more similar
          than this will tend to be put in the same dataset.
      """
      super(ButinaSplitter, self).__init__()
      self.cutoff = cutoff
  
imports: import inspect
  import itertools
  import logging
  import os
  import random
  import tempfile
  from typing import Any, Dict, Iterator, List, Optional, Sequence, Tuple, Union
  import deepchem
  import numpy
  import pandas
  from deepchem.data import Dataset, DiskDataset
  from deepchem.utils import get_print_threshold
label_desc: Use image node_id 1 to create a new ButinaSplitter object from inherited base classes: Splitter with example: obj = ButinaSplitter(cutoff)