rbbt-dm 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbbt/statistics/fdr.rb +38 -26
- data/lib/rbbt/statistics/hypergeometric.rb +5 -3
- data/test/rbbt/statistics/test_fdr.rb +4 -5
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8e5a9283f6f9108886ee24aeea8b589e6499833f
         | 
| 4 | 
            +
              data.tar.gz: 171269f201ce1e0f6d068e0002096cd94884150a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f7b061d03710e3e570e39dc907d9220c19dfdee0809c469fe92d1eb01a62d34c938cc9274c906b2a5d078bc2ffe2c42af2c1f7ab142e5a9bf172f0559203c173
         | 
| 7 | 
            +
              data.tar.gz: c7e7e6bf19b44a2ba0638df98d515e7239da9e1933f77cf7ed93552caae60dde9b66b53056d2eacd692ec51b2023c0894cfb435a7eaec92954fda4963dadc71c
         | 
    
        data/lib/rbbt/statistics/fdr.rb
    CHANGED
    
    | @@ -135,36 +135,48 @@ module FDR | |
| 135 135 | 
             
                alias :step_up :step_up_fast
         | 
| 136 136 | 
             
              end
         | 
| 137 137 |  | 
| 138 | 
            -
              # This will change the values of the floats in-situ
         | 
| 139 138 | 
             
              def self.adjust_hash!(data, field = nil)
         | 
| 140 | 
            -
                 | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
                   | 
| 145 | 
            -
                  data.unnamed = true
         | 
| 146 | 
            -
                end
         | 
| 147 | 
            -
             | 
| 148 | 
            -
                data.collect{|key, value| [key, Array === ( v = field.nil? ? value : value[field] ) ? v.first : v] }.sort{|a,b| 
         | 
| 149 | 
            -
                  a[1] <=> b[1]
         | 
| 150 | 
            -
                }.each{|p|
         | 
| 151 | 
            -
                  keys << p[0]
         | 
| 152 | 
            -
                  values << p[1]
         | 
| 153 | 
            -
                }
         | 
| 139 | 
            +
                begin
         | 
| 140 | 
            +
                  if data.respond_to? :unnamed
         | 
| 141 | 
            +
                    unnamed = data.unnamed 
         | 
| 142 | 
            +
                    data.unnamed = true
         | 
| 143 | 
            +
                  end
         | 
| 154 144 |  | 
| 155 | 
            -
             | 
| 156 | 
            -
                   | 
| 157 | 
            -
             | 
| 145 | 
            +
                  values = []
         | 
| 146 | 
            +
                  keys = []
         | 
| 147 | 
            +
                  data.collect{|k,vs|
         | 
| 148 | 
            +
                    v = field.nil? ? vs : vs[field]
         | 
| 149 | 
            +
                    v = v.first if Array === v
         | 
| 150 | 
            +
                    [k, v] 
         | 
| 151 | 
            +
                  }.sort{|a,b| 
         | 
| 152 | 
            +
                    a[1] <=> b[1]
         | 
| 153 | 
            +
                  }.each{|p|
         | 
| 154 | 
            +
                    keys << p[0]
         | 
| 155 | 
            +
                    values << p[1]
         | 
| 156 | 
            +
                  }
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                  if RUBY_VERSION[0] == "2"
         | 
| 159 | 
            +
                    values = FDR.adjust(values)
         | 
| 160 | 
            +
                    keys.zip(values).each do |k,v|
         | 
| 161 | 
            +
                      vs = data[k] 
         | 
| 162 | 
            +
                      if field
         | 
| 163 | 
            +
                        vs[field] = v
         | 
| 164 | 
            +
                      else
         | 
| 165 | 
            +
                        if Array === vs
         | 
| 166 | 
            +
                          vs[0] = v
         | 
| 167 | 
            +
                        else
         | 
| 168 | 
            +
                          data[k] = vs
         | 
| 169 | 
            +
                        end
         | 
| 170 | 
            +
                      end
         | 
| 171 | 
            +
                    end
         | 
| 172 | 
            +
                  else
         | 
| 173 | 
            +
                    FDR.adjust!(values)
         | 
| 174 | 
            +
                  end
         | 
| 158 175 |  | 
| 159 | 
            -
             | 
| 160 | 
            -
             | 
| 161 | 
            -
                   | 
| 162 | 
            -
                  data   = Hash[*keys.zip(values).flatten]
         | 
| 163 | 
            -
                else
         | 
| 164 | 
            -
                  FDR.adjust!(values)
         | 
| 176 | 
            +
                  data
         | 
| 177 | 
            +
                ensure
         | 
| 178 | 
            +
                  data.unnamed = unnamed if unnamed
         | 
| 165 179 | 
             
                end
         | 
| 166 | 
            -
             | 
| 167 | 
            -
                data 
         | 
| 168 180 | 
             
              end
         | 
| 169 181 |  | 
| 170 182 | 
             
            end
         | 
| @@ -101,8 +101,9 @@ double hypergeometric_c(double total, double support, double list, double found) | |
| 101 101 | 
             
                EOC
         | 
| 102 102 | 
             
              end
         | 
| 103 103 |  | 
| 104 | 
            -
              def self.hypergeometric( | 
| 105 | 
            -
                RSRuby.instance.phyper( | 
| 104 | 
            +
              def self.hypergeometric(count, positive, negative, total)
         | 
| 105 | 
            +
                #RSRuby.instance.phyper(count - 1, positive, negative, total, false).to_f
         | 
| 106 | 
            +
                R.eval("phyper(#{ count } - 1, #{ positive }, #{ negative }, #{ total }, FALSE)").to_f
         | 
| 106 107 | 
             
              end
         | 
| 107 108 | 
             
            end
         | 
| 108 109 |  | 
| @@ -246,7 +247,8 @@ module TSV | |
| 246 247 | 
             
                    elems = elems.collect{|elem| rename.include?(elem)? rename[elem] : elem }.compact.uniq if rename
         | 
| 247 248 | 
             
                    count = elems.length
         | 
| 248 249 | 
             
                    next if count < options[:min_support] or not counts.include? annotation
         | 
| 249 | 
            -
                    pvalues[annotation] = RSRuby.instance.phyper(count - 1, counts[annotation], tsv_size - counts[annotation], total, false).to_f
         | 
| 250 | 
            +
                    #pvalues[annotation] = RSRuby.instance.phyper(count - 1, counts[annotation], tsv_size - counts[annotation], total, false).to_f
         | 
| 251 | 
            +
                    pvalues[annotation] = Hypergeometric.hypergeometric(count, counts[annotation], tsv_size - counts[annotation], total)
         | 
| 250 252 | 
             
                  end
         | 
| 251 253 |  | 
| 252 254 | 
             
                  pvalues = FDR.adjust_hash! pvalues if options[:fdr]
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
         | 
| 2 2 | 
             
            require 'rbbt/statistics/fdr'
         | 
| 3 3 | 
             
            require 'test/unit'
         | 
| 4 | 
            -
            require ' | 
| 4 | 
            +
            require 'rbbt/util/R'
         | 
| 5 5 |  | 
| 6 6 | 
             
            class TestFDR < Test::Unit::TestCase
         | 
| 7 7 | 
             
              def clean(values)
         | 
| @@ -17,11 +17,9 @@ class TestFDR < Test::Unit::TestCase | |
| 17 17 | 
             
              end
         | 
| 18 18 |  | 
| 19 19 | 
             
              def setup
         | 
| 20 | 
            -
                @r = RSRuby.instance
         | 
| 21 20 | 
             
                @values = [0.001, 0.002, 0.003, 0.003, 0.003, 0.004, 0.006, 0.07, 0.09]
         | 
| 22 21 | 
             
                @threshold = 0.01
         | 
| 23 | 
            -
                @r_adj =  | 
| 24 | 
            -
             | 
| 22 | 
            +
                @r_adj = R.eval_a "p.adjust(#{R.ruby2R(@values)},'BH')"
         | 
| 25 23 | 
             
              end
         | 
| 26 24 |  | 
| 27 25 | 
             
              def test_step_up
         | 
| @@ -34,8 +32,9 @@ class TestFDR < Test::Unit::TestCase | |
| 34 32 | 
             
                assert_equal(clean(@r_adj), clean(FDR.adjust_native(@values)))
         | 
| 35 33 | 
             
                assert_equal(clean(FDR.adjust_fast(@values)), clean(FDR.adjust_native(@values)))
         | 
| 36 34 |  | 
| 37 | 
            -
                assert_equal(clean(@r_adj), clean(FDR.adjust_fast_self(copy(@values))))
         | 
| 35 | 
            +
                assert_equal(clean(@r_adj), clean(FDR.adjust_fast_self(copy(@values)))) if RUBY_VERSION[0] != "2"
         | 
| 38 36 | 
             
              end
         | 
| 37 | 
            +
             | 
| 39 38 | 
             
            end
         | 
| 40 39 |  | 
| 41 40 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rbbt-dm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.1. | 
| 4 | 
            +
              version: 1.1.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Miguel Vazquez
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-05-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rbbt-util
         |