neurohmmer 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|