anchor.diff:          let negativeTestDistributions = 
               [|  
                   for binSize in negativeBinsizes do
  -                let tmp = bootstrapBin binSize negWeightArr bootstrapIterations
  +                let tmp = bootstrapBin verbose binSize negWeightArr bootstrapIterations
                   yield (binSize,Distributions.Frequency.create (Distributions.Bandwidth.nrd0 tmp) tmp)
               |]
               |> Map.ofArray
  
positive.code:         let absoluteTestDistributions =
              [|  
                  for binSize in absoluteBinsizes do
                  let tmp = bootstrapBin binSize weightArr bootstrapIterations
                  yield (binSize,Distributions.Frequency.create (Distributions.Bandwidth.nrd0 tmp) tmp)
              |]
              |> Map.ofArray
  
negative.code:             |> Array.map (fun (identifier,annotation,indx,value) -> createOntologyItem identifier annotation indx value)
  
      ///utility function to prepare a dataset (in column major form) for SAILENT characterization. The ontology map can be created by using the BioFSharp.BioDB module.
      ///identifiers: a string array containing the annotations of the data at the same index, used as lookup in the ontology map. 
      ///rawData: feature matrix of interest, columns must have same length as identifiers
      let prepareDataset (ontologyMap:Map<string,(string*string) [] >) (identifiers: string []) (rawDataset:float [] []) =
          rawDataset
          |> Array.map (prepareDataColumn ontologyMap identifiers)
  
      ///Compute SAILENT (Surprisal AnalysIs EmpiricaL pErmutatioN Test) for the given annotated dataset. This empirical test was
      ///initially designed for the biological application of Surprisal Analysis to test the weight distribution of a given bin of annotations is significantly different than a random distribution 
      ///of the same size given the whole dataset, but it should be applicable to similar types of datasets.
      ///
      ///Input: 
      ///
      ///- verbose: if true, bootstrap iterations and runtime for bootstrapping is printed
      ///
      ///- bootstrapIterations: the amount of distributions to sample from the whole dataset to create test distributions for each binsize present in the data
      ///
      ///- data: annotated dataset (containing ontology items with the associated feature)
      ///
      ///a SAILENT test returns 3 descriptors for the input data:
      ///Absolute descriptor: test distributions and tests are performed on the absolute values of the dataset
      ///Negative descriptor: test distributions and tests are performed on the negative values of the dataset only
      ///Absolute descriptor: test distributions and tests are performed on the positive values of the dataset only
      let compute (verbose:bool) (bootstrapIterations:int) (data: OntologyItem<float> array) =
  
          printfn "starting SAILENT characterization"
  
  