bio-tm_hmm 0.2.1 → 0.2.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.
- data/.travis.yml +1 -1
- data/README.md +70 -0
- data/Rakefile +5 -0
- data/VERSION +1 -1
- data/bin/bio-tm_hmm +16 -9
- data/bio-tm_hmm.gemspec +6 -5
- data/test/test_tm_hmm_parser.rb +57 -0
- data/test/test_tm_hmm_wrapper.rb +0 -52
- metadata +7 -6
- data/README.rdoc +0 -56
data/.travis.yml
CHANGED
data/README.md
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
# bio-tm_hmm
|
2
|
+
|
3
|
+
[](http://travis-ci.org/#!/wwood/bioruby-tm_hmm)
|
4
|
+
|
5
|
+
A bioruby plugin for running the transmembrane domain predictor TMHMM automatically on multiple sequences in a FASTA file and manipulation of the results.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
```
|
10
|
+
gem install bio-tm_hmm
|
11
|
+
```
|
12
|
+
|
13
|
+
## Usage
|
14
|
+
|
15
|
+
```
|
16
|
+
Usage: bio-tm_hmm [-f NUM] [-g NUM] [fasta_filename]
|
17
|
+
|
18
|
+
fasta file can also be piped in on STDIN.
|
19
|
+
without arguments, a description of the transmembrane domains is printed out for each input sequence
|
20
|
+
-f MIN_TRANSMEMBRANE_DOMAINS, Print those sequences that have at _least_ MIN_TRANSMEMBRANE_DOMAINS transmembrane domain(s). Prints out the sequences in FASTA format.
|
21
|
+
--filter-in
|
22
|
+
-g MAX_TRANSMEMBRANE_DOMAINS, Print those sequences that have at _most_ MAX_TRANSMEMBRANE_DOMAINS transmembrane domain(s). Prints out the sequences in FASTA format.
|
23
|
+
--filter-out
|
24
|
+
```
|
25
|
+
|
26
|
+
Where my.fasta is a FASTA file with one or more protein sequences in it. Output will be a description of the transmembrane domains predicted by TMHMM.
|
27
|
+
|
28
|
+
Other options include -f for printing out the fasta sequences that have some number of transmembrane domains in them, and ignoring those that don't (converse is -g). For instance, to filter out all sequences that have less than 2 predicted transmembrane domains:
|
29
|
+
|
30
|
+
```
|
31
|
+
bio-tm_hmm -f 2 <my.fasta
|
32
|
+
```
|
33
|
+
|
34
|
+
## Developers
|
35
|
+
|
36
|
+
To use the library
|
37
|
+
|
38
|
+
```
|
39
|
+
require 'bio-tm_hmm'
|
40
|
+
```
|
41
|
+
|
42
|
+
The API doc is online. For more code examples see also the test files in
|
43
|
+
the source tree.
|
44
|
+
|
45
|
+
## Project home page
|
46
|
+
|
47
|
+
Information on the source tree, documentation, issues and how to contribute, see
|
48
|
+
|
49
|
+
http://github.com/wwood/bioruby-tm_hmm
|
50
|
+
|
51
|
+
The BioRuby community is on IRC server: irc.freenode.org, channel: #bioruby.
|
52
|
+
|
53
|
+
## Cite
|
54
|
+
|
55
|
+
If you use this software, please cite:
|
56
|
+
|
57
|
+
[Organellar proteomics reveals hundreds of novel nuclear proteins in the malaria parasite Plasmodium falciparum](http://genomebiology.com/2012/13/11/R108)
|
58
|
+
|
59
|
+
Sophie C Oehring, Ben J Woodcroft, Suzette Moes, Johanna Wetzel, Olivier Dietz, Andreas Pulfer, Chaitali Dekiwadia, Pascal Maeser, Christian Flueck, Kathrin Witmer, Nicolas MB Brancucci, Igor Niederwieser, Paul Jenoe, Stuart A Ralph and Till S Voss
|
60
|
+
|
61
|
+
Genome Biology 2012, 13:R108 doi:10.1186/gb-2012-13-11-r108
|
62
|
+
|
63
|
+
## Biogems.info
|
64
|
+
|
65
|
+
This Biogem is published at http://biogems.info/index.html#bio-tm_hmm
|
66
|
+
|
67
|
+
## Copyright
|
68
|
+
|
69
|
+
Copyright (c) 2012 Ben J Woodcroft. See LICENSE.txt for further details.
|
70
|
+
|
data/Rakefile
CHANGED
@@ -31,6 +31,11 @@ Rake::TestTask.new(:test) do |test|
|
|
31
31
|
test.pattern = 'test/**/test_*.rb'
|
32
32
|
test.verbose = true
|
33
33
|
end
|
34
|
+
Rake::TestTask.new(:test_without_tmhmm) do |test|
|
35
|
+
test.libs << 'lib' << 'test'
|
36
|
+
test.test_files = FileList['test/test*.rb'].reject{|f| f=='test/test_tm_hmm_wrapper.rb'}
|
37
|
+
test.verbose = true
|
38
|
+
end
|
34
39
|
|
35
40
|
task :default => :test
|
36
41
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.2
|
data/bin/bio-tm_hmm
CHANGED
@@ -17,16 +17,22 @@ options = {
|
|
17
17
|
:filter_out => false,
|
18
18
|
}
|
19
19
|
o = OptionParser.new do |opts|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
20
|
+
opts.banner = "
|
21
|
+
Usage: #{File.basename __FILE__} [-f NUM] [-g NUM] [fasta_filename]
|
22
|
+
|
23
|
+
Fasta file can be piped in on STDIN, or specified as the first unqualified argument.
|
24
|
+
|
25
|
+
Without arguments, a description of the transmembrane domains is printed out for each input sequence\n\n"
|
26
|
+
|
27
|
+
opts.on('-f','--filter-in MIN_TRANSMEMBRANE_DOMAINS','Print those sequences that have at _least_ MIN_TRANSMEMBRANE_DOMAINS transmembrane domain(s). Prints out the sequences in FASTA format.') do |m|
|
26
28
|
options[:filter_in] = m.to_i #gets set to 0 when optional MIN_TRANSMEMBRANE_DOMAINS is omitted
|
27
29
|
end
|
28
|
-
opts.on('-g','--filter-out
|
29
|
-
|
30
|
+
opts.on('-g','--filter-out MAX_TRANSMEMBRANE_DOMAINS','Print those sequences that have at _most_ MAX_TRANSMEMBRANE_DOMAINS transmembrane domain(s). Prints out the sequences in FASTA format.') do |m|
|
31
|
+
if m.nil?
|
32
|
+
options[:filter_out] = 1
|
33
|
+
else
|
34
|
+
options[:filter_out] = m.to_i
|
35
|
+
end
|
30
36
|
end
|
31
37
|
end
|
32
38
|
o.parse!
|
@@ -39,6 +45,7 @@ Bio::FlatFile.auto(ARGF).each do |seq|
|
|
39
45
|
|
40
46
|
# Default output - a description of the TMDs for each input aaseq
|
41
47
|
if options[:filter_in] == false and options[:filter_out] == false
|
48
|
+
p result
|
42
49
|
if result.has_domain?
|
43
50
|
# At least one TMD found. Output each on a separate line
|
44
51
|
result.transmembrane_domains.each do |tmd|
|
@@ -62,7 +69,7 @@ Bio::FlatFile.auto(ARGF).each do |seq|
|
|
62
69
|
puts seq
|
63
70
|
end
|
64
71
|
elsif options[:filter_out] != false
|
65
|
-
unless result.transmembrane_domains.length
|
72
|
+
unless result.transmembrane_domains.length > options[:filter_out]
|
66
73
|
puts seq
|
67
74
|
end
|
68
75
|
end
|
data/bio-tm_hmm.gemspec
CHANGED
@@ -5,24 +5,24 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "bio-tm_hmm"
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ben J. Woodcroft"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-12-01"
|
13
13
|
s.description = "A bioruby plugin for interaction with the transmembrane predictor TMHMM"
|
14
14
|
s.email = "donttrustben@gmail.com"
|
15
15
|
s.executables = ["bio-tm_hmm"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".document",
|
22
22
|
".travis.yml",
|
23
23
|
"Gemfile",
|
24
24
|
"LICENSE.txt",
|
25
|
-
"README.
|
25
|
+
"README.md",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"bin/bio-tm_hmm",
|
@@ -32,13 +32,14 @@ Gem::Specification.new do |s|
|
|
32
32
|
"lib/bio/transmembrane.rb",
|
33
33
|
"test/data/falciparum1.fa",
|
34
34
|
"test/helper.rb",
|
35
|
+
"test/test_tm_hmm_parser.rb",
|
35
36
|
"test/test_tm_hmm_wrapper.rb",
|
36
37
|
"test/test_transmembrane.rb"
|
37
38
|
]
|
38
39
|
s.homepage = "http://github.com/wwood/bioruby-tm_hmm"
|
39
40
|
s.licenses = ["MIT"]
|
40
41
|
s.require_paths = ["lib"]
|
41
|
-
s.rubygems_version = "1.8.
|
42
|
+
s.rubygems_version = "1.8.24"
|
42
43
|
s.summary = "A bioruby plugin for interaction with the transmembrane predictor TMHMM"
|
43
44
|
|
44
45
|
if s.respond_to? :specification_version then
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'bio'
|
2
|
+
require 'helper'
|
3
|
+
|
4
|
+
class TmHmmParserTest < Test::Unit::TestCase
|
5
|
+
include Bio::Transmembrane
|
6
|
+
|
7
|
+
def test_parser
|
8
|
+
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0635c len=555 ExpAA=0.00 First60=0.00 PredHel=0 Topology=o')
|
9
|
+
assert result
|
10
|
+
assert_equal false, result.has_domain?
|
11
|
+
|
12
|
+
# test a single TMD
|
13
|
+
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0685c len=324 ExpAA=20.36 First60=0.00 PredHel=1 Topology=o281-303i')
|
14
|
+
assert result
|
15
|
+
assert_equal 1, result.transmembrane_domains.length
|
16
|
+
assert_equal 281, result.transmembrane_domains[0].start
|
17
|
+
assert_equal 303, result.transmembrane_domains[0].stop
|
18
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
19
|
+
result.transmembrane_domains[0].orientation
|
20
|
+
assert result.transmembrane_type_1?
|
21
|
+
assert_equal false, result.transmembrane_type_2?
|
22
|
+
|
23
|
+
# test 2 TMD
|
24
|
+
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0680c len=209 ExpAA=43.03 First60=0.02 PredHel=2 Topology=i137-159o164-183i')
|
25
|
+
assert result
|
26
|
+
assert_equal 2, result.transmembrane_domains.length
|
27
|
+
assert_equal 137, result.transmembrane_domains[0].start
|
28
|
+
assert_equal 159, result.transmembrane_domains[0].stop
|
29
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::INSIDE_OUT,
|
30
|
+
result.transmembrane_domains[0].orientation
|
31
|
+
assert_equal 164, result.transmembrane_domains[1].start
|
32
|
+
assert_equal 183, result.transmembrane_domains[1].stop
|
33
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
34
|
+
result.transmembrane_domains[1].orientation
|
35
|
+
assert_equal false, result.transmembrane_type_1?
|
36
|
+
assert_equal false, result.transmembrane_type_2?
|
37
|
+
|
38
|
+
# test 3 TMD
|
39
|
+
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0705c len=282 ExpAA=90.97 First60=22.20 PredHel=4 Topology=i22-44o185-207i212-234o259-281i')
|
40
|
+
assert result
|
41
|
+
assert_equal 4, result.transmembrane_domains.length
|
42
|
+
assert_equal 22, result.transmembrane_domains[0].start
|
43
|
+
assert_equal 44, result.transmembrane_domains[0].stop
|
44
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::INSIDE_OUT,
|
45
|
+
result.transmembrane_domains[0].orientation
|
46
|
+
assert_equal 185, result.transmembrane_domains[1].start
|
47
|
+
assert_equal 207, result.transmembrane_domains[1].stop
|
48
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
49
|
+
result.transmembrane_domains[1].orientation
|
50
|
+
assert_equal 259, result.transmembrane_domains[3].start
|
51
|
+
assert_equal 281, result.transmembrane_domains[3].stop
|
52
|
+
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
53
|
+
result.transmembrane_domains[3].orientation
|
54
|
+
assert_equal false, result.transmembrane_type_1?
|
55
|
+
assert_equal false, result.transmembrane_type_2?
|
56
|
+
end
|
57
|
+
end
|
data/test/test_tm_hmm_wrapper.rb
CHANGED
@@ -3,58 +3,6 @@ require 'helper'
|
|
3
3
|
|
4
4
|
class TmHmmWrapperTest < Test::Unit::TestCase
|
5
5
|
include Bio::Transmembrane
|
6
|
-
|
7
|
-
def test_parser
|
8
|
-
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0635c len=555 ExpAA=0.00 First60=0.00 PredHel=0 Topology=o')
|
9
|
-
assert result
|
10
|
-
assert_equal false, result.has_domain?
|
11
|
-
|
12
|
-
# test a single TMD
|
13
|
-
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0685c len=324 ExpAA=20.36 First60=0.00 PredHel=1 Topology=o281-303i')
|
14
|
-
assert result
|
15
|
-
assert_equal 1, result.transmembrane_domains.length
|
16
|
-
assert_equal 281, result.transmembrane_domains[0].start
|
17
|
-
assert_equal 303, result.transmembrane_domains[0].stop
|
18
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
19
|
-
result.transmembrane_domains[0].orientation
|
20
|
-
assert result.transmembrane_type_1?
|
21
|
-
assert_equal false, result.transmembrane_type_2?
|
22
|
-
|
23
|
-
# test 2 TMD
|
24
|
-
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0680c len=209 ExpAA=43.03 First60=0.02 PredHel=2 Topology=i137-159o164-183i')
|
25
|
-
assert result
|
26
|
-
assert_equal 2, result.transmembrane_domains.length
|
27
|
-
assert_equal 137, result.transmembrane_domains[0].start
|
28
|
-
assert_equal 159, result.transmembrane_domains[0].stop
|
29
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::INSIDE_OUT,
|
30
|
-
result.transmembrane_domains[0].orientation
|
31
|
-
assert_equal 164, result.transmembrane_domains[1].start
|
32
|
-
assert_equal 183, result.transmembrane_domains[1].stop
|
33
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
34
|
-
result.transmembrane_domains[1].orientation
|
35
|
-
assert_equal false, result.transmembrane_type_1?
|
36
|
-
assert_equal false, result.transmembrane_type_2?
|
37
|
-
|
38
|
-
# test 3 TMD
|
39
|
-
result = Bio::TMHMM::TmHmmResult.create_from_short_line('PFA0705c len=282 ExpAA=90.97 First60=22.20 PredHel=4 Topology=i22-44o185-207i212-234o259-281i')
|
40
|
-
assert result
|
41
|
-
assert_equal 4, result.transmembrane_domains.length
|
42
|
-
assert_equal 22, result.transmembrane_domains[0].start
|
43
|
-
assert_equal 44, result.transmembrane_domains[0].stop
|
44
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::INSIDE_OUT,
|
45
|
-
result.transmembrane_domains[0].orientation
|
46
|
-
assert_equal 185, result.transmembrane_domains[1].start
|
47
|
-
assert_equal 207, result.transmembrane_domains[1].stop
|
48
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
49
|
-
result.transmembrane_domains[1].orientation
|
50
|
-
assert_equal 259, result.transmembrane_domains[3].start
|
51
|
-
assert_equal 281, result.transmembrane_domains[3].stop
|
52
|
-
assert_equal Bio::Transmembrane::OrientedTransmembraneDomain::OUTSIDE_IN,
|
53
|
-
result.transmembrane_domains[3].orientation
|
54
|
-
assert_equal false, result.transmembrane_type_1?
|
55
|
-
assert_equal false, result.transmembrane_type_2?
|
56
|
-
end
|
57
|
-
|
58
6
|
def test_wrapper
|
59
7
|
prog = Bio::TMHMM::TmHmmWrapper.new
|
60
8
|
seq = Bio::FlatFile.auto(File.join(File.dirname(__FILE__),'data','falciparum1.fa')).next_entry
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bio-tm_hmm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-12-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: shoulda
|
@@ -98,13 +98,13 @@ executables:
|
|
98
98
|
extensions: []
|
99
99
|
extra_rdoc_files:
|
100
100
|
- LICENSE.txt
|
101
|
-
- README.
|
101
|
+
- README.md
|
102
102
|
files:
|
103
103
|
- .document
|
104
104
|
- .travis.yml
|
105
105
|
- Gemfile
|
106
106
|
- LICENSE.txt
|
107
|
-
- README.
|
107
|
+
- README.md
|
108
108
|
- Rakefile
|
109
109
|
- VERSION
|
110
110
|
- bin/bio-tm_hmm
|
@@ -114,6 +114,7 @@ files:
|
|
114
114
|
- lib/bio/transmembrane.rb
|
115
115
|
- test/data/falciparum1.fa
|
116
116
|
- test/helper.rb
|
117
|
+
- test/test_tm_hmm_parser.rb
|
117
118
|
- test/test_tm_hmm_wrapper.rb
|
118
119
|
- test/test_transmembrane.rb
|
119
120
|
homepage: http://github.com/wwood/bioruby-tm_hmm
|
@@ -131,7 +132,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
131
132
|
version: '0'
|
132
133
|
segments:
|
133
134
|
- 0
|
134
|
-
hash:
|
135
|
+
hash: 24340783
|
135
136
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
137
|
none: false
|
137
138
|
requirements:
|
@@ -140,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
141
|
version: '0'
|
141
142
|
requirements: []
|
142
143
|
rubyforge_project:
|
143
|
-
rubygems_version: 1.8.
|
144
|
+
rubygems_version: 1.8.24
|
144
145
|
signing_key:
|
145
146
|
specification_version: 3
|
146
147
|
summary: A bioruby plugin for interaction with the transmembrane predictor TMHMM
|
data/README.rdoc
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
= bio-tm_hmm
|
2
|
-
|
3
|
-
{<img
|
4
|
-
src="https://secure.travis-ci.org/wwood/bioruby-tm_hmm.png"
|
5
|
-
/>}[http://travis-ci.org/#!/wwood/bioruby-tm_hmm]
|
6
|
-
|
7
|
-
A bioruby plugin for running TMHMM automatically on multiple sequences in a FASTA file and manipulation of the results
|
8
|
-
|
9
|
-
Note: this software is under active development!
|
10
|
-
|
11
|
-
== Installation
|
12
|
-
|
13
|
-
gem install bio-tm_hmm
|
14
|
-
|
15
|
-
== Usage
|
16
|
-
|
17
|
-
bio-tm_hmm my.fasta
|
18
|
-
|
19
|
-
Where my.fasta is a FASTA file with one or more protein sequences in it. Output will be a description of the transmembrane domains predicted by TMHMM.
|
20
|
-
|
21
|
-
Other options include -f for printing out the fasta sequences that have some number of transmembrane domains in them, and ignoring those that done (converse is -g)
|
22
|
-
|
23
|
-
bio-tm_hmm -f 2 <my.fasta
|
24
|
-
|
25
|
-
== Developers
|
26
|
-
|
27
|
-
To use the library
|
28
|
-
|
29
|
-
require 'bio-tm_hmm'
|
30
|
-
|
31
|
-
The API doc is online. For more code examples see also the test files in
|
32
|
-
the source tree.
|
33
|
-
|
34
|
-
== Project home page
|
35
|
-
|
36
|
-
Information on the source tree, documentation, issues and how to contribute, see
|
37
|
-
|
38
|
-
http://github.com/wwood/bioruby-tm_hmm
|
39
|
-
|
40
|
-
The BioRuby community is on IRC server: irc.freenode.org, channel: #bioruby.
|
41
|
-
|
42
|
-
== Cite
|
43
|
-
|
44
|
-
If you use this software, please cite one of
|
45
|
-
|
46
|
-
* [BioRuby: bioinformatics software for the Ruby programming language](http://dx.doi.org/10.1093/bioinformatics/btq475)
|
47
|
-
* [Biogem: an effective tool-based approach for scaling up open source software development in bioinformatics](http://dx.doi.org/10.1093/bioinformatics/bts080)
|
48
|
-
|
49
|
-
== Biogems.info
|
50
|
-
|
51
|
-
This Biogem is published at http://biogems.info/index.html#bio-tm_hmm
|
52
|
-
|
53
|
-
== Copyright
|
54
|
-
|
55
|
-
Copyright (c) 2012 Ben J Woodcroft. See LICENSE.txt for further details.
|
56
|
-
|