exodb 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/README.md +15 -0
- data/exodb.gemspec +2 -0
- data/lib/exodb/datamodel/locationfield.rb +6 -7
- data/lib/exodb/datamodel/source.rb +1 -0
- data/lib/exodb/datamodel/variant.rb +82 -11
- data/lib/exodb/rositza/load.rb +115 -0
- data/lib/exodb/rositza.rb +23 -0
- data/lib/exodb/utils/ensemblrest.rb +39 -0
- data/lib/exodb/utils/upload_generef.rb +1 -1
- data/lib/exodb/utils/upload_var.rb +6 -46
- data/lib/exodb/utils.rb +4 -0
- data/lib/exodb/version.rb +1 -1
- data/lib/exodb.rb +2 -0
- metadata +5 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5d6b52be6bba76e973d002e6dbd4ad4ed82defce
|
|
4
|
+
data.tar.gz: 35f0cbe4f0d05380ca24710125e5dee20ecfb141
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 05822ee2e593e898c62294ab0795cf8769eace304356f9beed84f1b80fd956527a9f5bc74ec4c532ac5b5811ed56e07711d2593dbcd9b9ebb4a4a1d28049b74f
|
|
7
|
+
data.tar.gz: b2ac6f0484ad7a33315ff3c583f2b1fd25a1bfd70a21f22a087b3c9bbf0e03cb43882a8605e19fc66f81a2f1981b27532744b858756a93b080dfa664ac868ef1
|
data/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Installation
|
|
2
|
+
============
|
|
3
|
+
|
|
4
|
+
gem install exodb
|
|
5
|
+
|
|
6
|
+
Usage in irb or pry
|
|
7
|
+
===================
|
|
8
|
+
require 'exodb'
|
|
9
|
+
Exodb.connect("username@servername/databasename")
|
|
10
|
+
|
|
11
|
+
Example query
|
|
12
|
+
=============
|
|
13
|
+
1. To query reference gene by cross reference
|
|
14
|
+
|
|
15
|
+
Exodb::Generef.where(xrefs: /BRAF/).first
|
data/exodb.gemspec
CHANGED
|
@@ -25,6 +25,8 @@ Gem::Specification.new do |s|
|
|
|
25
25
|
|
|
26
26
|
s.add_dependency "mongoid", "~> 3.1"
|
|
27
27
|
s.add_dependency "bio", "~> 1.4"
|
|
28
|
+
# s.add_dependency "bio-samtools", "~> 2.2"
|
|
29
|
+
# s.add_dependency "bio-vcf", "~> 0.8"
|
|
28
30
|
s.add_dependency "highline", "~> 1.6"
|
|
29
31
|
s.add_dependency "pry", "~> 0.10"
|
|
30
32
|
|
|
@@ -25,7 +25,7 @@ module Exodb
|
|
|
25
25
|
module ClassMethods
|
|
26
26
|
|
|
27
27
|
def cover?(loc_str)
|
|
28
|
-
dat = loc_str.split(/(
|
|
28
|
+
dat = loc_str.split(/(:|\.\.|-)/)
|
|
29
29
|
if dat[4]
|
|
30
30
|
querystr = {:'location.chromosome' => dat[0], :'location.start'.lte => dat[2].to_i, :'location.stop'.gte => dat[4].to_i}
|
|
31
31
|
else
|
|
@@ -35,13 +35,13 @@ module Exodb
|
|
|
35
35
|
end
|
|
36
36
|
|
|
37
37
|
def intersect?(loc_str)
|
|
38
|
-
dat = loc_str.split(/(
|
|
38
|
+
dat = loc_str.split(/(:|\.\.|-)/)
|
|
39
39
|
querystr = {:'$or' => [{:'location.chromosome' => dat[0], :'location.start'.lte => dat[2].to_i, :'location.stop'.gte => dat[2].to_i}, {:'location.chromosome' => dat[0], :'location.start'.lte => dat[4].to_i, :'location.stop'.gte => dat[4].to_i}]}
|
|
40
40
|
return self.where(querystr)
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def in?(loc_str)
|
|
44
|
-
dat = loc_str.split(/(
|
|
44
|
+
dat = loc_str.split(/(:|\.\.|-)/)
|
|
45
45
|
querystr = {:'location.chromosome' => dat[0], :'location.start'.gte => dat[2].to_i, :'location.stop'.lte => dat[4].to_i}
|
|
46
46
|
return self.where(querystr)
|
|
47
47
|
end
|
|
@@ -100,13 +100,12 @@ module Exodb
|
|
|
100
100
|
#
|
|
101
101
|
# @param [String] gene location in format of chromosome_number:start..stop
|
|
102
102
|
def parse_location(loc_str)
|
|
103
|
-
dat = loc_str.split(/(
|
|
103
|
+
dat = loc_str.split(/(:|\.\.|-)/)
|
|
104
104
|
if dat[4]
|
|
105
|
-
self[:location] = {chromosome
|
|
105
|
+
self[:location] = {'chromosome' => dat[0], 'start' => dat[2].to_i, 'stop' => dat[4].to_i}
|
|
106
106
|
else
|
|
107
|
-
self[:location] = {chromosome
|
|
107
|
+
self[:location] = {'chromosome' => dat[0], 'start' => dat[2].to_i, 'stop' => dat[2].to_i}
|
|
108
108
|
end
|
|
109
|
-
|
|
110
109
|
end
|
|
111
110
|
|
|
112
111
|
def location_str
|
|
@@ -26,24 +26,30 @@ module Exodb
|
|
|
26
26
|
|
|
27
27
|
field :oid, type: String # chromosome:position..alternative:samplename
|
|
28
28
|
field :reference, type: String #reference genotype
|
|
29
|
-
field :
|
|
30
|
-
field :
|
|
29
|
+
field :alternaten, type: Array #alternate genotype from tumor cell
|
|
30
|
+
field :alternatet, type: Array #alternate genotype from normal cell
|
|
31
31
|
field :filter, type: String
|
|
32
|
-
field :
|
|
33
|
-
field :
|
|
34
|
-
field :
|
|
32
|
+
field :passfilter, type: Boolean #, default: false
|
|
33
|
+
field :somstatus, type: String #unknown, inherited, somatic
|
|
34
|
+
field :somscore, type: Float #Somatic score 0-1
|
|
35
|
+
field :inhscore, type: Float #Inheritant score 0-1
|
|
35
36
|
#field :fdr, type: Float #False discovery rate score
|
|
36
|
-
field :
|
|
37
|
-
field :
|
|
38
|
-
field :
|
|
37
|
+
field :pileupt, type: String #pileup string from tumor cell
|
|
38
|
+
field :pileupn, type: String #pileup string from normal cell
|
|
39
|
+
field :qualt, type: String #pileup quality from tumor cell
|
|
40
|
+
field :qualn, type: String #pileup quality from normal cell
|
|
39
41
|
field :predicted_damage, type: Boolean #Temporaly field
|
|
40
|
-
field :
|
|
42
|
+
field :temp, type: Array #Temporaly field
|
|
41
43
|
|
|
42
44
|
belongs_to :cell
|
|
43
45
|
belongs_to :aacid
|
|
44
46
|
|
|
45
47
|
validates_uniqueness_of :oid, message: "Variant oid of experiment is not unique"
|
|
46
48
|
|
|
49
|
+
def self.from_pileup(pileupline)
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
47
53
|
# add this variant to original cell sample
|
|
48
54
|
#
|
|
49
55
|
# @param [String] oid
|
|
@@ -53,9 +59,9 @@ module Exodb
|
|
|
53
59
|
|
|
54
60
|
if sample.exists?
|
|
55
61
|
self.cell = sample.first()
|
|
56
|
-
#output.puts "#EXODB:INFO This sample is added to #{dataset.first().name}." if
|
|
62
|
+
#output.puts "#EXODB:INFO This sample is added to #{dataset.first().name}." if $0 == 'pry'
|
|
57
63
|
else
|
|
58
|
-
#output.puts "#EXODB:ERRO Cannot find dataset by #{str}." if
|
|
64
|
+
#output.puts "#EXODB:ERRO Cannot find dataset by #{str}." if $0 == 'pry'
|
|
59
65
|
end
|
|
60
66
|
|
|
61
67
|
self.oid = "#{self.location_str}:#{sample.first().oid}"
|
|
@@ -63,6 +69,71 @@ module Exodb
|
|
|
63
69
|
end
|
|
64
70
|
|
|
65
71
|
alias_method :add_to_cell, :add_to_sample
|
|
72
|
+
|
|
73
|
+
## overwrite default assignment of pileuplinet
|
|
74
|
+
## automatically update :reference, :alternatet, and location
|
|
75
|
+
##
|
|
76
|
+
## @param [String] pile-up line from mpileup
|
|
77
|
+
#def pileuplinet=(pileupline)
|
|
78
|
+
# begin
|
|
79
|
+
# if pileupline.is_a?(Bio::DB::Pileup)
|
|
80
|
+
# pile = pileupline
|
|
81
|
+
# else
|
|
82
|
+
# pile = Bio::DB::Pileup.new(pileupline.chomp)
|
|
83
|
+
# end
|
|
84
|
+
#
|
|
85
|
+
# self[:reference] = pile.ref_base
|
|
86
|
+
# self.parse_location("#{pile.ref_name}:#{pile.pos}..#{pile.pos}")
|
|
87
|
+
# self[:alternatet] = pile.genotype_list
|
|
88
|
+
# self[:pileuplinet] = pileupline
|
|
89
|
+
# rescue
|
|
90
|
+
# self[:pileuplinet] = pileupline
|
|
91
|
+
# end
|
|
92
|
+
#end
|
|
93
|
+
#
|
|
94
|
+
## overwrite default assignment of pileuplinen
|
|
95
|
+
## automatically update :alternaten
|
|
96
|
+
##
|
|
97
|
+
## @param [String] pile-up line from mpileup
|
|
98
|
+
#def pileuplinen=(pileupline)
|
|
99
|
+
# begin
|
|
100
|
+
# if pileupline.is_a?(Bio::DB::Pileup)
|
|
101
|
+
# pile = pileupline
|
|
102
|
+
# else
|
|
103
|
+
# pile = Bio::DB::Pileup.new(pileupline.chomp)
|
|
104
|
+
# end
|
|
105
|
+
#
|
|
106
|
+
# if self[:reference] == pile.ref_base
|
|
107
|
+
# self.parse_location("#{pile.ref_name}:#{pile.pos}..#{pile.pos}")
|
|
108
|
+
# self[:alternaten] = pile.genotype_list
|
|
109
|
+
# self[:pileuplinen] = pileupline
|
|
110
|
+
# end
|
|
111
|
+
# rescue
|
|
112
|
+
# self[:pileuplinen] = pileupline
|
|
113
|
+
# end
|
|
114
|
+
#end
|
|
115
|
+
#
|
|
116
|
+
## overwrite default read of pileuplinet
|
|
117
|
+
##
|
|
118
|
+
## @return [Bio::DB::Pileup] pile-up object of tumor sample
|
|
119
|
+
#def pileuplinet()
|
|
120
|
+
# return Bio::DB::Pileup.new(self[:pileuplinet])
|
|
121
|
+
#end
|
|
122
|
+
#
|
|
123
|
+
## overwrite default read of pileuplinet
|
|
124
|
+
##
|
|
125
|
+
## @return [Bio::DB::Pileup] pile-up object of normal sample
|
|
126
|
+
#def pileuplinen()
|
|
127
|
+
# return Bio::DB::Pileup.new(self[:pileuplinen])
|
|
128
|
+
#end
|
|
129
|
+
|
|
130
|
+
# apply filter to the variant
|
|
131
|
+
# the result is kelp in passfilter
|
|
132
|
+
#
|
|
133
|
+
# @param [String] pile-up line from mpileup
|
|
134
|
+
def apply_filter(filter)
|
|
135
|
+
self[:filter] = filter
|
|
136
|
+
end
|
|
66
137
|
end
|
|
67
138
|
|
|
68
139
|
class SNV < Variant
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
|
|
2
|
+
# Exodb
|
|
3
|
+
# Copyright (C) 2014
|
|
4
|
+
#
|
|
5
|
+
# author: Natapol Pornputtapong <natapol.por@gmail.com>
|
|
6
|
+
#
|
|
7
|
+
# Documentation: Natapol Pornputtapong (RDoc'd and embellished by William Webber)
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
# raise "Please, use ruby 1.9.0 or later." if RUBY_VERSION < "1.9.0"
|
|
11
|
+
|
|
12
|
+
# Script used in Rositza project (Naevi, Spitzoid naevi, Spitzoid melanoma)
|
|
13
|
+
|
|
14
|
+
module Exodb
|
|
15
|
+
|
|
16
|
+
module Utils
|
|
17
|
+
|
|
18
|
+
module_function
|
|
19
|
+
|
|
20
|
+
def load_variant_from_csv(csvfile)
|
|
21
|
+
|
|
22
|
+
CSV.read(csvfile, col_sep: "\t", headers: true).each do |record|
|
|
23
|
+
|
|
24
|
+
var = SNV.new()
|
|
25
|
+
var.parse_location("#{record["chromosome"]}:#{record["start position"]}")
|
|
26
|
+
var.reference = record["ref nucleotide"].split('/')[0]
|
|
27
|
+
var.alternate = record["var nucleotide"].split('/').uniq
|
|
28
|
+
var.somaticStatus = record["Somatic Status"]
|
|
29
|
+
var.reads = record["Reads"]
|
|
30
|
+
var.predicted_damage = record["PolyPhen"] =~ /probably_damaging/ || record["SIFT"] =~ /deleterious/i || record["PROVEAN"] =~ /deleterious/i ? true : false
|
|
31
|
+
var.aachange = record["AA Change"]
|
|
32
|
+
var.add_to_sample(record["cell"])
|
|
33
|
+
|
|
34
|
+
p var.save!
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def load_sample_from_csv(csvfile)
|
|
39
|
+
CSV.read(csvfile, col_sep: "\t", headers: true).each do |record|
|
|
40
|
+
|
|
41
|
+
sample = Tumor.new({oid: record["SampleFinal"],
|
|
42
|
+
type: record["Type"].downcase,
|
|
43
|
+
typeid: "urn:miriam:bioportal.meddra:#{record["Type"] =~ /^spitz /i ? '10041632' : record["Type"] =~ /^spitzoid /i ? '10072450' : '10028679'}",
|
|
44
|
+
patient: record["SampleFinal"].split('T')[0],
|
|
45
|
+
preferred: record["Preferred"] == 'Y' ? true : false,
|
|
46
|
+
paired: record["merge41final"] =~ /\Apaired\z/i ? true : false},
|
|
47
|
+
labels: {})
|
|
48
|
+
|
|
49
|
+
sample.add_to_dataset('internal.ds:000001')
|
|
50
|
+
|
|
51
|
+
p sample.save!
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def load_variant_from_ann(annfile)
|
|
57
|
+
|
|
58
|
+
File.open(annfile).each do |line|
|
|
59
|
+
record = line.chomp.split("\t")
|
|
60
|
+
p record
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def load_indel_from_merge(mergefile)
|
|
66
|
+
|
|
67
|
+
File.open(mergefile).each do |line|
|
|
68
|
+
record = line.chomp.split("\t")
|
|
69
|
+
p record[0..21]
|
|
70
|
+
#others = record[22..-1]
|
|
71
|
+
#until others.empty?
|
|
72
|
+
# p others.shift(11)
|
|
73
|
+
#end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def load_variant_from_merge(mergefile)
|
|
79
|
+
|
|
80
|
+
File.open(mergefile).each do |line|
|
|
81
|
+
record = line.chomp.split("\t")
|
|
82
|
+
|
|
83
|
+
header = record[0..15]
|
|
84
|
+
|
|
85
|
+
list = record[16..-1]
|
|
86
|
+
|
|
87
|
+
until list.empty?
|
|
88
|
+
|
|
89
|
+
sampledata = list.shift(7)
|
|
90
|
+
snvq = Exodb::Variant.where(oid: "#{header[2]}:#{header[3]}:#{sampledata[0]}")
|
|
91
|
+
if snvq.exists?
|
|
92
|
+
snv = snvq.first
|
|
93
|
+
snv.temp.push(header[0..6].join("\t"))
|
|
94
|
+
p snv.save!
|
|
95
|
+
else
|
|
96
|
+
snv = Exodb::Variant.new()
|
|
97
|
+
snv.parse_location("#{header[2]}:#{header[3]}..#{header[3]}")
|
|
98
|
+
snv.reference = header[10]
|
|
99
|
+
snv.pileupt = sampledata[6]
|
|
100
|
+
snv.temp = [] if snv.temp == nil
|
|
101
|
+
snv.temp.push(header[0..6].join("\t"))
|
|
102
|
+
snv.add_to_sample(sampledata[0])
|
|
103
|
+
p snv.save!
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
#Exodb::Utils.load_sample_from_csv('Samples_all.txt')
|
|
114
|
+
#Exodb::Utils.load_variant_from_csv('NovelSNVs_13.txt')
|
|
115
|
+
#Exodb::Utils.load_variant_from_merge('gilead_ann/tumor/exome.UTR')
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Exodb
|
|
3
|
+
# Copyright (C) 2014
|
|
4
|
+
#
|
|
5
|
+
# author: Natapol Pornputtapong <natapol.por@gmail.com>
|
|
6
|
+
#
|
|
7
|
+
# Documentation: Natapol Pornputtapong (RDoc'd and embellished by William Webber)
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
# raise "Please, use ruby 1.9.0 or later." if RUBY_VERSION < "1.9.0"
|
|
11
|
+
|
|
12
|
+
# Script used in Rositza project (Naevi, Spitzoid naevi, Spitzoid melanoma)
|
|
13
|
+
|
|
14
|
+
require 'exodb/rositza/load.rb'
|
|
15
|
+
|
|
16
|
+
module Exodb
|
|
17
|
+
|
|
18
|
+
module Utils
|
|
19
|
+
|
|
20
|
+
module_function
|
|
21
|
+
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Exodb
|
|
3
|
+
# Copyright (C) 2014
|
|
4
|
+
#
|
|
5
|
+
# author: Natapol Pornputtapong <natapol.por@gmail.com>
|
|
6
|
+
#
|
|
7
|
+
# Documentation: Natapol Pornputtapong (RDoc'd and embellished by William Webber)
|
|
8
|
+
#
|
|
9
|
+
|
|
10
|
+
# raise "Please, use ruby 1.9.0 or later." if RUBY_VERSION < "1.9.0"
|
|
11
|
+
|
|
12
|
+
module Exodb
|
|
13
|
+
|
|
14
|
+
module Ensembl
|
|
15
|
+
|
|
16
|
+
module REST
|
|
17
|
+
@@url = URI.parse('http://rest.ensembl.org')
|
|
18
|
+
@@http = Net::HTTP.new(@@url.host, @@url.port)
|
|
19
|
+
|
|
20
|
+
module_function
|
|
21
|
+
|
|
22
|
+
def get(getpart, options)
|
|
23
|
+
request = Net::HTTP::Get.new(get_path, {'Content-Type' => 'application/json'}.merge(options))
|
|
24
|
+
response = http.request(request)
|
|
25
|
+
if response.code != "200"
|
|
26
|
+
riase InvalidResponse, "Invalid response: #{response.code}"
|
|
27
|
+
else
|
|
28
|
+
return JSON.parse(response.body)
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def fetch_variant(region, allele, species, options = {})
|
|
33
|
+
return Exodb::Ensembl::REST.get("vep/#{species}/region/#{region}/allele", options)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
|
|
10
10
|
# raise "Please, use ruby 1.9.0 or later." if RUBY_VERSION < "1.9.0"
|
|
11
11
|
|
|
12
|
-
require 'csv'
|
|
13
12
|
|
|
14
13
|
module Exodb
|
|
15
14
|
|
|
@@ -17,54 +16,15 @@ module Exodb
|
|
|
17
16
|
|
|
18
17
|
module_function
|
|
19
18
|
|
|
20
|
-
def
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var.parse_location("#{record["chromosome"]}:#{record["start position"]}")
|
|
26
|
-
var.reference = record["ref nucleotide"].split('/')[0]
|
|
27
|
-
var.alternate = record["var nucleotide"].split('/').uniq
|
|
28
|
-
var.somaticStatus = record["Somatic Status"]
|
|
29
|
-
var.reads = record["Reads"]
|
|
30
|
-
var.predicted_damage = record["PolyPhen"] =~ /probably_damaging/ || record["SIFT"] =~ /deleterious/i || record["PROVEAN"] =~ /deleterious/i ? true : false
|
|
31
|
-
var.aachange = record["AA Change"]
|
|
32
|
-
var.add_to_sample(record["cell"])
|
|
33
|
-
|
|
34
|
-
p var.save!
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def load_sample_from_csv(csvfile)
|
|
39
|
-
CSV.read(csvfile, col_sep: "\t", headers: true).each do |record|
|
|
40
|
-
|
|
41
|
-
sample = Tumor.new({oid: record["SampleFinal"],
|
|
42
|
-
type: record["Type"].downcase,
|
|
43
|
-
typeid: "urn:miriam:bioportal.meddra:#{record["Type"] =~ /^spitz /i ? '10041632' : record["Type"] =~ /^spitzoid /i ? '10072450' : '10028679'}",
|
|
44
|
-
patient: record["SampleFinal"].split('T')[0],
|
|
45
|
-
preferred: record["Preferred"] == 'Y' ? true : false,
|
|
46
|
-
paired: record["merge41final"] =~ /\Apaired\z/i ? true : false})
|
|
47
|
-
|
|
48
|
-
sample.add_to_dataset('internal.ds:000001')
|
|
49
|
-
|
|
50
|
-
p sample.save!
|
|
51
|
-
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def load_variant_from_ann(annfile)
|
|
56
|
-
|
|
57
|
-
File.open(annfile).each do |line|
|
|
58
|
-
record = line.chomp.split("\t")
|
|
59
|
-
p record
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
end
|
|
19
|
+
#def pop_var_from_sam(bamfile, templatefasta, samplename, normalsample = false, additioninfo = {}, mpileupoptions = {})
|
|
20
|
+
#
|
|
21
|
+
# bam = Bio::DB::Sam.new(bam: bamfile, fasta: templatefasta)
|
|
22
|
+
# bam.samtools
|
|
23
|
+
#end
|
|
63
24
|
|
|
64
25
|
end
|
|
65
26
|
|
|
66
27
|
end
|
|
67
28
|
|
|
68
|
-
|
|
69
|
-
#Exodb::Utils.load_variant_from_csv('NovelSNVs_13.txt')
|
|
29
|
+
|
|
70
30
|
|
data/lib/exodb/utils.rb
CHANGED
data/lib/exodb/version.rb
CHANGED
data/lib/exodb.rb
CHANGED
|
@@ -20,6 +20,7 @@ require 'open-uri'
|
|
|
20
20
|
require 'net/http'
|
|
21
21
|
require 'uri'
|
|
22
22
|
require 'json'
|
|
23
|
+
require 'csv'
|
|
23
24
|
|
|
24
25
|
#External library
|
|
25
26
|
#require 'bio-vcf'
|
|
@@ -27,6 +28,7 @@ require 'highline/import'
|
|
|
27
28
|
require 'mongoid'
|
|
28
29
|
require 'bio'
|
|
29
30
|
require 'pry'
|
|
31
|
+
require 'bio-samtools'
|
|
30
32
|
|
|
31
33
|
I18n.enforce_available_locales = false
|
|
32
34
|
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: exodb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Natapol Pornputtapong
|
|
@@ -72,6 +72,7 @@ executables: []
|
|
|
72
72
|
extensions: []
|
|
73
73
|
extra_rdoc_files: []
|
|
74
74
|
files:
|
|
75
|
+
- README.md
|
|
75
76
|
- contributors.txt
|
|
76
77
|
- exodb.gemspec
|
|
77
78
|
- genome/process_genome_seq.rb
|
|
@@ -87,8 +88,11 @@ files:
|
|
|
87
88
|
- lib/exodb/datamodel/xrefsfield.rb
|
|
88
89
|
- lib/exodb/dbconnection.rb
|
|
89
90
|
- lib/exodb/exception.rb
|
|
91
|
+
- lib/exodb/rositza.rb
|
|
92
|
+
- lib/exodb/rositza/load.rb
|
|
90
93
|
- lib/exodb/usermanage.rb
|
|
91
94
|
- lib/exodb/utils.rb
|
|
95
|
+
- lib/exodb/utils/ensemblrest.rb
|
|
92
96
|
- lib/exodb/utils/upload_generef.rb
|
|
93
97
|
- lib/exodb/utils/upload_var.rb
|
|
94
98
|
- lib/exodb/vcf.rb
|