ms-fasta 0.2.0 → 0.2.3

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/History CHANGED
@@ -1,3 +1,18 @@
1
+ == 0.2.3 / 2009-06-17
2
+
3
+ * added Ms::Fasta.new and Ms::Fasta.open methods and specs
4
+ * Ms::Fasta::Archive parsing can handle fasta files with "\r\n"
5
+
6
+ == 0.2.2
7
+
8
+ * transfered tests into specs
9
+ * version determined by Ms::Fasta::VERSION
10
+
11
+ == 0.2.1
12
+
13
+ * reworked load/fasta to load fasta off a stream
14
+ * refactored the previous load/fasta to select/fasta
15
+
1
16
  == 0.2.0 / 2009-05-06
2
17
 
3
18
  * updated to use tap-0.17.0
@@ -6,4 +21,4 @@
6
21
  == 0.1.0 / 2009-03-24
7
22
 
8
23
  Initial release with tasks to load entries
9
- from a FASTA file.
24
+ from a FASTA file.
File without changes
data/lib/ms/fasta.rb ADDED
@@ -0,0 +1,16 @@
1
+ require 'ms/fasta/archive'
2
+
3
+ module Ms
4
+ module Fasta
5
+ VERSION = '0.2.3'
6
+
7
+ def self.new(*args, &block)
8
+ Ms::Fasta::Archive.new(*args, &block).reindex
9
+ end
10
+
11
+ def self.open(*args, &block)
12
+ Ms::Fasta::Archive.open(*args, &block)
13
+ end
14
+
15
+ end
16
+ end
@@ -18,4 +18,4 @@ module Ms
18
18
 
19
19
  end
20
20
  end
21
- end
21
+ end
@@ -25,7 +25,7 @@ module Ms
25
25
  raise "input should begin with '>'"
26
26
  end
27
27
 
28
- seq_begin = str.index("\n")
28
+ seq_begin = str.index(/\r?\n/)
29
29
  Entry.new(str[1, seq_begin-1], str[seq_begin, str.length - seq_begin].gsub(/\r?\n/, ""))
30
30
  end
31
31
  end
@@ -72,4 +72,4 @@ module Ms
72
72
  end
73
73
  end
74
74
  end
75
- end
75
+ end
data/lib/ms/load/fasta.rb CHANGED
@@ -1,29 +1,44 @@
1
- require 'ms/fasta/archive'
1
+ require 'tap/tasks/load'
2
+ require 'ms/fasta/entry'
2
3
 
3
4
  module Ms
4
5
  module Load
5
6
  # :startdoc::task loads entries in a fasta file
6
7
  #
7
- # Loads entries from a fasta file. Entries are returned as an array and
8
- # by default as Ms::Fasta::Entry objects.
8
+ # Loads entries from a fasta file.
9
9
  #
10
- class Fasta < Tap::Task
10
+ class Fasta < Tap::Tasks::Load
11
+ Entry = Ms::Fasta::Entry
11
12
 
12
- config :range, 0..10, &c.range # the range of entries to select
13
- config :fasta, false, &c.switch # returns entries as fasta strings
13
+ config :header, true, &c.switch
14
+ config :sequence, true, &c.switch
15
+
16
+ def entry_break?(io)
17
+ if c = io.getc
18
+ io.ungetc(c)
19
+ c == ?>
20
+ else
21
+ true
22
+ end
23
+ end
24
+
25
+ def load(io)
26
+ header = io.readline
27
+ sequence = []
28
+ while !entry_break?(io)
29
+ sequence << io.readline
30
+ end
14
31
 
15
- def process(fasta_file)
16
- Ms::Fasta::Archive.open(fasta_file) do |archive|
17
- entries = archive[range]
18
-
19
- # totally wasteful... ExternalArchive needs
20
- # a way to read a selection of string without
21
- # conversion to entries.
22
- # watch (http://bahuvrihi.lighthouseapp.com/projects/10590-external/tickets/7-for-strings)
23
- entries.collect! {|entry| entry.to_s } if fasta
24
- entries
32
+ case
33
+ when !self.header
34
+ sequence.join('')
35
+ when !self.sequence
36
+ header
37
+ else
38
+ "#{header}#{sequence.join('')}"
25
39
  end
26
40
  end
41
+
27
42
  end
28
43
  end
29
44
  end
@@ -9,9 +9,9 @@ module Ms
9
9
  #
10
10
  class Fasta < Tap::Task
11
11
 
12
- config :n, 1, &c.integer # the number of fasta to select
13
- config :fasta, false, &c.switch # returns entries as fasta strings
14
- config :distinct, true, &c.switch # requires entries to be unique by sequence
12
+ config :n, 1, &c.integer # The number of fasta to select
13
+ config :fasta, false, &c.switch # Returns entries as fasta strings
14
+ config :distinct, true, &c.switch # Requires entries to be unique by sequence
15
15
 
16
16
  def process(fasta_file)
17
17
  entries = []
@@ -0,0 +1,29 @@
1
+ require 'ms/fasta/archive'
2
+
3
+ module Ms
4
+ module Select
5
+ # :startdoc::task selects entries from a fasta file
6
+ #
7
+ # Load the selected entries from a fasta file. Entries are returned as an
8
+ # array and by default as Ms::Fasta::Entry objects.
9
+ #
10
+ class Fasta < Tap::Task
11
+
12
+ config :range, 0..10, &c.range # The range of entries to select
13
+ config :fasta, false, &c.switch # Returns entries as fasta strings
14
+
15
+ def process(fasta_file)
16
+ Ms::Fasta::Archive.open(fasta_file) do |archive|
17
+ entries = archive[range]
18
+
19
+ # totally wasteful... ExternalArchive needs
20
+ # a way to read a selection of string without
21
+ # conversion to entries.
22
+ # watch (http://bahuvrihi.lighthouseapp.com/projects/10590-external/tickets/7-for-strings)
23
+ entries.collect! {|entry| entry.to_s } if fasta
24
+ entries
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ms-fasta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Chiang
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-06 00:00:00 -06:00
12
+ date: 2009-06-17 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -20,7 +20,7 @@ dependencies:
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
- version: 0.17.0
23
+ version: 0.17.1
24
24
  version:
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: tap-test
@@ -50,23 +50,25 @@ extensions: []
50
50
 
51
51
  extra_rdoc_files:
52
52
  - History
53
- - README
53
+ - README.rdoc
54
54
  - MIT-LICENSE
55
55
  files:
56
+ - lib/ms/fasta.rb
56
57
  - lib/ms/fasta/archive.rb
57
58
  - lib/ms/fasta/entry.rb
58
59
  - lib/ms/load/fasta.rb
59
60
  - lib/ms/random/fasta.rb
61
+ - lib/ms/select/fasta.rb
60
62
  - tap.yml
61
63
  - History
62
- - README
64
+ - README.rdoc
63
65
  - MIT-LICENSE
64
66
  has_rdoc: true
65
67
  homepage: http://mspire.rubyforge.org/projects/ms-fasta
66
68
  post_install_message:
67
69
  rdoc_options:
68
70
  - --main
69
- - README
71
+ - README.rdoc
70
72
  - -S
71
73
  - -N
72
74
  - --title