lederhosen 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/lederhosen.gemspec +1 -1
- data/lib/lederhosen/tasks/otu_filter.rb +17 -8
- data/lib/lederhosen/version.rb +1 -1
- data/spec/cli_spec.rb +5 -1
- metadata +3 -3
data/lederhosen.gemspec
CHANGED
@@ -12,21 +12,26 @@ module Lederhosen
|
|
12
12
|
input = options[:input]
|
13
13
|
output = options[:output]
|
14
14
|
reads = options[:reads]
|
15
|
-
|
15
|
+
min_samples = options[:samples]
|
16
16
|
|
17
|
-
ohai "filtering otu file #{input} (reads = #{reads}, samples = #{
|
17
|
+
ohai "filtering otu file #{input} (reads = #{reads}, samples = #{min_samples}), saving to #{output}"
|
18
18
|
|
19
19
|
##
|
20
20
|
# Iterate over otu table line by line.
|
21
21
|
# Only print if cluster meets criteria
|
22
22
|
#
|
23
|
-
|
23
|
+
kept_clusters = 0
|
24
|
+
total_reads = 0
|
25
|
+
kept_reads = 0
|
26
|
+
|
27
|
+
out = File.open(output, 'w')
|
28
|
+
|
24
29
|
File.open(input) do |handle|
|
25
30
|
header = handle.gets.strip
|
26
31
|
header = header.split(',')
|
27
32
|
samples = header[1..-1]
|
28
33
|
|
29
|
-
puts header.join(',')
|
34
|
+
out.puts header.join(',')
|
30
35
|
|
31
36
|
handle.each do |line|
|
32
37
|
line = line.strip.split(',')
|
@@ -34,13 +39,17 @@ module Lederhosen
|
|
34
39
|
counts = line[1..-1].collect { |x| x.to_i }
|
35
40
|
|
36
41
|
# should be the same as uc_filter
|
37
|
-
if counts.reject { |x| x < reads }.length >
|
38
|
-
puts line.join(',')
|
39
|
-
|
42
|
+
if counts.reject { |x| x < reads }.length > min_samples
|
43
|
+
out.puts line.join(',')
|
44
|
+
kept_clusters += 1
|
45
|
+
kept_reads += counts.inject(:+)
|
40
46
|
end
|
47
|
+
total_reads += counts.inject(:+)
|
41
48
|
end
|
42
49
|
end
|
43
|
-
|
50
|
+
|
51
|
+
ohai "kept #{kept_reads} reads (#{kept_reads/total_reads.to_f})."
|
52
|
+
ohai "kept #{kept_clusters} clusters."
|
44
53
|
end
|
45
54
|
|
46
55
|
end
|
data/lib/lederhosen/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -37,10 +37,14 @@ describe Lederhosen::CLI do
|
|
37
37
|
end
|
38
38
|
|
39
39
|
it 'should build OTU abundance matrices' do
|
40
|
-
`./bin/lederhosen otu_table --clusters=#{$test_dir}/clusters.uc --output=#{$test_dir}/
|
40
|
+
`./bin/lederhosen otu_table --clusters=#{$test_dir}/clusters.uc --output=#{$test_dir}/otu_table.csv`
|
41
41
|
$?.success?.should be_true
|
42
42
|
end
|
43
43
|
|
44
|
+
it 'should filter OTU abundance matrices' do
|
45
|
+
`./bin/lederhosen otu_filter --input=#{$test_dir}/otu_table.csv --output=#{$test_dir}/otu_table.filtered.csv --reads 1 --samples 1`
|
46
|
+
end
|
47
|
+
|
44
48
|
it 'should split joined.fasta into reads for each cluster' do
|
45
49
|
`./bin/lederhosen split --reads=#{$test_dir}/joined.fasta --clusters=#{$test_dir}/clusters.uc --out-dir=#{$test_dir}/split --min-clst-size=1`
|
46
50
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lederhosen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 5
|
10
|
+
version: 0.3.5
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Austin G. Davis-Richardson
|