rbbt-util 5.26.150 → 5.26.151
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/util/cmd.rb +18 -2
- data/lib/rbbt/util/misc/inspect.rb +7 -0
- data/lib/rbbt/util/version.rb +2 -0
- data/lib/rbbt/workflow/step/run.rb +1 -0
- data/test/rbbt/util/test_misc.rb +64 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 11b833bbcd15bc363a8bc7923828bc7545c276f79d9ed2d41a1078e8d57fff10
|
4
|
+
data.tar.gz: 83bfc6713a4333ae904cd8636eb8e9724545085d1c4aff1973b534287521d342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23f47354eba951a3d299b132c25e096d6de81e3e1254fda1a5a6b0a245455139c9bfcbf4db4d20ca50b7d91828a04fdca517109235ffd4fae69feb118f252392
|
7
|
+
data.tar.gz: a3fbc000a6626b94da9a6895a473a1300b388e7350d05327cd824e3a027a7ca50c5c761a29fe7c52b39ea66be8e89f81c6c76137ee6283be0a1ad254e95b4960
|
data/lib/rbbt/util/cmd.rb
CHANGED
@@ -29,7 +29,18 @@ module CMD
|
|
29
29
|
block.call
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
version_txt = ""
|
33
|
+
%w(--version -version --help).each do |f|
|
34
|
+
begin
|
35
|
+
version_txt += CMD.cmd("#{tool} #{f}").read
|
36
|
+
break
|
37
|
+
rescue
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
version = Misc.scan_version_text(version_txt, tool)
|
42
|
+
|
43
|
+
@@init_cmd_tool[tool] = version || true
|
33
44
|
|
34
45
|
return cmd if cmd
|
35
46
|
end
|
@@ -37,6 +48,11 @@ module CMD
|
|
37
48
|
tool.to_s
|
38
49
|
end
|
39
50
|
|
51
|
+
def self.versions
|
52
|
+
return {} unless defined? @@init_cmd_tool
|
53
|
+
@@init_cmd_tool.select{|k,v| v =~ /\d+\./ }
|
54
|
+
end
|
55
|
+
|
40
56
|
def self.gzip_pipe(file)
|
41
57
|
Open.gzip?(file) ? "<(gunzip -c '#{file}')" : "'#{file}'"
|
42
58
|
end
|
@@ -88,7 +104,7 @@ module CMD
|
|
88
104
|
|
89
105
|
log = true if log.nil?
|
90
106
|
|
91
|
-
if cmd.nil?
|
107
|
+
if cmd.nil? && ! Symbol === tool
|
92
108
|
cmd = tool
|
93
109
|
else
|
94
110
|
tool = get_tool(tool)
|
@@ -398,4 +398,11 @@ module Misc
|
|
398
398
|
nil
|
399
399
|
end
|
400
400
|
end
|
401
|
+
|
402
|
+
def self.scan_version_text(text, cmd = nil)
|
403
|
+
cmd = "NOCMDGIVE" if cmd.nil? || cmd.empty?
|
404
|
+
m = text.match(/(?:version.*?|#{cmd}.*?|v)((?:\d+\.)*\d+(?:-[a-z_]+)?)/i)
|
405
|
+
return nil if m.nil?
|
406
|
+
m[1]
|
407
|
+
end
|
401
408
|
end
|
data/lib/rbbt/util/version.rb
CHANGED
@@ -420,6 +420,7 @@ class Step
|
|
420
420
|
result
|
421
421
|
end # END PERSIST
|
422
422
|
log :done, "Completed step #{Log.color :yellow, task.name.to_s || ""} in #{time_elapsed.to_i}+#{(total_time_elapsed - time_elapsed).to_i} sec." unless stream or time_elapsed.nil?
|
423
|
+
set_info :versions, Rbbt.versions
|
423
424
|
|
424
425
|
if no_load
|
425
426
|
@result ||= result
|
data/test/rbbt/util/test_misc.rb
CHANGED
@@ -626,5 +626,69 @@ EOF
|
|
626
626
|
assert_match /^[0-9a-z]{10,}$/, Misc.file2md5(file)
|
627
627
|
end
|
628
628
|
end
|
629
|
+
|
630
|
+
def test_scan_version_text
|
631
|
+
txt =<<-EOF
|
632
|
+
Program: bcftools (Tools for variant calling and manipulating VCFs and BCFs)
|
633
|
+
Version: 1.10.2-dirty (using htslib 1.10.2-12-gd807564-dirty)
|
634
|
+
|
635
|
+
Usage: bcftools [--version|--version-only] [--help] <command> <argument>
|
636
|
+
|
637
|
+
Commands:
|
638
|
+
|
639
|
+
-- Indexing
|
640
|
+
index index VCF/BCF files
|
641
|
+
|
642
|
+
-- VCF/BCF manipulation
|
643
|
+
annotate annotate and edit VCF/BCF files
|
644
|
+
concat concatenate VCF/BCF files from the same set of samples
|
645
|
+
convert convert VCF/BCF files to different formats and back
|
646
|
+
isec intersections of VCF/BCF files
|
647
|
+
merge merge VCF/BCF files files from non-overlapping sample sets
|
648
|
+
norm left-align and normalize indels
|
649
|
+
plugin user-defined plugins
|
650
|
+
query transform VCF/BCF into user-defined formats
|
651
|
+
reheader modify VCF/BCF header, change sample names
|
652
|
+
sort sort VCF/BCF file
|
653
|
+
view VCF/BCF conversion, view, subset and filter VCF/BCF files
|
654
|
+
|
655
|
+
-- VCF/BCF analysis
|
656
|
+
call SNP/indel calling
|
657
|
+
consensus create consensus sequence by applying VCF variants
|
658
|
+
cnv HMM CNV calling
|
659
|
+
csq call variation consequences
|
660
|
+
filter filter VCF/BCF files using fixed thresholds
|
661
|
+
gtcheck check sample concordance, detect sample swaps and contamination
|
662
|
+
mpileup multi-way pileup producing genotype likelihoods
|
663
|
+
roh identify runs of autozygosity (HMM)
|
664
|
+
stats produce VCF/BCF stats
|
665
|
+
|
666
|
+
Most commands accept VCF, bgzipped VCF, and BCF with the file type detected
|
667
|
+
automatically even when streaming from a pipe. Indexed VCF and BCF will work
|
668
|
+
in all situations. Un-indexed VCF and BCF and streams will work in most but
|
669
|
+
not all situations.
|
670
|
+
EOF
|
671
|
+
|
672
|
+
assert_equal "1.10.2-dirty", Misc.scan_version_text(txt, "bcftools")
|
673
|
+
|
674
|
+
txt =<<-EOF
|
675
|
+
The Genome Analysis Toolkit (GATK) v4.1.4.1
|
676
|
+
HTSJDK Version: 2.21.0
|
677
|
+
Picard Version: 2.21.2
|
678
|
+
EOF
|
679
|
+
assert_equal "4.1.4.1", Misc.scan_version_text(txt, "gatk")
|
680
|
+
|
681
|
+
|
682
|
+
txt =<<-EOF
|
683
|
+
grep (GNU grep) 3.1
|
684
|
+
Copyright (C) 2017 Free Software Foundation, Inc.
|
685
|
+
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
|
686
|
+
This is free software: you are free to change and redistribute it.
|
687
|
+
There is NO WARRANTY, to the extent permitted by law.
|
688
|
+
|
689
|
+
Written by Mike Haertel and others, see <http://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.
|
690
|
+
EOF
|
691
|
+
assert_equal "3.1", Misc.scan_version_text(txt, "grep")
|
692
|
+
end
|
629
693
|
end
|
630
694
|
|