rbbt-util 5.17.73 → 5.17.74
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/share/rbbt_commands/system/optimize +82 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60cd54c17004ef80456c9a69b1c2f5f9b8c5f175
|
4
|
+
data.tar.gz: d7e91f9c4beeda66383edb73e5c1db647d30af59
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69c7cbb4d618f5830df5bf91e8927712884bb83ca7f95e0179522e9c0a49e694d85de0efc6c28ed40d3faecc9f3dbc6932944bd703fdfa67faa9fb08894b6061
|
7
|
+
data.tar.gz: 27a0fdd194de5180300fe37d0b888130c23a91132ebef7c84ddd6d62954575a7f173cab3f46a984b4bd0cdbc5392ee8bf668642f9678a057870f4165af23433c
|
@@ -0,0 +1,82 @@
|
|
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
|
+
|
10
|
+
Optimize the files in a directory.
|
11
|
+
|
12
|
+
$ rbbt system optimize [options] <directory>
|
13
|
+
|
14
|
+
Compresses the chromosome files with BGZ and optimizes TokyoCabinet databases. Some files
|
15
|
+
do not compress correctly with BGZ and are left un-compressed.
|
16
|
+
|
17
|
+
-h--help Print this help
|
18
|
+
-k--keep Keep original files
|
19
|
+
|
20
|
+
EOF
|
21
|
+
if options[:help]
|
22
|
+
if defined? rbbt_usage
|
23
|
+
rbbt_usage
|
24
|
+
else
|
25
|
+
puts SOPT.usage
|
26
|
+
end
|
27
|
+
exit 0
|
28
|
+
end
|
29
|
+
|
30
|
+
directory = ARGV.shift
|
31
|
+
raise ParameterException, "No directory given" if directory.nil?
|
32
|
+
|
33
|
+
raise ParameterException, "Not a valid directory" unless File.directory? directory
|
34
|
+
|
35
|
+
directory = Path.setup directory.dup
|
36
|
+
keep = options[:keep]
|
37
|
+
|
38
|
+
Log.info Log.color(:magenta, "Processing chromosomes")
|
39
|
+
chromosome_files = directory.glob('**/chromosome_*')
|
40
|
+
TSV.traverse chromosome_files, :type => :array, :bar => "Processing chromosomes" do |chr_file|
|
41
|
+
next if chr_file =~ /.bgz$/
|
42
|
+
compressed_file = chr_file + '.bgz'
|
43
|
+
Log.info "Compressing #{ chr_file } into #{ compressed_file }"
|
44
|
+
CMD.cmd("bgzip '#{ chr_file }' -c > #{ compressed_file }")
|
45
|
+
begin
|
46
|
+
Open.read(compressed_file)
|
47
|
+
if keep
|
48
|
+
Log.info "File #{ chr_file } was correctly compressed. Keeping original"
|
49
|
+
else
|
50
|
+
Log.info "File #{ chr_file } was correctly compressed. Removing original"
|
51
|
+
FileUtils.rm chr_file
|
52
|
+
end
|
53
|
+
rescue
|
54
|
+
Log.warn "File #{ chr_file } was not correctly compressed. Removing compressed version and leaving original"
|
55
|
+
FileUtils.rm compressed_file
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
Log.info Log.color(:magenta, "Processing Tokyo Cabinet files")
|
60
|
+
|
61
|
+
all_files = directory.glob('**/*')
|
62
|
+
TSV.traverse all_files, :type => :array, :bar => "Processing Tokyo Cabinet files" do |file|
|
63
|
+
cmd = 'file "' << file << '"'
|
64
|
+
file_type = CMD.cmd(cmd).read.strip.partition(/:\s+/).last
|
65
|
+
next unless file_type =~ /Tokyo/
|
66
|
+
type = file_type.split(", ")[1]
|
67
|
+
case type
|
68
|
+
when "Hash"
|
69
|
+
cmd = 'tchmgr optimize "' << file << '"'
|
70
|
+
when "B+ tree"
|
71
|
+
cmd = 'tcbmgr optimize "' << file << '"'
|
72
|
+
else
|
73
|
+
next
|
74
|
+
end
|
75
|
+
size = File.size(file)
|
76
|
+
cmd << ' -td -tl' if size > 2_000_000_000 or file_type =~ /deflate/
|
77
|
+
Log.info "Optimizing #{type} database #{file}"
|
78
|
+
io = CMD.cmd(cmd)
|
79
|
+
while line = io.gets
|
80
|
+
Log.debug line
|
81
|
+
end
|
82
|
+
end
|
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.17.
|
4
|
+
version: 5.17.74
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
@@ -308,6 +308,7 @@ files:
|
|
308
308
|
- share/rbbt_commands/study/task
|
309
309
|
- share/rbbt_commands/system/clean
|
310
310
|
- share/rbbt_commands/system/deleted_files
|
311
|
+
- share/rbbt_commands/system/optimize
|
311
312
|
- share/rbbt_commands/system/purge
|
312
313
|
- share/rbbt_commands/system/report
|
313
314
|
- share/rbbt_commands/system/status
|