rbbt-util 5.21.19 → 5.21.20

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c722ae1fd02431a1b5cbe726b12d8cd2af4e8871
4
- data.tar.gz: ea254aa679c034bf5294f9f80f7d430d95c6058b
3
+ metadata.gz: 0df0c7ae6b0b29814a176c029ed4c9f20e13307c
4
+ data.tar.gz: 228920d67af31815ef453b4f05b0c1bc32cf1175
5
5
  SHA512:
6
- metadata.gz: 1c76e07f15de03b2e49b5d21c04cdb358026a957b80ab1973ac4cd389b646fec1140806eb92598a9f6a66e0ada631ef6e41e58e376104ea5954e44b8c4479854
7
- data.tar.gz: 8d7a4dec88f3f42f513e9ea1a009d4911f1e98548696e213c878da217fafd8bed1f56b297f472803fc2e13b70ab5cdff5618ced5ad0a6b6c19055015d62d7166
6
+ metadata.gz: 0af021e82639371b123a9b04ae7d1b89541bf19e7c446fd8ce38ecd25066d06f585d36872edb636e61856b82e3e45b67cc2aa67ffdb236904f81e7d93ca8f160
7
+ data.tar.gz: c1a0e4a399e442a2d8545d71f28636ffcccb0fb1c60422c84c47806cef041738fa22ed10fe9aeb7fd5a347c635e837a025c1df4c3f402c42e520d100482321fd
@@ -695,7 +695,7 @@ Example:
695
695
  end
696
696
 
697
697
  if self.key_field and self.fields
698
- new.key_field = [self.key_field, self.fields[field_pos]] * ":"
698
+ new.key_field = [self.key_field, self.fields[field_pos]] * sep
699
699
  new_fields = self.fields.dup
700
700
  new_fields.delete_at field_pos
701
701
  new.fields = new_fields
@@ -703,5 +703,39 @@ Example:
703
703
 
704
704
  new
705
705
  end
706
+
707
+ def zip(field = 0, merge = false, sep = ":")
708
+ new = {}
709
+ self.annotate new
710
+
711
+ new.type = :double if merge
712
+
713
+ new.with_unnamed do
714
+ if merge
715
+ self.through do |key,values|
716
+ new_key, new_value = key.split(sep)
717
+ new_values = values + [[new_value]]
718
+ if new.include? new_key
719
+ new[new_key] = Misc.zip_fields(Misc.zip_fields(new[new_key]) << new_values)
720
+ else
721
+ new[new_key] = new_values
722
+ end
723
+ end
724
+ else
725
+ self.through do |key,values|
726
+ new_key, new_value = key.split(sep)
727
+ new_values = values + [new_value]
728
+ new[new_key] = new_values
729
+ end
730
+ end
731
+ end
732
+
733
+ if self.key_field and self.fields
734
+ new.key_field = self.key_field.partition(sep).first
735
+ new.fields = new.fields + [field]
736
+ end
737
+
738
+ new
739
+ end
706
740
  end
707
741
 
@@ -15,6 +15,7 @@ Display summary information. Works with Tokyocabinet HDB and BDB as well.
15
15
  -tch--tokyocabinet File is a TC HDB
16
16
  -tcb--tokyocabinet_bd File is a TC BDB
17
17
  -hh--header_hash* Change the character used to mark the header line (defaults to #)
18
+ -zs--zip_sep* Separator between zipped fields
18
19
  -f--field* Field to unzip
19
20
  -m--merge Merge lines
20
21
  -h--help Help
@@ -28,6 +29,7 @@ file = STDIN if file == '-'
28
29
 
29
30
  field = options[:field] || 0
30
31
  merge = options[:merge] || false
32
+ zs = options[:zip_sep] || ":"
31
33
 
32
34
  case
33
35
  when options[:tokyocabinet]
@@ -42,4 +44,4 @@ else
42
44
  tsv = TSV.open(file, {:type => :double}.merge(options))
43
45
  end
44
46
 
45
- puts tsv.unzip(field, merge).to_s
47
+ puts tsv.unzip(field, merge, zs).to_s
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbbt-util'
4
+ require 'rbbt/util/simpleopt'
5
+
6
+ $0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
7
+
8
+ options = SOPT.setup <<EOF
9
+ Zip fields in a TSV file
10
+
11
+ $ rbbt tsv zip [options] file.tsv <new_field>
12
+
13
+ Display summary information. Works with Tokyocabinet HDB and BDB as well.
14
+
15
+ -tch--tokyocabinet File is a TC HDB
16
+ -tcb--tokyocabinet_bd File is a TC BDB
17
+ -hh--header_hash* Change the character used to mark the header line (defaults to #)
18
+ -zs--zip_sep* Separator between zipped fields
19
+ -f--field* Field to unzip
20
+ -m--merge Merge lines
21
+ -h--help Help
22
+ EOF
23
+
24
+ SOPT.usage if options[:help]
25
+
26
+ file = ARGV.shift
27
+
28
+ file = STDIN if file == '-'
29
+
30
+ field = options[:field] || 0
31
+ merge = options[:merge] || false
32
+ zs = options[:zip_sep] || ":"
33
+
34
+ case
35
+ when options[:tokyocabinet]
36
+ tsv = Persist.open_tokyocabinet(file, false)
37
+ when options[:tokyocabinet_bd]
38
+ tsv = Persist.open_tokyocabinet(file, false, nil, TokyoCabinet::BDB)
39
+ else
40
+ if String === file
41
+ file = file.dup
42
+ Path.setup(File.expand_path(file))
43
+ end
44
+ tsv = TSV.open(file, {:type => :double}.merge(options))
45
+ end
46
+
47
+ puts tsv.zip(field, merge, zs).to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.19
4
+ version: 5.21.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
@@ -364,6 +364,7 @@ files:
364
364
  - share/rbbt_commands/tsv/subset
365
365
  - share/rbbt_commands/tsv/unzip
366
366
  - share/rbbt_commands/tsv/values
367
+ - share/rbbt_commands/tsv/zip
367
368
  - share/rbbt_commands/watch
368
369
  - share/rbbt_commands/workflow/cmd
369
370
  - share/rbbt_commands/workflow/example
@@ -486,82 +487,82 @@ signing_key:
486
487
  specification_version: 4
487
488
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
488
489
  test_files:
489
- - test/rbbt/test_workflow.rb
490
+ - test/test_helper.rb
490
491
  - test/rbbt/resource/test_path.rb
491
- - test/rbbt/util/test_cmd.rb
492
- - test/rbbt/util/simpleopt/test_setup.rb
493
- - test/rbbt/util/simpleopt/test_get.rb
494
- - test/rbbt/util/simpleopt/test_parse.rb
495
- - test/rbbt/util/test_chain_methods.rb
496
- - test/rbbt/util/test_simpleDSL.rb
492
+ - test/rbbt/association/test_item.rb
493
+ - test/rbbt/association/test_database.rb
494
+ - test/rbbt/association/test_open.rb
495
+ - test/rbbt/association/test_index.rb
496
+ - test/rbbt/association/test_util.rb
497
+ - test/rbbt/util/test_concurrency.rb
497
498
  - test/rbbt/util/test_log.rb
499
+ - test/rbbt/util/test_chain_methods.rb
500
+ - test/rbbt/util/test_simpleopt.rb
501
+ - test/rbbt/util/simpleopt/test_parse.rb
502
+ - test/rbbt/util/simpleopt/test_get.rb
503
+ - test/rbbt/util/simpleopt/test_setup.rb
504
+ - test/rbbt/util/test_cmd.rb
505
+ - test/rbbt/util/test_semaphore.rb
506
+ - test/rbbt/util/concurrency/test_threads.rb
507
+ - test/rbbt/util/concurrency/processes/test_socket.rb
508
+ - test/rbbt/util/concurrency/test_processes.rb
509
+ - test/rbbt/util/test_tmpfile.rb
498
510
  - test/rbbt/util/test_open.rb
511
+ - test/rbbt/util/test_filecache.rb
512
+ - test/rbbt/util/R/test_eval.rb
513
+ - test/rbbt/util/R/test_model.rb
514
+ - test/rbbt/util/test_simpleDSL.rb
515
+ - test/rbbt/util/log/test_progress.rb
516
+ - test/rbbt/util/test_colorize.rb
517
+ - test/rbbt/util/test_R.rb
499
518
  - test/rbbt/util/misc/test_lock.rb
500
- - test/rbbt/util/misc/test_multipart_payload.rb
501
- - test/rbbt/util/misc/test_bgzf.rb
502
519
  - test/rbbt/util/misc/test_pipes.rb
520
+ - test/rbbt/util/misc/test_bgzf.rb
503
521
  - test/rbbt/util/misc/test_omics.rb
504
- - test/rbbt/util/test_concurrency.rb
505
- - test/rbbt/util/test_R.rb
506
- - test/rbbt/util/log/test_progress.rb
507
- - test/rbbt/util/test_colorize.rb
508
- - test/rbbt/util/test_simpleopt.rb
522
+ - test/rbbt/util/misc/test_multipart_payload.rb
509
523
  - test/rbbt/util/test_excel2tsv.rb
510
- - test/rbbt/util/test_filecache.rb
511
- - test/rbbt/util/concurrency/test_processes.rb
512
- - test/rbbt/util/concurrency/test_threads.rb
513
- - test/rbbt/util/concurrency/processes/test_socket.rb
514
- - test/rbbt/util/test_semaphore.rb
515
524
  - test/rbbt/util/test_misc.rb
516
- - test/rbbt/util/test_tmpfile.rb
517
- - test/rbbt/util/R/test_model.rb
518
- - test/rbbt/util/R/test_eval.rb
519
- - test/rbbt/test_packed_index.rb
520
- - test/rbbt/entity/test_identifiers.rb
521
- - test/rbbt/test_association.rb
522
- - test/rbbt/knowledge_base/test_traverse.rb
523
- - test/rbbt/knowledge_base/test_registry.rb
524
- - test/rbbt/knowledge_base/test_entity.rb
525
- - test/rbbt/knowledge_base/test_enrichment.rb
526
- - test/rbbt/knowledge_base/test_syndicate.rb
527
- - test/rbbt/knowledge_base/test_query.rb
528
- - test/rbbt/test_resource.rb
529
525
  - test/rbbt/test_entity.rb
530
- - test/rbbt/test_knowledge_base.rb
531
- - test/rbbt/annotations/test_util.rb
532
- - test/rbbt/association/test_index.rb
533
- - test/rbbt/association/test_item.rb
534
- - test/rbbt/association/test_open.rb
535
- - test/rbbt/association/test_util.rb
536
- - test/rbbt/association/test_database.rb
537
- - test/rbbt/test_tsv.rb
538
526
  - test/rbbt/workflow/step/test_dependencies.rb
539
- - test/rbbt/workflow/test_task.rb
540
- - test/rbbt/workflow/test_step.rb
541
527
  - test/rbbt/workflow/test_doc.rb
542
- - test/rbbt/test_monitor.rb
543
- - test/rbbt/test_persist.rb
544
- - test/rbbt/test_annotations.rb
545
- - test/rbbt/persist/test_tsv.rb
546
- - test/rbbt/persist/tsv/test_lmdb.rb
547
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
548
- - test/rbbt/persist/tsv/test_sharder.rb
549
- - test/rbbt/persist/tsv/test_cdb.rb
550
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
551
- - test/rbbt/persist/tsv/test_leveldb.rb
552
- - test/rbbt/tsv/test_field_index.rb
528
+ - test/rbbt/workflow/test_step.rb
529
+ - test/rbbt/workflow/test_task.rb
530
+ - test/rbbt/test_association.rb
531
+ - test/rbbt/test_knowledge_base.rb
532
+ - test/rbbt/tsv/parallel/test_traverse.rb
533
+ - test/rbbt/tsv/parallel/test_through.rb
553
534
  - test/rbbt/tsv/test_parallel.rb
554
- - test/rbbt/tsv/test_index.rb
555
- - test/rbbt/tsv/test_matrix.rb
535
+ - test/rbbt/tsv/test_accessor.rb
556
536
  - test/rbbt/tsv/test_change_id.rb
557
- - test/rbbt/tsv/test_parser.rb
558
537
  - test/rbbt/tsv/test_stream.rb
559
- - test/rbbt/tsv/test_util.rb
560
- - test/rbbt/tsv/test_accessor.rb
561
538
  - test/rbbt/tsv/test_filter.rb
539
+ - test/rbbt/tsv/test_matrix.rb
562
540
  - test/rbbt/tsv/test_attach.rb
563
541
  - test/rbbt/tsv/test_manipulate.rb
564
- - test/rbbt/tsv/parallel/test_through.rb
565
- - test/rbbt/tsv/parallel/test_traverse.rb
542
+ - test/rbbt/tsv/test_field_index.rb
543
+ - test/rbbt/tsv/test_index.rb
544
+ - test/rbbt/tsv/test_util.rb
545
+ - test/rbbt/tsv/test_parser.rb
546
+ - test/rbbt/test_packed_index.rb
547
+ - test/rbbt/test_persist.rb
566
548
  - test/rbbt/test_fix_width_table.rb
567
- - test/test_helper.rb
549
+ - test/rbbt/knowledge_base/test_traverse.rb
550
+ - test/rbbt/knowledge_base/test_entity.rb
551
+ - test/rbbt/knowledge_base/test_query.rb
552
+ - test/rbbt/knowledge_base/test_enrichment.rb
553
+ - test/rbbt/knowledge_base/test_syndicate.rb
554
+ - test/rbbt/knowledge_base/test_registry.rb
555
+ - test/rbbt/entity/test_identifiers.rb
556
+ - test/rbbt/test_monitor.rb
557
+ - test/rbbt/test_workflow.rb
558
+ - test/rbbt/test_annotations.rb
559
+ - test/rbbt/annotations/test_util.rb
560
+ - test/rbbt/test_resource.rb
561
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
562
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
563
+ - test/rbbt/persist/tsv/test_lmdb.rb
564
+ - test/rbbt/persist/tsv/test_leveldb.rb
565
+ - test/rbbt/persist/tsv/test_cdb.rb
566
+ - test/rbbt/persist/tsv/test_sharder.rb
567
+ - test/rbbt/persist/test_tsv.rb
568
+ - test/rbbt/test_tsv.rb