rbbt-util 5.21.19 → 5.21.20

Sign up to get free protection for your applications and to get access to all the features.
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