neurohmmer 0.1.1 → 0.1.2
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/bin/neurohmmer +3 -2
- data/lib/neurohmmer.rb +3 -1
- data/lib/neurohmmer/arg_validators.rb +3 -3
- data/lib/neurohmmer/hmmer.rb +6 -4
- data/lib/neurohmmer/output.rb +18 -4
- data/lib/neurohmmer/version.rb +1 -1
- data/template/contents.slim +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db09d40ef755f21f24d634b0ccbc99b931451284
|
4
|
+
data.tar.gz: 0c5206d2a6e780321087cbb08b372eedd360a432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 622d211f245980ea29f0ea95db2d3d0be0a6fae190829201887d2f311abf24ad1d9ba149a24a8dc9a452ac335e4d244f82e1af564fd8cdc5c946aaf092000fdc
|
7
|
+
data.tar.gz: 8a910895b19c9cc131a4ec477875076a356b8f205a49734552b12d0bc866e9ea6285c3500abfa67bbcb1cb0520891bbc653e0af2b7905f510e4aabd81c71ef13
|
data/bin/neurohmmer
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'optparse'
|
3
|
+
require 'English'
|
3
4
|
|
4
5
|
require 'neurohmmer'
|
5
6
|
require 'neurohmmer/version'
|
@@ -36,7 +37,7 @@ BANNER
|
|
36
37
|
opt[:signalp_path] = s
|
37
38
|
end
|
38
39
|
|
39
|
-
opts.on('-
|
40
|
+
opts.on('-H', '--hmmer_bin_path path',
|
40
41
|
'The full path to hmmer binaries directory') do |h|
|
41
42
|
opt[:hmmer_path] = h
|
42
43
|
end
|
@@ -70,7 +71,7 @@ begin
|
|
70
71
|
exit 1
|
71
72
|
end
|
72
73
|
rescue OptionParser::ParseError
|
73
|
-
$stderr.print 'Error: ' + $ERROR_INFO.to_s +
|
74
|
+
$stderr.print 'Error: ' + $ERROR_INFO.to_s + "\n"
|
74
75
|
exit 1
|
75
76
|
end
|
76
77
|
|
data/lib/neurohmmer.rb
CHANGED
@@ -19,7 +19,8 @@ module Neurohmmer
|
|
19
19
|
raw_alignments: File.expand_path('../../data/raw_data/alignments',
|
20
20
|
__FILE__),
|
21
21
|
hmm_output: File.join(@opt[:temp_dir], 'input.hmm_search.out'),
|
22
|
-
html_output: "#{@opt[:input_file]}.neurohmmer.html"
|
22
|
+
html_output: "#{@opt[:input_file]}.neurohmmer.html",
|
23
|
+
fasta_output: "#{@opt[:input_file]}.neurohmmer.fa"
|
23
24
|
}
|
24
25
|
init_input
|
25
26
|
end
|
@@ -27,6 +28,7 @@ module Neurohmmer
|
|
27
28
|
def run
|
28
29
|
Hmmer.search
|
29
30
|
hmm_analysis = Hmmer.analyse_output
|
31
|
+
Output.to_fasta(hmm_analysis)
|
30
32
|
Output.to_html(hmm_analysis)
|
31
33
|
remove_temp_dir
|
32
34
|
end
|
@@ -11,7 +11,7 @@ module Neurohmmer
|
|
11
11
|
assert_input_file_probably_fasta(opt[:input_file])
|
12
12
|
opt[:type] = assert_input_sequence(opt[:input_file])
|
13
13
|
export_bin_dirs(opt[:hmmer_bin]) if opt[:hmmer_bin]
|
14
|
-
# TODO: Assert
|
14
|
+
# TODO: Assert mafft binaries
|
15
15
|
opt
|
16
16
|
end
|
17
17
|
|
@@ -69,9 +69,9 @@ module Neurohmmer
|
|
69
69
|
end
|
70
70
|
|
71
71
|
def export_bin_dirs(hmmer_bin)
|
72
|
-
bin = File.expand_path(
|
72
|
+
bin = File.expand_path(hmmer_bin)
|
73
73
|
if File.exist?(bin) && File.directory?(bin)
|
74
|
-
add_to_path(bin)
|
74
|
+
add_to_path(bin)
|
75
75
|
else
|
76
76
|
$stderr.puts '*** The following bin directory does not exist:'
|
77
77
|
$stderr.puts " #{bin}"
|
data/lib/neurohmmer/hmmer.rb
CHANGED
@@ -13,7 +13,8 @@ module Neurohmmer
|
|
13
13
|
Dir.foreach(conf[:hmm_dir]) do |h|
|
14
14
|
hmm_file = File.join(conf[:hmm_dir], h)
|
15
15
|
next if hmm_file !~ /hmm$/
|
16
|
-
hmm_search(opt[:input_file], hmm_file, conf[:hmm_output]
|
16
|
+
hmm_search(opt[:input_file], hmm_file, conf[:hmm_output],
|
17
|
+
opt[:num_threads])
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
@@ -36,7 +37,7 @@ module Neurohmmer
|
|
36
37
|
"#{file.gsub(/fa(sta)?$/, '')}.aligned")
|
37
38
|
hmm_model_file = File.join(conf[:hmm_dir],
|
38
39
|
"#{file.gsub(/fa(sta)?$/, '')}.hmm")
|
39
|
-
mafft(np_fasta_file, aligned_file,
|
40
|
+
mafft(np_fasta_file, aligned_file, opt[:num_threads])
|
40
41
|
hmm_build(aligned_file, hmm_model_file)
|
41
42
|
end
|
42
43
|
end
|
@@ -63,8 +64,9 @@ module Neurohmmer
|
|
63
64
|
`hmmbuild '#{hmm_model_file}' '#{aligned_file}'`
|
64
65
|
end
|
65
66
|
|
66
|
-
def hmm_search(input_file, hmm_file, hmm_output)
|
67
|
-
`hmmsearch '#{hmm_file}' '#{input_file}' >>
|
67
|
+
def hmm_search(input_file, hmm_file, hmm_output, num_threads)
|
68
|
+
`hmmsearch --cpu #{num_threads} '#{hmm_file}' '#{input_file}' >> \
|
69
|
+
'#{hmm_output}'`
|
68
70
|
end
|
69
71
|
end
|
70
72
|
end
|
data/lib/neurohmmer/output.rb
CHANGED
@@ -11,6 +11,20 @@ module Neurohmmer
|
|
11
11
|
extend Forwardable
|
12
12
|
def_delegators Neurohmmer, :opt, :conf
|
13
13
|
|
14
|
+
def to_fasta(hmm_results)
|
15
|
+
File.open(conf[:fasta_output], 'w') do |file|
|
16
|
+
hmm_results.each do |query, hits|
|
17
|
+
next if hits.length == 0
|
18
|
+
file.puts # a blank line
|
19
|
+
file.puts '# ' + query
|
20
|
+
hits.each do |hit|
|
21
|
+
file.puts '>' + hit[:id]
|
22
|
+
file.puts hit[:seq]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
14
28
|
def to_html(hmm_results)
|
15
29
|
@html_results = format_seqs_for_html(hmm_results)
|
16
30
|
template_path = File.expand_path('../../../template/contents.slim',
|
@@ -64,12 +78,12 @@ module Neurohmmer
|
|
64
78
|
s = s1.gsub(/<span class=hsp>/, '</span><span class=sp_hsp>') +
|
65
79
|
seq[sp_cut_off..-1]
|
66
80
|
return s.insert(0, '<span class=sp>')
|
67
|
-
|
81
|
+
.insert(sp_cut_off + 41, '</span><span class=hsp>')
|
68
82
|
elsif s1 =~ /</
|
69
|
-
s = s1.gsub(
|
70
|
-
seq[sp_cut_off..-1].gsub(
|
83
|
+
s = s1.gsub(/<.*?$/, '</span><span class=sp_hsp>') +
|
84
|
+
seq[sp_cut_off..-1].gsub(/^.*?>/, '')
|
71
85
|
return s.insert(0, '<span class=sp>')
|
72
|
-
|
86
|
+
.insert(sp_cut_off + 41, '</span><span class=hsp>')
|
73
87
|
else
|
74
88
|
return seq.insert(0, '<span class=sp>').insert(sp_cut_off + 15,
|
75
89
|
'</span>')
|
data/lib/neurohmmer/version.rb
CHANGED
data/template/contents.slim
CHANGED
@@ -53,5 +53,5 @@ html lang="en"
|
|
53
53
|
a href="http://www.sbcs.qmul.ac.uk" target="_blank" QMUL
|
54
54
|
br
|
55
55
|
| This page was created by
|
56
|
-
a href="https://github.com/wurmlab/
|
56
|
+
a href="https://github.com/wurmlab/neurohmmer" target="_blank" NeuroHMMer
|
57
57
|
| v#{Neurohmmer::VERSION}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neurohmmer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismail Moghul
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2015-11-
|
13
|
+
date: 2015-11-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|