bio-vcf 0.8.2 → 0.9.0
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/.travis.yml +8 -2
- data/Gemfile +4 -6
- data/README.md +92 -57
- data/Rakefile +3 -41
- data/TAGS +115 -0
- data/VERSION +1 -1
- data/bin/bio-vcf +58 -70
- data/bio-vcf.gemspec +23 -75
- data/features/cli.feature +6 -1
- data/features/multisample.feature +12 -0
- data/features/step_definitions/cli-feature.rb +2 -2
- data/features/step_definitions/multisample.rb +19 -0
- data/features/step_definitions/vcf_header.rb +1 -1
- data/features/support/env.rb +0 -9
- data/lib/bio-vcf/pcows.rb +210 -0
- data/lib/bio-vcf/vcfheader.rb +28 -9
- data/lib/bio-vcf/vcfheader_line.rb +455 -160
- data/lib/bio-vcf/vcfrecord.rb +30 -15
- data/ragel/gen_vcfheaderline_parser.rl +68 -25
- data/ragel/generate.sh +4 -1
- data/template/vcf2json.erb +16 -16
- data/template/vcf2json_full_header.erb +16 -17
- data/template/vcf2json_use_meta.erb +35 -35
- data/test/data/input/gatk_exome.vcf +237 -0
- data/test/data/input/gatk_wgs.vcf +1000 -0
- data/test/data/input/test.bed +632 -0
- data/test/data/regression/eval_once-stderr.new +1 -0
- data/test/data/regression/eval_once.new +1 -0
- data/test/data/regression/eval_once.ref +1 -0
- data/test/data/regression/eval_r.info.dp-stderr.new +4 -0
- data/test/data/regression/eval_r.info.dp.new +150 -0
- data/test/data/regression/ifilter_s.dp-stderr.new +28 -0
- data/test/data/regression/ifilter_s.dp.new +31 -0
- data/test/data/regression/r.info.dp-stderr.new +4 -0
- data/test/data/regression/r.info.dp.new +147 -0
- data/test/data/regression/rewrite.info.sample-stderr.new +4 -0
- data/test/data/regression/rewrite.info.sample.new +150 -0
- data/test/data/regression/s.dp-stderr.new +12 -0
- data/test/data/regression/s.dp.new +145 -0
- data/test/data/regression/seval_s.dp-stderr.new +4 -0
- data/test/data/regression/seval_s.dp.new +36 -0
- data/test/data/regression/sfilter_seval_s.dp-stderr.new +12 -0
- data/test/data/regression/sfilter_seval_s.dp.new +31 -0
- data/test/data/regression/thread4-stderr.new +4 -0
- data/test/data/regression/thread4.new +150 -0
- data/test/data/regression/thread4_4-stderr.new +15 -0
- data/test/data/regression/thread4_4.new +150 -0
- data/test/data/regression/thread4_4_failed_filter-stderr.new +5 -0
- data/test/data/regression/thread4_4_failed_filter-stderr.ref +5 -2
- data/test/data/regression/thread4_4_failed_filter.new +110 -0
- data/test/data/regression/vcf2json_full_header-stderr.new +4 -0
- data/test/data/regression/vcf2json_full_header.new +225 -0
- data/test/data/regression/vcf2json_full_header.ref +222 -258
- data/test/data/regression/vcf2json_use_meta-stderr.new +4 -0
- data/test/data/regression/vcf2json_use_meta.new +4697 -0
- data/test/data/regression/vcf2json_use_meta.ref +4697 -0
- data/test/performance/metrics.md +18 -1
- data/test/tmp/test.vcf +12469 -0
- metadata +38 -62
- data/Gemfile.lock +0 -81
- data/ragel/gen_vcfheaderline_parser.rb +0 -483
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1364a1b5bd401632c6c2ae2497a358c206d7a9e6
|
4
|
+
data.tar.gz: 2a8cad615012dcd175cc3bb614888b33db16483b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d8420c9926835ff632cd8dd93c057c08f37dc557c86d76fd1766a044dcc5a8b7c573553c2ef6efe8e348d868666c7fa6d62b34779e214b090cf3287e087e61c8
|
7
|
+
data.tar.gz: b666a3d97a63ac18ef7ff88e002b88dee8a81e703cadaacaffc968fe7f634591bcf5df40cd930b9493e293530047d8cc6a31df446ebf1e5cd7bfb2f6164e3e0a
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
2
|
|
6
3
|
# Add dependencies to develop your gem here.
|
7
4
|
# Include everything needed to run rake, tests, features, etc.
|
8
5
|
group :development do
|
9
6
|
# gem "minitest"
|
10
|
-
gem "
|
11
|
-
gem "
|
12
|
-
gem "
|
7
|
+
gem "rake"
|
8
|
+
gem "rspec"
|
9
|
+
gem "cucumber"
|
13
10
|
gem "regressiontest", ">= 0.0.3"
|
14
11
|
end
|
15
12
|
|
13
|
+
|
data/README.md
CHANGED
@@ -2,10 +2,19 @@
|
|
2
2
|
|
3
3
|
[](http://travis-ci.org/pjotrp/bioruby-vcf)
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
VCF
|
5
|
+
## Updates
|
6
|
+
|
7
|
+
* The outputter now writes (properly) in parallel with the parser
|
8
|
+
* bio-vcf turns any VCF into JSON with header information, and
|
9
|
+
allows you to pipe that JSON directly into any JSON supporting
|
10
|
+
language, including Python and Javascript!
|
11
|
+
|
12
|
+
## Bio-vcf
|
13
|
+
|
14
|
+
Bio-vcf is a new generation VCF parser, filter and converter. Bio-vcf is not only
|
15
|
+
very fast for genome-wide (WGS) data, it also comes with a really nice
|
16
|
+
filtering, evaluation and rewrite language and it can output any type
|
17
|
+
of textual data, including VCF header and contents in RDF and JSON.
|
9
18
|
|
10
19
|
So, why would you use bio-vcf over other parsers? Because
|
11
20
|
|
@@ -14,36 +23,47 @@ So, why would you use bio-vcf over other parsers? Because
|
|
14
23
|
3. Bio-vcf has great multi-sample support
|
15
24
|
4. Bio-vcf has multiple global filters and sample filters
|
16
25
|
5. Bio-vcf can access any VCF format
|
17
|
-
6. Bio-vcf can
|
18
|
-
7. Bio-vcf
|
19
|
-
8. Bio-vcf
|
20
|
-
9. Bio-vcf has
|
21
|
-
10. Bio-vcf
|
26
|
+
6. Bio-vcf can parse and query the VCF header (META)
|
27
|
+
7. Bio-vcf can do calculations on fields
|
28
|
+
8. Bio-vcf allows for genotype processing
|
29
|
+
9. Bio-vcf has support for set analysis
|
30
|
+
10. Bio-vcf has sane error handling
|
31
|
+
11. Bio-vcf can convert *any* VCF to *any* output, including tabular data, BED, HTML, LaTeX, RDF, JSON and JSON-LD and even other VCFs by using (erb) templates
|
22
32
|
|
23
33
|
Bio-vcf has better performance than other tools
|
24
34
|
because of lazy parsing, multi-threading, and useful combinations of
|
25
|
-
(fancy) command line filtering
|
26
|
-
bio-vcf is typically 50% faster than JVM based SnpSift. Adding
|
35
|
+
(fancy) command line filtering (who says Ruby is slow?). Adding
|
27
36
|
cores, bio-vcf just does better. The more complicated the filters,
|
28
|
-
the larger the gain.
|
37
|
+
the larger the gain. First the base line test to show IO performance
|
38
|
+
|
39
|
+
```sh
|
40
|
+
time cat ESP6500SI-V2-SSA137.GRCh38-liftover.*.vcf|wc
|
41
|
+
1987143 15897724 1003214613
|
42
|
+
real 0m7.823s
|
43
|
+
user 0m7.002s
|
44
|
+
sys 0m2.972s
|
45
|
+
```
|
46
|
+
|
47
|
+
Next run the 1Gb data with bio-vcf effectively using 5 cores on AMD Opteron(tm) Processor 6174 using Linux
|
29
48
|
|
30
49
|
```sh
|
31
|
-
time
|
32
|
-
real
|
33
|
-
user
|
34
|
-
sys
|
50
|
+
time cat ESP6500SI-V2-SSA137.GRCh38-liftover.*.vcf|./bin/bio-vcf -iv --num-threads 8 --filter 'r.info.cp.to_f>0.3' > /dev/null
|
51
|
+
real 0m32.491s
|
52
|
+
user 2m34.767s
|
53
|
+
sys 0m12.733s
|
35
54
|
```
|
36
55
|
|
37
|
-
|
56
|
+
The same with SnpSift v4.0 takes
|
38
57
|
|
39
58
|
```sh
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
59
|
+
time cat ESP6500SI-V2-SSA137.GRCh38-liftover.*.vcf|java -jar snpEff/SnpSift.jar filter "( CP>0.3 )" > /dev/null
|
60
|
+
real 12m36.121s
|
61
|
+
user 12m53.273s
|
62
|
+
sys 0m9.913s
|
44
63
|
```
|
45
64
|
|
46
|
-
|
65
|
+
This means that on this machine bio-vcf is 24x faster than SnpSift even for a simple filter.
|
66
|
+
In fact, bio-vcf is perfect for complex filters and parsing large data files on powerful machines. Parsing a 650 Mb GATK
|
47
67
|
Illumina Hiseq VCF file and evaluating the results into a BED format on
|
48
68
|
a 16 core machine takes
|
49
69
|
|
@@ -72,11 +92,17 @@ assumptions are made about the actual contents of the VCF file (field
|
|
72
92
|
names are resolved on the fly), so bio-vcf should work with
|
73
93
|
all VCF files.
|
74
94
|
|
75
|
-
To fetch all entries where all samples have depth larger than 20
|
76
|
-
a sample filter
|
95
|
+
To fetch all entries where all samples have depth larger than 20 and
|
96
|
+
filter set to PASS use a sample filter
|
77
97
|
|
78
98
|
```ruby
|
79
|
-
bio-vcf --sfilter 'sample.dp>20' < file.vcf
|
99
|
+
bio-vcf --sfilter 'sample.dp>20 and rec.filter=="PASS"' < file.vcf
|
100
|
+
```
|
101
|
+
|
102
|
+
or with a regex
|
103
|
+
|
104
|
+
```ruby
|
105
|
+
bio-vcf --sfilter 'sample.dp>20 and rec.filter !~ /LowQD/' < file.vcf
|
80
106
|
```
|
81
107
|
|
82
108
|
To only filter on some samples number 0 and 3:
|
@@ -265,6 +291,12 @@ Get the sample names
|
|
265
291
|
NORMAL,TUMOR
|
266
292
|
```
|
267
293
|
|
294
|
+
Get information from the header (META)
|
295
|
+
|
296
|
+
```ruby
|
297
|
+
bio-vcf -q --skip-header --eval-once 'header.meta["GATKCommandLine"]' < gatk_exome.vcf
|
298
|
+
```
|
299
|
+
|
268
300
|
The 'fields' array contains unprocessed data (strings). Print first
|
269
301
|
five raw fields
|
270
302
|
|
@@ -304,7 +336,10 @@ Info fields are referenced by
|
|
304
336
|
bio-vcf --filter 'rec.info.dp>100 and rec.info.readposranksum<=0.815' < file.vcf
|
305
337
|
```
|
306
338
|
|
307
|
-
|
339
|
+
(alternatively you can use the indexed rec.info['DP'] and list INFO fields with
|
340
|
+
rec.info.fields).
|
341
|
+
|
342
|
+
Subfields defined by rec.format:
|
308
343
|
|
309
344
|
```ruby
|
310
345
|
bio-vcf --filter 'rec.tumor.ss != 2' < file.vcf
|
@@ -695,7 +730,7 @@ template could be
|
|
695
730
|
"seq:ref": "<%= rec.ref %>" ,
|
696
731
|
"seq:alt": "<%= rec.alt[0] %>" ,
|
697
732
|
"seq:maf": <%= rec.info.maf[0] %> ,
|
698
|
-
"dp": <%= rec.info.dp %>
|
733
|
+
"dp": <%= rec.info.dp %>
|
699
734
|
};
|
700
735
|
```
|
701
736
|
|
@@ -715,7 +750,7 @@ which renders
|
|
715
750
|
"seq:ref": "C" ,
|
716
751
|
"seq:alt": "T" ,
|
717
752
|
"seq:maf": 0.0151 ,
|
718
|
-
"dp": 86
|
753
|
+
"dp": 86
|
719
754
|
};
|
720
755
|
```
|
721
756
|
|
@@ -767,24 +802,23 @@ can be
|
|
767
802
|
```Javascript
|
768
803
|
=HEADER
|
769
804
|
<% require 'json' %>
|
770
|
-
|
771
|
-
{ "HEADER": {
|
805
|
+
{ "HEADER": {
|
772
806
|
"options": <%= options.to_h.to_json %>,
|
773
807
|
"files": <%= ARGV %>,
|
774
808
|
"version": "<%= BIOVCF_VERSION %>"
|
775
809
|
},
|
776
|
-
|
810
|
+
"BODY":[
|
777
811
|
=BODY
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
},
|
812
|
+
{
|
813
|
+
"seq:chr": "<%= rec.chrom %>" ,
|
814
|
+
"seq:pos": <%= rec.pos %> ,
|
815
|
+
"seq:ref": "<%= rec.ref %>" ,
|
816
|
+
"seq:alt": "<%= rec.alt[0] %>" ,
|
817
|
+
"dp": <%= rec.info.dp %>
|
818
|
+
},
|
786
819
|
=FOOTER
|
787
|
-
]
|
820
|
+
]
|
821
|
+
}
|
788
822
|
```
|
789
823
|
|
790
824
|
with
|
@@ -796,27 +830,28 @@ with
|
|
796
830
|
may generate something like
|
797
831
|
|
798
832
|
```Javascript
|
799
|
-
|
800
|
-
{ "HEADER": {
|
833
|
+
{ "HEADER": {
|
801
834
|
"options": {"show_help":false,"source":"https://github.com/CuppenResearch/bioruby-vcf","version":"0.8.1-pre3 (Pjotr Prins)","date":"2014-11-26 12:51:36 +0000","thread_lines":40000,"template":"template/vcf2json.erb","skip_header":true},
|
802
835
|
"files": [],
|
803
836
|
"version": "0.8.1-pre3"
|
804
837
|
},
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
838
|
+
"BODY":[
|
839
|
+
{
|
840
|
+
"seq:chr": "1" ,
|
841
|
+
"seq:pos": 883516 ,
|
842
|
+
"seq:ref": "G" ,
|
843
|
+
"seq:alt": "A" ,
|
844
|
+
"dp":
|
845
|
+
},
|
846
|
+
{
|
847
|
+
"seq:chr": "1" ,
|
848
|
+
"seq:pos": 891344 ,
|
849
|
+
"seq:ref": "G" ,
|
850
|
+
"seq:alt": "A" ,
|
851
|
+
"dp": ,
|
852
|
+
},
|
853
|
+
]
|
854
|
+
}
|
820
855
|
```
|
821
856
|
|
822
857
|
Note that the template is not smart enough to remove the final comma
|
data/Rakefile
CHANGED
@@ -1,50 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
|
-
require 'bundler'
|
5
|
-
begin
|
6
|
-
Bundler.setup(:default, :development)
|
7
|
-
rescue Bundler::BundlerError => e
|
8
|
-
$stderr.puts e.message
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
-
exit e.status_code
|
11
|
-
end
|
12
4
|
require 'rake'
|
13
5
|
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "bio-vcf"
|
18
|
-
gem.homepage = "http://github.com/pjotrp/bioruby-vcf"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = %Q{Fast multi-threaded VCF parser}
|
21
|
-
gem.description = %Q{Smart lazy multi-threaded parser for VCF format with useful filtering and output rewriting}
|
22
|
-
gem.email = "pjotr.public01@thebird.nl"
|
23
|
-
gem.authors = ["Pjotr Prins"]
|
24
|
-
gem.required_ruby_version = '>=2.0.0'
|
25
|
-
# dependencies defined in Gemfile
|
26
|
-
end
|
27
|
-
Jeweler::RubygemsDotOrgTasks.new
|
28
|
-
|
29
|
-
# require 'rspec/core'
|
30
|
-
# require 'rspec/core/rake_task'
|
31
|
-
# RSpec::Core::RakeTask.new(:spec) do |spec|
|
32
|
-
# spec.pattern = FileList['spec/**/*_spec.rb']
|
33
|
-
# end
|
34
|
-
|
35
|
-
# RSpec::Core::RakeTask.new(:rcov) do |spec|
|
36
|
-
# spec.pattern = 'spec/**/*_spec.rb'
|
37
|
-
# spec.rcov = true
|
38
|
-
# end
|
39
|
-
|
40
|
-
# require 'rake/testtask'
|
41
|
-
|
42
|
-
# Rake::TestTask.new do |t|
|
43
|
-
# t.pattern = "spec/*_spec.rb"
|
44
|
-
# end
|
45
|
-
|
46
6
|
require 'cucumber/rake/task'
|
47
|
-
Cucumber::Rake::Task.new(:features)
|
7
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
8
|
+
# t.cucumber_opts = "--bundler false"
|
9
|
+
end
|
48
10
|
|
49
11
|
task :default => :features
|
50
12
|
|
data/TAGS
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
|
2
|
+
./bin/bio-vcf,0
|
3
|
+
|
4
|
+
./lib/bio-vcf.rb,0
|
5
|
+
|
6
|
+
./lib/bio-vcf/vcfgenotypefield.rb,1553
|
7
|
+
module BioVcf::BioVcf1,0
|
8
|
+
class VcfNucleotides::BioVcf::VcfNucleotides7,167
|
9
|
+
def initialize::BioVcf::VcfNucleotides#BioVcf::VcfNucleotides.new8,193
|
10
|
+
def []::BioVcf::VcfNucleotides#[]13,284
|
11
|
+
def to_ary::BioVcf::VcfNucleotides#to_ary27,628
|
12
|
+
def max::BioVcf::VcfNucleotides#max32,742
|
13
|
+
def min::BioVcf::VcfNucleotides#min37,856
|
14
|
+
def sum::BioVcf::VcfNucleotides#sum42,975
|
15
|
+
class VcfAltInfo::BioVcf::VcfAltInfo50,1082
|
16
|
+
def initialize::BioVcf::VcfAltInfo#BioVcf::VcfAltInfo.new51,1103
|
17
|
+
def []::BioVcf::VcfAltInfo#[]56,1194
|
18
|
+
def to_ary::BioVcf::VcfAltInfo#to_ary70,1512
|
19
|
+
def max::BioVcf::VcfAltInfo#max75,1626
|
20
|
+
def min::BioVcf::VcfAltInfo#min79,1702
|
21
|
+
def sum::BioVcf::VcfAltInfo#sum83,1783
|
22
|
+
class VcfGenotypeField::BioVcf::VcfGenotypeField88,1850
|
23
|
+
def initialize::BioVcf::VcfGenotypeField#BioVcf::VcfGenotypeField.new89,1877
|
24
|
+
def dp4::BioVcf::VcfGenotypeField#dp496,2020
|
25
|
+
def ad::BioVcf::VcfGenotypeField#ad100,2098
|
26
|
+
def pl::BioVcf::VcfGenotypeField#pl104,2174
|
27
|
+
def bcount::BioVcf::VcfGenotypeField#bcount108,2250
|
28
|
+
def bq::BioVcf::VcfGenotypeField#bq112,2343
|
29
|
+
def amq::BioVcf::VcfGenotypeField#amq116,2424
|
30
|
+
def method_missing::BioVcf::VcfGenotypeField#method_missing120,2507
|
31
|
+
class VcfGenotypeFields::BioVcf::VcfGenotypeFields130,2709
|
32
|
+
def initialize::BioVcf::VcfGenotypeFields#BioVcf::VcfGenotypeFields.new131,2737
|
33
|
+
def []::BioVcf::VcfGenotypeFields#[]141,3021
|
34
|
+
def method_missing::BioVcf::VcfGenotypeFields#method_missing145,3136
|
35
|
+
|
36
|
+
./lib/bio-vcf/vcfrdf.rb,156
|
37
|
+
module BioVcf::BioVcf1,0
|
38
|
+
module VcfRdf::BioVcf::VcfRdf5,93
|
39
|
+
def VcfRdf::BioVcf::VcfRdf#VcfRdf7,112
|
40
|
+
def VcfRdf::BioVcf::VcfRdf#VcfRdf18,463
|
41
|
+
|
42
|
+
./lib/bio-vcf/vcf.rb,27
|
43
|
+
module BioVcf::BioVcf2,1
|
44
|
+
|
45
|
+
./lib/bio-vcf/vcfline.rb,118
|
46
|
+
module BioVcf::BioVcf1,0
|
47
|
+
module VcfLine::BioVcf::VcfLine2,16
|
48
|
+
def VcfLine.parse::BioVcf::VcfLine.parse5,82
|
49
|
+
|
50
|
+
./lib/bio-vcf/vcfrecord.rb,1831
|
51
|
+
module BioVcf::BioVcf1,0
|
52
|
+
class VcfRecordInfo::BioVcf::VcfRecordInfo3,17
|
53
|
+
def initialize::BioVcf::VcfRecordInfo#BioVcf::VcfRecordInfo.new4,41
|
54
|
+
def method_missing::BioVcf::VcfRecordInfo#method_missing9,163
|
55
|
+
module VcfRecordParser::BioVcf::VcfRecordParser18,329
|
56
|
+
def VcfRecordParser.get_format::BioVcf::VcfRecordParser.get_format20,397
|
57
|
+
def VcfRecordParser.get_info::BioVcf::VcfRecordParser.get_info25,517
|
58
|
+
module VcfRecordCall::BioVcf::VcfRecordCall30,592
|
59
|
+
def call_diff::BioVcf::VcfRecordCall#call_diff31,617
|
60
|
+
def call_nuc::BioVcf::VcfRecordCall#call_nuc35,705
|
61
|
+
def call_tumor_count::BioVcf::VcfRecordCall#call_tumor_count39,764
|
62
|
+
def call_tumor_relative_count::BioVcf::VcfRecordCall#call_tumor_relative_count43,833
|
63
|
+
def call_normal_count::BioVcf::VcfRecordCall#call_normal_count47,955
|
64
|
+
def index::BioVcf::VcfRecordCall#index51,1026
|
65
|
+
class VcfRecord::BioVcf::VcfRecord56,1125
|
66
|
+
attr_reader :header::BioVcf::VcfRecord#header60,1173
|
67
|
+
def initialize::BioVcf::VcfRecord#BioVcf::VcfRecord.new62,1198
|
68
|
+
def chrom::BioVcf::VcfRecord#chrom67,1292
|
69
|
+
def pos::BioVcf::VcfRecord#pos71,1332
|
70
|
+
def ids::BioVcf::VcfRecord#ids75,1384
|
71
|
+
def id::BioVcf::VcfRecord#id79,1443
|
72
|
+
def ref::BioVcf::VcfRecord#ref83,1476
|
73
|
+
def alt::BioVcf::VcfRecord#alt87,1524
|
74
|
+
def qual::BioVcf::VcfRecord#qual91,1582
|
75
|
+
def info::BioVcf::VcfRecord#info95,1636
|
76
|
+
def format::BioVcf::VcfRecord#format99,1711
|
77
|
+
def normal::BioVcf::VcfRecord#normal104,1848
|
78
|
+
def tumor::BioVcf::VcfRecord#tumor109,1997
|
79
|
+
def sample::BioVcf::VcfRecord#sample114,2134
|
80
|
+
def sample_by_name::BioVcf::VcfRecord#sample_by_name118,2227
|
81
|
+
def missing_samples?::BioVcf::VcfRecord#missing_samples?122,2283
|
82
|
+
def method_missing::BioVcf::VcfRecord#method_missing126,2341
|
83
|
+
|
84
|
+
./lib/bio-vcf/variant.rb,470
|
85
|
+
module BioVcf::BioVcf1,0
|
86
|
+
module Variant::BioVcf::Variant3,17
|
87
|
+
def Variant.diff::BioVcf::Variant.diff5,37
|
88
|
+
def Variant.threshold_diff::BioVcf::Variant.threshold_diff9,132
|
89
|
+
def Variant.relative_diff::BioVcf::Variant.relative_diff14,269
|
90
|
+
def Variant.relative_threshold_diff::BioVcf::Variant.relative_threshold_diff20,497
|
91
|
+
def Variant.index::BioVcf::Variant.index25,652
|
92
|
+
def Variant.apply_threshold::BioVcf::Variant.apply_threshold31,809
|
93
|
+
|
94
|
+
./lib/bio-vcf/vcfheader.rb,598
|
95
|
+
module BioVcf::BioVcf2,1
|
96
|
+
module VcfHeaderParser::BioVcf::VcfHeaderParser4,18
|
97
|
+
def VcfHeaderParser.get_column_names::BioVcf::VcfHeaderParser.get_column_names5,45
|
98
|
+
class VcfHeader::BioVcf::VcfHeader18,339
|
99
|
+
attr_reader :lines::BioVcf::VcfHeader#lines20,360
|
100
|
+
def initialize::BioVcf::VcfHeader#BioVcf::VcfHeader.new22,384
|
101
|
+
def add::BioVcf::VcfHeader#add26,430
|
102
|
+
def version::BioVcf::VcfHeader#version30,483
|
103
|
+
def column_names::BioVcf::VcfHeader#column_names34,578
|
104
|
+
def columns::BioVcf::VcfHeader#columns38,674
|
105
|
+
def samples::BioVcf::VcfHeader#samples42,735
|
106
|
+
|
107
|
+
./features/step_definitions/diff_count.rb,0
|
108
|
+
|
109
|
+
./features/step_definitions/bio-vcf_steps.rb,0
|
110
|
+
|
111
|
+
./features/step_definitions/somaticsniper.rb,0
|
112
|
+
|
113
|
+
./features/step_definitions/multisample.rb,0
|
114
|
+
|
115
|
+
./features/support/env.rb,0
|