transrate 1.0.0.alpha.8.bowtie → 1.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/README.md +2 -0
- data/bin/transrate +3 -5
- data/deps/deps.yaml +12 -20
- data/lib/transrate.rb +1 -1
- data/lib/transrate/assembly.rb +21 -0
- data/lib/transrate/contig.rb +33 -3
- data/lib/transrate/express.rb +29 -24
- data/lib/transrate/read_metrics.rb +40 -28
- data/lib/transrate/sam_checker.rb +6 -31
- data/lib/transrate/samtools.rb +1 -1
- data/lib/transrate/score_optimiser.rb +31 -0
- data/lib/transrate/snap.rb +28 -3
- data/lib/transrate/transrater.rb +5 -10
- data/lib/transrate/version.rb +1 -1
- data/test/data/express_results.xprs +5 -0
- data/test/test_bin.rb +2 -8
- data/test/test_express.rb +22 -0
- data/test/test_read_metrics.rb +17 -29
- data/test/test_transrater.rb +1 -1
- data/test/vagrant/centos_6.5_64/Vagrantfile +122 -0
- data/test/vagrant/debian_7.4_64/Vagrantfile +126 -0
- data/test/vagrant/debian_7.4_64/provision.sh +28 -0
- data/test/vagrant/fedora_20_64/Vagrantfile +122 -0
- data/test/vagrant/fedora_20_64/provision.sh +16 -0
- data/test/vagrant/fedora_20_64/sample_data/params.xprs +182 -0
- data/test/vagrant/fedora_20_64/sample_data/reads_1.fastq +40000 -0
- data/test/vagrant/fedora_20_64/sample_data/reads_1.fastq-reads_2.fastq-read_count.txt +1 -0
- data/test/vagrant/fedora_20_64/sample_data/reads_2.fastq +40000 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts.fasta +498 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts.fasta_results.xprs +16 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts/Genome +17 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts/GenomeIndex +1 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts/GenomeIndexHash +0 -0
- data/test/vagrant/fedora_20_64/sample_data/transcripts/OverflowTable +0 -0
- data/test/vagrant/ubuntu_12.04_64/Vagrantfile +126 -0
- data/test/vagrant/ubuntu_12.04_64/provision.sh +24 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/params.xprs +182 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/reads_1.fastq +40000 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/reads_1.fastq-reads_2.fastq-read_count.txt +1 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/reads_2.fastq +40000 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts.fasta +498 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts.fasta_results.xprs +16 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts/Genome +17 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts/GenomeIndex +1 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts/GenomeIndexHash +0 -0
- data/test/vagrant/ubuntu_12.04_64/sample_data/transcripts/OverflowTable +0 -0
- data/transrate.gemspec +4 -4
- metadata +111 -71
- data/lib/transrate/bowtie.rb +0 -103
data/lib/transrate/bowtie.rb
DELETED
@@ -1,103 +0,0 @@
|
|
1
|
-
module Transrate
|
2
|
-
|
3
|
-
class Bowtie2Error < StandardError
|
4
|
-
end
|
5
|
-
|
6
|
-
class Bowtie2
|
7
|
-
|
8
|
-
attr_reader :index_name, :sam, :read_count
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@bowtie2 = get_bin_path("bowtie2")
|
12
|
-
@bowtie2_build = get_bin_path("bowtie2-build")
|
13
|
-
|
14
|
-
@index_built = false
|
15
|
-
@index_name = ""
|
16
|
-
end
|
17
|
-
|
18
|
-
def get_bin_path bin
|
19
|
-
which_bin = Cmd.new("which #{bin}")
|
20
|
-
which_bin.run
|
21
|
-
if !which_bin.status.success?
|
22
|
-
raise IOError.new("ReadMetrics: could not find #{bin} in path")
|
23
|
-
end
|
24
|
-
which_bin.stdout.split("\n").first
|
25
|
-
end
|
26
|
-
|
27
|
-
def map_reads(file, left, right,
|
28
|
-
insertsize: 200, insertsd: 50, threads: 8)
|
29
|
-
raise Bowtie2Error.new("Index not built") if !@index_built
|
30
|
-
lbase = File.basename(left.split(",").first)
|
31
|
-
rbase = File.basename(right.split(",").first)
|
32
|
-
index = File.basename(@index_name)
|
33
|
-
@sam = File.expand_path("#{lbase}.#{rbase}.#{index}.sam")
|
34
|
-
realistic_dist = insertsize + (5 * insertsd)
|
35
|
-
unless File.exists? @sam
|
36
|
-
# construct bowtie command
|
37
|
-
bowtiecmd = "#{@bowtie2} --very-sensitive"
|
38
|
-
bowtiecmd << " -x #{@index_name}"
|
39
|
-
bowtiecmd << " -a"
|
40
|
-
bowtiecmd << " -p #{threads} -X #{realistic_dist}"
|
41
|
-
bowtiecmd << " --no-unal"
|
42
|
-
bowtiecmd << " --seed 1337"
|
43
|
-
bowtiecmd << " --rdg 6,5"
|
44
|
-
bowtiecmd << " --rfg 6,5"
|
45
|
-
bowtiecmd << " --score-min L,-.6,-.4"
|
46
|
-
bowtiecmd << " -1 #{left}"
|
47
|
-
# paired end?
|
48
|
-
bowtiecmd << " -2 #{right}" if right
|
49
|
-
bowtiecmd << " -S #{@sam}"
|
50
|
-
# run bowtie
|
51
|
-
runner = Cmd.new bowtiecmd
|
52
|
-
runner.run
|
53
|
-
# parse bowtie output
|
54
|
-
if runner.stderr=~/([0-9]+)\ reads\;\ of\ these\:/
|
55
|
-
@read_count = $1.to_i
|
56
|
-
# save read_count to file
|
57
|
-
File.open("#{@sam}-read_count.txt", "wb") do |out|
|
58
|
-
out.write("#{@read_count}\n")
|
59
|
-
end
|
60
|
-
end
|
61
|
-
if !runner.status.success?
|
62
|
-
raise Bowtie2Error.new("Bowtie2 failed\n#{runner.stderr}")
|
63
|
-
end
|
64
|
-
else
|
65
|
-
@read_count = 0
|
66
|
-
if File.exist?("#{@sam}-read_count.txt")
|
67
|
-
@read_count = File.open("#{@sam}-read_count.txt").readlines.join.to_i
|
68
|
-
else
|
69
|
-
left.split(",").each do |l|
|
70
|
-
cmd = "wc -l #{l}"
|
71
|
-
count = Cmd.new(cmd)
|
72
|
-
count.run
|
73
|
-
if count.status.success?
|
74
|
-
@read_count += count.stdout.strip.split(/\s+/).first.to_i/4
|
75
|
-
File.open("#{@sam}-read_count.txt", "wb") do |out|
|
76
|
-
out.write("#{@read_count}\n")
|
77
|
-
end
|
78
|
-
else
|
79
|
-
logger.warn "couldn't get number of reads from #{l}"
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
84
|
-
@sam
|
85
|
-
end
|
86
|
-
|
87
|
-
def build_index file
|
88
|
-
@index_name = File.basename(file).split(".")[0..-2].join(".")
|
89
|
-
unless File.exists?(@index_name + '.1.bt2')
|
90
|
-
cmd = "#{@bowtie2_build} --quiet --offrate 1 #{file} #{@index_name}"
|
91
|
-
runner = Cmd.new cmd
|
92
|
-
runner.run
|
93
|
-
if !runner.status.success?
|
94
|
-
msg = "Failed to build Bowtie2 index\n#{runner.stderr}"
|
95
|
-
raise Bowtie2Error.new(msg)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
@index_built = true
|
99
|
-
end
|
100
|
-
|
101
|
-
end # Bowtie2
|
102
|
-
|
103
|
-
end # Transrate
|