bio-sam-mutation 0.4.1

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.
@@ -0,0 +1,15 @@
1
+ class Bio::MutationArray < Array
2
+ include VepHgvs
3
+ def to_hgvs(reference_type=nil)
4
+ if length > 0 && reference_type.nil?
5
+ reference_type = first.seqname.match(/^ENS/) ? "c" : "g"
6
+ end
7
+ if length == 1
8
+ first.to_hgvs(reference_type)
9
+ elsif length > 1
10
+ [first.seqname,":",reference_type,".["].join + map(&:to_hgvs).join(";") + "]"
11
+ elsif length == 0
12
+ nil
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,21 @@
1
+ module VepHgvs
2
+ require 'bio-ensembl-rest'
3
+ def vep(species="human",reference_type=nil)
4
+ return unless self.first.to_hgvs
5
+ if reference_type.nil?
6
+ reference_type = self.first.seqname.match(/^ENS/) ? "c" : "g"
7
+ end
8
+ EnsemblRest.connect_db
9
+ JSON.parse(EnsemblRest::Variation.vep_hgvs(species,self.to_hgvs(reference_type)))
10
+ end
11
+
12
+ def self.consequences_for_transcript (json_object,tscript)
13
+ if json_object.length > 0
14
+ if json_object.first["transcript_consequences"]
15
+ consequences = json_object.first["transcript_consequences"]
16
+ consequences.keep_if{|a| a["transcript_id"] == tscript}
17
+ consequences.map{|a| {"Allele" => json_object.first["allele_string"], "CDS position" => a["cds_start"], "Protein start" => a["protein_start"], "Mutation" => a["amino_acids"], "Consequence" => a["consequence_terms"]}}
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,83 @@
1
+ module MutationsCLI
2
+ @default_species = "human"
3
+ @tag_to_add = "YH:m"
4
+ class << self
5
+ attr_accessor :default_species, :tag_to_add
6
+ end
7
+
8
+ def self.tag (sam, config, species=MutationsCLI.default_species)
9
+ # With multiple files, could end up with duplicate headers...
10
+ if sam.match(/^@/)
11
+ if config[:single_product]
12
+ config[:outfile].puts sam
13
+ return
14
+ else
15
+ # If we have multiple products, output sam headers to each output file
16
+ config.each do |key, config_hash|
17
+ next if [:start_length].include? key
18
+ config_hash[:outfile].puts sam
19
+ end
20
+ return
21
+ end
22
+ end
23
+ sam = Bio::DB::Alignment.new(sam)
24
+ # DRY up:
25
+ unless config[:single_product]
26
+ first_bases = sam.seq[0..config[:start_length]-1].upcase
27
+ config[first_bases] ? config = config[first_bases] : return
28
+ end
29
+ # Stop if a search file is specified, and this isn't it.
30
+ return if MutationsCLI.not_included_file?(config, ARGF)
31
+ mut_array = sam.mutations(config[:offset],config[:length],config[:translation_start])
32
+ if mut_array
33
+ new_tag = Bio::DB::Tag.new(MutationsCLI.tag_to_add + ":" + mut_array.to_hgvs)
34
+ config[:outfile].puts sam.add_tag(new_tag)
35
+ end
36
+ end
37
+
38
+ # Returns a MutationArray
39
+ def self.call_mutations sam, config
40
+ unless config[:single_product]
41
+ first_bases = sam.seq[0..config[:start_length]-1].upcase
42
+ config[first_bases] ? config = config[first_bases] : return
43
+ end
44
+ MutationsCLI.call_mutations_given_product sam, config
45
+ end
46
+
47
+ def self.call_mutations_given_product sam, config
48
+ # Stop if a search file is specified, and this isn't it.
49
+ return if MutationsCLI.not_included_file?(config, ARGF)
50
+ sam.mutations(config[:offset],config[:length],config[:translation_start])
51
+ end
52
+
53
+ def self.not_included_file? config, input
54
+ config[:file] && input.filename !~ config[:file]
55
+ end
56
+
57
+ def self.set_defaults config_hash
58
+ config_hash[:start] ||= "." # i.e. regexp will match anything
59
+ config_hash[:offset] ||= 1
60
+ config_hash[:length] ||= 100
61
+ config_hash[:translation_start] ||= 1
62
+ config_hash[:file] = Regexp.new(config_hash[:file]) if config_hash[:file]
63
+ config_hash
64
+ end
65
+
66
+ # Allows multiple amplicons to be considered
67
+ # Organises the configuration data by sequence start
68
+ def self.construct_products config_hash
69
+ new_hash = {}
70
+ config_hash[:products].each do |product_name, config|
71
+ new_hash[config[:start]] = config
72
+ new_hash[config[:start]][:output] ||= product_name + ".sam"
73
+ new_hash[config[:start]][:outfile] = File.open(new_hash[config[:start]][:output],'w')
74
+ end
75
+ lengths = new_hash.keys.map!(&:length).uniq
76
+ new_hash[:start_length] = lengths[0]
77
+ warn "Start sequences given must be same length" if lengths.size > 1
78
+ new_hash
79
+ end
80
+
81
+ #
82
+
83
+ end
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+
3
+ module SimpleCov::Configuration
4
+ def clean_filters
5
+ @filters = []
6
+ end
7
+ end
8
+
9
+ SimpleCov.configure do
10
+ clean_filters
11
+ load_adapter 'test_frameworks'
12
+ end
13
+
14
+ ENV["COVERAGE"] && SimpleCov.start do
15
+ add_filter "/.rvm/"
16
+ end
17
+ require 'rubygems'
18
+ require 'bundler'
19
+ begin
20
+ Bundler.setup(:default, :development)
21
+ rescue Bundler::BundlerError => e
22
+ $stderr.puts e.message
23
+ $stderr.puts "Run `bundle install` to install missing gems"
24
+ exit e.status_code
25
+ end
26
+ require 'test/unit'
27
+ require 'shoulda'
28
+
29
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
30
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
31
+ require 'bio-sam-mutation'
32
+
33
+ class Test::Unit::TestCase
34
+ end
@@ -0,0 +1,145 @@
1
+ require 'helper'
2
+ class CigarTest < Test::Unit::TestCase
3
+ def test_partition
4
+ s = Bio::Alignment::CIGAR.new("M 1 D 2 I 3","GAT",source="exonerate")
5
+ assert_equal([["M",1],["D",2],["I",3]], s.pairs)
6
+ assert_equal(3, s.pairs.length)
7
+ assert_equal(1, s.matched_length)
8
+ end
9
+
10
+ def test_auto_detect
11
+ exonerate = Bio::Alignment::CIGAR.new("M 1 D 2 I 3","GAT")
12
+ sam = Bio::Alignment::CIGAR.new("2M5D4M","ATCCTCCGGAA")
13
+ assert_raise {Bio::Alignment::CIGAR.new("rubbish","GATC")}
14
+ assert_nothing_raised {Bio::Alignment::CIGAR.new("M 1 D 2 I 3","GAT")}
15
+ assert_equal [["M",1],["D",2],["I",3]], exonerate.pairs
16
+ assert_equal [["M",2],["D",5],["M",4]], sam.pairs
17
+ end
18
+
19
+ def test_subalignment
20
+ m = Bio::Alignment::CIGAR.new("M 35","GGATCGATCGATCGATCGATCGATCGATCGATCGA")
21
+ msa = m.subalignment(10,12)
22
+ assert_equal "GATCGATCGATC", msa.reference
23
+ assert_equal [["M", 12]], msa.pairs
24
+
25
+ s = Bio::Alignment::CIGAR.new("M 16 I 1 M 325 D 3 M 4 D 2 M 178 I 1 M 17","TTTAATTGCATTTAATTGCATTTAATTGCATTAATTGCATGGTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTA")
26
+ sa = s.subalignment(340,7)
27
+ # M 16 + M 325 [I not included] = 341
28
+ # Start at 340 = include 340 and 341, i.e. M 2
29
+ # Total of all M+D in subalignment should be 7
30
+ assert_equal([["M", 2],["D",3],["M",2]],sa.pairs)
31
+ assert_equal("CATTTAA",sa.reference)
32
+ # Case where subalignment starts at the end of a pair (M 325 in test case)
33
+ sa2 = s.subalignment(341,7)
34
+ assert_equal([["M", 1],["D",3],["M",3]],sa2.pairs)
35
+ end
36
+
37
+ def test_subcigar
38
+ s = Bio::Alignment::CIGAR.new("M 16 I 1 M 325 D 3 M 4 D 2 M 178 I 1 M 17","TTTAATTGCATTTAATTGCATTTAATTGCATTAATTGCATGGTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTAATTGCATTTA")
39
+ soft = Bio::Alignment::CIGAR.new("1S5M6D15M","CCCTGACGTTGAGGTGGATGGGTTCTCTGAGCTTCGG",source="sam")
40
+ assert_equal [["M", 2],["I",1],["M",4]], s.subcigar(15,7).pairs
41
+ assert_equal [["M",16],["I",1]], s.subcigar(1,17).pairs
42
+ assert_equal [["S",1],["M",2]], soft.subcigar(1,3).pairs
43
+ end
44
+
45
+ def test_small
46
+ s = Bio::Alignment::CIGAR.new("M 20 D 1 I 1 M 1 D 8 I 2 M 10","GGATCGATCGATCGATCGATCGATCGATCGATCGATCGAT")
47
+ assert_equal([["M",20],["M",1],["M",1],["D",8],["I",2],["M",10]],s.remove_small!.pairs)
48
+ # Could improve by combining adjacent pairs of same type.
49
+ end
50
+
51
+ def test_small_deletions
52
+ d = Bio::Alignment::CIGAR.new("M 20 D 1 M 10 D 4","GGATCGATCGATCGATCGATCGATCGATCGATCGA")
53
+ i = Bio::Alignment::CIGAR.new("M 20 I 1 M 10 D 4","GGATCGATCGATCGATCGATCGATCGATCGATCG")
54
+ assert_equal([["M",20],["M",1],["M",10],["D",4]],d.remove_small!.pairs)
55
+ assert_equal([["M",20],["M",10],["D",4]],i.remove_small!.pairs)
56
+
57
+ end
58
+
59
+ def test_lengths
60
+ m = Bio::Alignment::CIGAR.new("M 1 D 2 M 3 I 4 M 5","AAAATAAAATA")
61
+ d = Bio::Alignment::CIGAR.new("M 1 D 2 M 3 I 4 D 5","AAAATAAAATA")
62
+ i = Bio::Alignment::CIGAR.new("M 1 I 2 M 3 I 4 D 5","AAAATAAAA")
63
+ assert_equal(9,m.matched_length)
64
+ assert_equal(7,d.deleted_length)
65
+ assert_equal(6,i.inserted_length)
66
+ assert_equal(11,m.reference_length)
67
+ assert_equal(11,d.reference_length)
68
+ assert_equal(9,i.reference_length)
69
+ end
70
+
71
+ def test_masking
72
+ s1 = Bio::Alignment::CIGAR.new("1S10M","AAAATAAAA",source="sam")
73
+ s2 = Bio::Alignment::CIGAR.new("10M5D","AAAATAAAA",source="sam")
74
+ h = Bio::Alignment::CIGAR.new("25H1I10M","AAAATAAAA",source="sam")
75
+ assert_equal 1, s1.masked_length
76
+ assert_equal 0, s2.masked_length
77
+ assert_equal 25, h.masked_length
78
+ end
79
+
80
+ def test_query_length
81
+ m = Bio::Alignment::CIGAR.new("M 1 D 2 M 3 I 4 M 5","AAAATAAAATA")
82
+ d = Bio::Alignment::CIGAR.new("M 1 D 2 M 3 I 4 D 5","AAAATAAAATA")
83
+ i = Bio::Alignment::CIGAR.new("M 1 I 2 M 3 I 4 D 5","AAAATAAAA")
84
+ s1 = Bio::Alignment::CIGAR.new("1S10M","AAAATAAAA",source="sam")
85
+ s = Bio::Alignment::CIGAR.new("1S5M2D2M1I5M","AAAATAAAA",source="sam")
86
+ assert_equal 13, m.query_length
87
+ assert_equal 8, d.query_length
88
+ assert_equal 10, i.query_length
89
+ assert_equal 11, s1.query_length
90
+ assert_equal 14, s.query_length
91
+ end
92
+
93
+ def test_query_output
94
+ m = Bio::Alignment::CIGAR.new("M 11","AAAATAAAATA")
95
+ lc = Bio::Alignment::CIGAR.new("M 11","aaaataaaata")
96
+ d = Bio::Alignment::CIGAR.new("M 5 D 2 M 4","AAAATAAAATA")
97
+ i = Bio::Alignment::CIGAR.new("M 5 I 10 M 6","AAAATAAAATA")
98
+ i2 = Bio::Alignment::CIGAR.new("M 5 I 2 M 3 I 4 M 6","AAAATGCCAAAATA")
99
+ assert_equal("AAAATAAAATA",m.query)
100
+ assert_equal("AAAATAAAATA",lc.query)
101
+ assert_equal("AAAAT--AATA",d.query)
102
+ assert_equal("AAAAT[10]AAAATA",i.query)
103
+ assert_equal("AAAAT-insertion-AAAATA",i.query("-insertion-"))
104
+ assert_equal("AAAATttGCCataaAAAATA",i2.query(["tt","ataa"]))
105
+ end
106
+
107
+ def test_positions
108
+ i = Bio::Alignment::CIGAR.new("M 5 I 10 M 6","AAAATAAAATA")
109
+ assert_equal({"I" => [[5, 10, 5]]}, i.positions(/I/))
110
+ d = Bio::Alignment::CIGAR.new("M 5 D 2 M 4","AAAATAAAATA")
111
+ assert_equal({"M" => [[0,5,0],[7,4,5]], "D" => [[5,2,5]]},d.positions(/[MD]/))
112
+ end
113
+ def test_positions_on_query
114
+ i = Bio::Alignment::CIGAR.new("M 5 I 10 D 3 M 6","AAAATAAAATA")
115
+ assert_equal({"D" => [[5, 3, 15]]}, i.positions(/D/))
116
+ end
117
+
118
+ def test_hgnc
119
+ d = Bio::Alignment::CIGAR.new("M 5 D 2 M 4","AAAATAAAATA")
120
+ i = Bio::Alignment::CIGAR.new("M 5 I 10 M 6","AAAATAAAATA")
121
+ i2 = Bio::Alignment::CIGAR.new("M 5 I 2 M 3 D 1 M 6","AAAATGCCGAAAATA")
122
+ dsam = Bio::Alignment::CIGAR.new("155M6D15M","CCCTGACGTTGAGGTGGATGGGTTCTCTGAGCTTCGGTGGGATGACCAGCAGAAAGTCAAGAAGACAGCGGAAGCTGGAGGAGTGACAGGCAAAGGCCAGGATGGAATTGGTAGCAAGGCAGAGAAGACTCTGGGTGACTTTGCAGCAGAGTATGCCAAGTCCAACAGAAGTACGT",source="sam")
123
+ assert_equal "g.6_7delAA", d.hgnc
124
+ assert_equal "g.25_26insGATCGATCGA", i.hgnc(20,"GATCGATCGA")
125
+ assert_equal "g.[5_6insGA;9delG]", i2.hgnc(0,"GA")
126
+ assert_equal "g.156_161delCCAAGT", dsam.hgnc(0)
127
+ end
128
+
129
+ def test_hgnc_from_subalignment
130
+ align = Bio::Alignment::CIGAR.new("M 5 I 2 M 3 D 1 M 6","AAAATGCCGAAAATA")
131
+ sa = align.subalignment(6,7)
132
+ assert_equal([["M", 3],["D",1],["M",3]],sa.pairs)
133
+ assert_equal("GCCGAAA",sa.reference)
134
+ assert_equal "g.4delG", sa.hgnc
135
+ end
136
+
137
+ def test_substitutions
138
+ d = Bio::Alignment::CIGAR.new("M 5 D 2 M 4","AAAATAAAATA")
139
+ s = Bio::Alignment::CIGAR.new("M 11","AAAATAAAATA")
140
+ assert_equal "c.5T>A", s.hgnc(0,[],"c",["5T>A"])
141
+ assert_equal "g.[6_7delAA;1A>T]", d.hgnc(0,[],"g",["1A>T"])
142
+
143
+ end
144
+
145
+ end
@@ -0,0 +1,46 @@
1
+ require 'helper'
2
+ class MDZTest < Test::Unit::TestCase
3
+ def test_match
4
+ mdz = Bio::DB::Tag::MD.new("MD:Z:60^G13")
5
+ assert_equal "60^G13", mdz.tag
6
+ end
7
+
8
+ def test_ref_length
9
+ mdz_del = Bio::DB::Tag::MD.new("MD:Z:60^G13")
10
+ assert_equal(mdz_del.ref_length, 74)
11
+ mdz_sub = Bio::DB::Tag::MD.new("MD:Z:60G0A13")
12
+ assert_equal(mdz_sub.ref_length, 75)
13
+ mdz_none = Bio::DB::Tag::MD.new("MD:Z:150")
14
+ assert_equal(mdz_none.ref_length, 150)
15
+
16
+ end
17
+
18
+ def test_pairs
19
+ mdz = Bio::DB::Tag::MD.new("MD:Z:60^G13T")
20
+ assert_equal [["m",60],["d","G"],["m",13],["s","T"]], mdz.pairs
21
+ assert_equal [["m",60,0,0],["d","G",60,60],["m",13,61,60],["s","T",74,73]], mdz.cumulative
22
+ end
23
+
24
+ def test_reconstruct_tag
25
+ mdz = Bio::DB::Tag::MD.new("MD:Z:60^G13T")
26
+ assert_equal "60^G13T", mdz.reconstruct_tag
27
+ end
28
+
29
+ def test_slice
30
+ mdz = Bio::DB::Tag::MD.new("MD:Z:60^G13T")
31
+
32
+ new_mdz = Bio::DB::Tag::MD.new("MD:Z:6^G3")
33
+ assert_equal new_mdz.tag, mdz.slice(55,10).tag
34
+ end
35
+
36
+ def test_report
37
+ mdz_del = Bio::DB::Tag::MD.new("MD:Z:60^G13")
38
+ assert_equal([["d","G",60,60]], mdz_del.deletions)
39
+ mdz_sub = Bio::DB::Tag::MD.new("MD:Z:60G0A13")
40
+ assert_equal([["s","G",60,60],["s","A",61,61]], mdz_sub.substitutions)
41
+ mdz_none = Bio::DB::Tag::MD.new("MD:Z:150")
42
+ assert_equal([], mdz_none.report)
43
+ mdz_del_sub = Bio::DB::Tag::MD.new("MD:Z:60^G5A13")
44
+ assert_equal [["s","A",66,65]], mdz_del_sub.substitutions
45
+ end
46
+ end
@@ -0,0 +1,21 @@
1
+ require 'helper'
2
+ class MutantAlleleTest < Test::Unit::TestCase
3
+ def test_initialization
4
+ ma = MutantAllele.new
5
+ assert_equal 0, ma.count
6
+ end
7
+
8
+ def test_cached_lookup
9
+ ma = MutantAllele.new
10
+ m = Bio::Mutation.new
11
+ m.position = 358
12
+ m.reference = "TCC"
13
+ m.seqname = "ENST00000366794"
14
+ m.type = :deletion
15
+ m.mutant = nil
16
+ ma.mutations = Bio::MutationArray.new([m])
17
+ MutantAllele.previous_lookups[ma.mutations.to_hgvs] = "mock previous lookup"
18
+ assert_equal "mock previous lookup", ma.lookup
19
+ end
20
+
21
+ end
@@ -0,0 +1,84 @@
1
+ require 'helper'
2
+ class MutationTest < Test::Unit::TestCase
3
+ def test_mutation_initialisation
4
+ params = {position: 1234,
5
+ type: :deletion,
6
+ reference: "ATGG",
7
+ mutant: nil,
8
+ seqname: 5}
9
+ mut = Bio::Mutation.new(params)
10
+ assert_equal 1234, mut.position
11
+ assert_equal :deletion, mut.type
12
+ assert_equal "ATGG", mut.reference
13
+ assert_nil mut.mutant
14
+ assert_equal 5, mut.seqname
15
+ end
16
+
17
+ def test_single_deletion_hgvs
18
+ params = {position: 1234,
19
+ type: :deletion,
20
+ reference: "G",
21
+ mutant: nil,
22
+ seqname: 5}
23
+ mut = Bio::Mutation.new(params)
24
+ assert_equal "1234delG", mut.to_hgvs
25
+ assert_equal "5:g.1234delG", mut.to_hgvs("g")
26
+ end
27
+
28
+ def test_deletion_hgvs
29
+ params = {position: 1234,
30
+ type: :deletion,
31
+ reference: "ATGG",
32
+ mutant: nil,
33
+ seqname: 5}
34
+ mut = Bio::Mutation.new(params)
35
+ assert_equal "1234_1237delATGG", mut.to_hgvs
36
+ assert_equal "5:g.1234_1237delATGG", mut.to_hgvs("g")
37
+ end
38
+
39
+ def test_substitution_hgvs
40
+ params = {position: 1234,
41
+ type: :substitution,
42
+ reference: "A",
43
+ mutant: "T",
44
+ seqname: 5}
45
+ mut = Bio::Mutation.new(params)
46
+ assert_equal "1234A>T", mut.to_hgvs
47
+ assert_equal "5:g.1234A>T", mut.to_hgvs("g")
48
+ end
49
+
50
+ def test_longer_substitution_hgvs
51
+ params = {position: 1234,
52
+ type: :substitution,
53
+ reference: "ATG",
54
+ mutant: "CCT",
55
+ seqname: 5}
56
+ mut = Bio::Mutation.new(params)
57
+ assert_equal "1234_1236ATG>CCT", mut.to_hgvs
58
+ assert_equal "5:c.1234_1236ATG>CCT", mut.to_hgvs("c")
59
+ end
60
+
61
+ def test_insertion_hgvs
62
+ params = {position: 1234,
63
+ type: :insertion,
64
+ reference: nil,
65
+ mutant: "T",
66
+ seqname: 5}
67
+ mut = Bio::Mutation.new(params)
68
+ assert_equal "1234_1235insT", mut.to_hgvs
69
+ assert_equal "5:g.1234_1235insT", mut.to_hgvs("g")
70
+ end
71
+
72
+ # def test_vep
73
+ # params = {position: 112839914,
74
+ # type: :deletion,
75
+ # reference: "ACCACC",
76
+ # mutant: nil,
77
+ # seqname: 5}
78
+ # mut = Bio::Mutation.new(params)
79
+ # result = mut.vep("human","g")
80
+ # assert_equal "inframe_deletion", result.first["most_severe_consequence"], "NB: Test written for GRCh38"
81
+ # assert_equal "ACCACC/-", result.first["allele_string"], "NB: Test written for GRCh38"
82
+ # # TODO Continue...
83
+ # end
84
+ end