rbbt-util 5.20.12 → 5.20.13
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/persist/tsv.rb +1 -0
- data/lib/rbbt/tsv/parser.rb +0 -1
- data/lib/rbbt/tsv/stream.rb +60 -1
- data/lib/rbbt/tsv/util.rb +0 -42
- data/lib/rbbt/util/misc/omics.rb +1 -1
- data/lib/rbbt/util/misc/pipes.rb +0 -5
- data/lib/rbbt/workflow/step/dependencies.rb +1 -2
- data/test/rbbt/tsv/test_stream.rb +16 -0
- 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: 841046995ec2cd9dda2e965c39eb088c77460d72
         | 
| 4 | 
            +
              data.tar.gz: 5f07ff9767eaf96377ff5dc1ed222599e111486d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: b1f2f171aedb529a94e7d972859f8dcc6b2c152a74e0bbc37e8d3816f1274f9df3e2bbc593d633be412cea27b47c7dcae47e29f2ae8c4d019812b4492a5eea59
         | 
| 7 | 
            +
              data.tar.gz: 19e701161b6b0c8b7cf74e508b18365d94c53af2783441145afda1673dd38f45c16a17ef64527a5d99484246c9e80a64ec780edefbe95ed39028812abdd145ca
         | 
    
        data/lib/rbbt/persist/tsv.rb
    CHANGED
    
    
    
        data/lib/rbbt/tsv/parser.rb
    CHANGED
    
    
    
        data/lib/rbbt/tsv/stream.rb
    CHANGED
    
    | @@ -10,7 +10,7 @@ module TSV | |
| 10 10 |  | 
| 11 11 | 
             
                sorted_input_stream = Misc.sort_stream input_stream, header_hash, cmd_args
         | 
| 12 12 |  | 
| 13 | 
            -
                parser = TSV::Parser.new | 
| 13 | 
            +
                parser = TSV::Parser.new(sorted_input_stream, options.dup)
         | 
| 14 14 | 
             
                dumper = TSV::Dumper.new parser
         | 
| 15 15 | 
             
                header = TSV.header_lines(parser.key_field, parser.fields, parser.options)
         | 
| 16 16 | 
             
                dumper.close_in
         | 
| @@ -232,4 +232,63 @@ module TSV | |
| 232 232 | 
             
                end
         | 
| 233 233 | 
             
                dumper
         | 
| 234 234 | 
             
              end
         | 
| 235 | 
            +
             | 
| 236 | 
            +
             | 
| 237 | 
            +
              def self.reorder_stream(stream, positions, sep = "\t")
         | 
| 238 | 
            +
                Misc.open_pipe do |sin|
         | 
| 239 | 
            +
                  line = stream.gets
         | 
| 240 | 
            +
                  line.strip! unless line.nil?
         | 
| 241 | 
            +
             | 
| 242 | 
            +
                  while line =~ /^#\:/
         | 
| 243 | 
            +
                    sin.puts line
         | 
| 244 | 
            +
                    line = stream.gets
         | 
| 245 | 
            +
                    line.strip! unless line.nil?
         | 
| 246 | 
            +
                  end
         | 
| 247 | 
            +
             | 
| 248 | 
            +
                  while line  =~ /^#/
         | 
| 249 | 
            +
                    if Hash === positions
         | 
| 250 | 
            +
                      new = (0..line.split(sep).length-1).to_a
         | 
| 251 | 
            +
                      positions.each do |k,v|
         | 
| 252 | 
            +
                        new[k] = v
         | 
| 253 | 
            +
                        new[v] = k
         | 
| 254 | 
            +
                      end
         | 
| 255 | 
            +
                      positions = new
         | 
| 256 | 
            +
                    end
         | 
| 257 | 
            +
                    sin.puts "#" + line.sub(/^#/,'').strip.split(sep).values_at(*positions).compact * sep
         | 
| 258 | 
            +
                    line = stream.gets
         | 
| 259 | 
            +
                    line.strip! unless line.nil?
         | 
| 260 | 
            +
                  end
         | 
| 261 | 
            +
             | 
| 262 | 
            +
                  while line
         | 
| 263 | 
            +
                    if Hash === positions
         | 
| 264 | 
            +
                      new = (0..line.split(sep).length-1).to_a
         | 
| 265 | 
            +
                      positions.each do |k,v|
         | 
| 266 | 
            +
                        new[k] = v
         | 
| 267 | 
            +
                        new[v] = k
         | 
| 268 | 
            +
                      end
         | 
| 269 | 
            +
                      positions = new
         | 
| 270 | 
            +
                    end
         | 
| 271 | 
            +
                    values = line.split(sep)
         | 
| 272 | 
            +
                    new_values = values.values_at(*positions)
         | 
| 273 | 
            +
                    sin.puts new_values * sep
         | 
| 274 | 
            +
                    line = stream.gets
         | 
| 275 | 
            +
                    line.strip! unless line.nil?
         | 
| 276 | 
            +
                  end
         | 
| 277 | 
            +
                end
         | 
| 278 | 
            +
              end
         | 
| 279 | 
            +
             | 
| 280 | 
            +
             | 
| 281 | 
            +
              def self.reorder_stream_tsv(stream, key_field, fields)
         | 
| 282 | 
            +
                parser = TSV::Parser.new TSV.get_stream(stream), :key_field => key_field, :fields => fields
         | 
| 283 | 
            +
                dumper_options = parser.options
         | 
| 284 | 
            +
                dumper = TSV::Dumper.new dumper_options
         | 
| 285 | 
            +
                dumper.init 
         | 
| 286 | 
            +
                TSV.traverse parser, :into => dumper do |key,values|
         | 
| 287 | 
            +
                  key = key.first if Array === key
         | 
| 288 | 
            +
                  values = [values] unless Array === values
         | 
| 289 | 
            +
                  [key, values]
         | 
| 290 | 
            +
                end
         | 
| 291 | 
            +
                dumper
         | 
| 292 | 
            +
              end
         | 
| 293 | 
            +
             | 
| 235 294 | 
             
            end
         | 
    
        data/lib/rbbt/tsv/util.rb
    CHANGED
    
    | @@ -6,48 +6,6 @@ module TSV | |
| 6 6 | 
             
                field_matches.sort_by{|field, count| count.to_i}.last
         | 
| 7 7 | 
             
              end
         | 
| 8 8 |  | 
| 9 | 
            -
              def self.reorder_stream(stream, positions, sep = "\t")
         | 
| 10 | 
            -
                Misc.open_pipe do |sin|
         | 
| 11 | 
            -
                  line = stream.gets
         | 
| 12 | 
            -
                  line.strip! unless line.nil?
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                  while line =~ /^#\:/
         | 
| 15 | 
            -
                    sin.puts line
         | 
| 16 | 
            -
                    line = stream.gets
         | 
| 17 | 
            -
                    line.strip! unless line.nil?
         | 
| 18 | 
            -
                  end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                  while line  =~ /^#/
         | 
| 21 | 
            -
                    if Hash === positions
         | 
| 22 | 
            -
                      new = (0..line.split(sep).length-1).to_a
         | 
| 23 | 
            -
                      positions.each do |k,v|
         | 
| 24 | 
            -
                        new[k] = v
         | 
| 25 | 
            -
                        new[v] = k
         | 
| 26 | 
            -
                      end
         | 
| 27 | 
            -
                      positions = new
         | 
| 28 | 
            -
                    end
         | 
| 29 | 
            -
                    sin.puts "#" + line.sub(/^#/,'').strip.split(sep).values_at(*positions).compact * sep
         | 
| 30 | 
            -
                    line = stream.gets
         | 
| 31 | 
            -
                    line.strip! unless line.nil?
         | 
| 32 | 
            -
                  end
         | 
| 33 | 
            -
             | 
| 34 | 
            -
                  while line
         | 
| 35 | 
            -
                    if Hash === positions
         | 
| 36 | 
            -
                      new = (0..line.split(sep).length-1).to_a
         | 
| 37 | 
            -
                      positions.each do |k,v|
         | 
| 38 | 
            -
                        new[k] = v
         | 
| 39 | 
            -
                        new[v] = k
         | 
| 40 | 
            -
                      end
         | 
| 41 | 
            -
                      positions = new
         | 
| 42 | 
            -
                    end
         | 
| 43 | 
            -
                    values = line.split(sep)
         | 
| 44 | 
            -
                    new_values = values.values_at(*positions)
         | 
| 45 | 
            -
                    sin.puts new_values * sep
         | 
| 46 | 
            -
                    line = stream.gets
         | 
| 47 | 
            -
                    line.strip! unless line.nil?
         | 
| 48 | 
            -
                  end
         | 
| 49 | 
            -
                end
         | 
| 50 | 
            -
              end
         | 
| 51 9 |  | 
| 52 10 | 
             
              def self.field_match_counts(file, values, options = {})
         | 
| 53 11 | 
             
                options = Misc.add_defaults options, :persist_prefix => "Field_Matches"
         | 
    
        data/lib/rbbt/util/misc/omics.rb
    CHANGED
    
    
    
        data/lib/rbbt/util/misc/pipes.rb
    CHANGED
    
    | @@ -398,11 +398,6 @@ module Misc | |
| 398 398 | 
             
              def self.sort_stream(stream, header_hash = "#", cmd_args = "-u")
         | 
| 399 399 | 
             
                Misc.open_pipe do |sin|
         | 
| 400 400 | 
             
                  begin
         | 
| 401 | 
            -
                    #if defined? Step and Step === stream
         | 
| 402 | 
            -
                    #  step = stream
         | 
| 403 | 
            -
                    #  stream = stream.get_stream || stream.path.open
         | 
| 404 | 
            -
                    #end
         | 
| 405 | 
            -
             | 
| 406 401 | 
             
                    stream = TSV.get_stream stream
         | 
| 407 402 |  | 
| 408 403 | 
             
                    line = stream.gets
         | 
| @@ -153,8 +153,7 @@ class Step | |
| 153 153 | 
             
                  Log.error "Interrupted while in dep. #{Log.color :red, dependency.task_name.to_s}"
         | 
| 154 154 | 
             
                  raise $!
         | 
| 155 155 | 
             
                rescue Exception
         | 
| 156 | 
            -
                  Log.error "Exception in dep. #{ Log.color :red, dependency.task_name.to_s }"
         | 
| 157 | 
            -
                  Log.exception $!
         | 
| 156 | 
            +
                  Log.error "Exception in dep. #{ Log.color :red, dependency.task_name.to_s } -- #{$!.message}"
         | 
| 158 157 | 
             
                  raise $!
         | 
| 159 158 | 
             
                end
         | 
| 160 159 | 
             
              end
         | 
| @@ -217,4 +217,20 @@ row2 a|aa|aaa | |
| 217 217 | 
             
                assert_equal text2, s2.stream.read
         | 
| 218 218 | 
             
              end
         | 
| 219 219 |  | 
| 220 | 
            +
              def test_reorder_stream
         | 
| 221 | 
            +
                text=<<-EOF
         | 
| 222 | 
            +
            #: :sep=" "
         | 
| 223 | 
            +
            #Row LabelA LabelB LabelC
         | 
| 224 | 
            +
            row1 A B C
         | 
| 225 | 
            +
            row1 a b c
         | 
| 226 | 
            +
            row2 AA BB CC
         | 
| 227 | 
            +
            row2 aa bb cc
         | 
| 228 | 
            +
            row4  BBB CC
         | 
| 229 | 
            +
                EOF
         | 
| 230 | 
            +
             | 
| 231 | 
            +
                s = StringIO.new text
         | 
| 232 | 
            +
                dumper = TSV.reorder_stream_tsv(s, "LabelC", %w(Row LabelA))
         | 
| 233 | 
            +
                tsv = TSV.open TSV.collapse_stream(dumper.stream).stream.read
         | 
| 234 | 
            +
                assert_equal %w(row2 row4), tsv["CC"]["Row"]
         | 
| 235 | 
            +
              end
         | 
| 220 236 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rbbt-util
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 5.20. | 
| 4 | 
            +
              version: 5.20.13
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Miguel Vazquez
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016-06- | 
| 11 | 
            +
            date: 2016-06-17 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rake
         |