-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmergeassemblies.rb
More file actions
executable file
·46 lines (36 loc) · 1.31 KB
/
mergeassemblies.rb
File metadata and controls
executable file
·46 lines (36 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env ruby
require 'rubygems'
require 'trollop'
# options
opts = Trollop::options do
version "v0.0.1a"
banner <<-EOS
--------------------- merge oases --------------------
merge assemblies with velvet-oases
-------------------------------------------------------
EOS
opt :outdir, "output directory", :required => true, :type => String
opt :infiles, "list of input files", :required => true, :type => String
opt :mergek, "merge k-mer size", :required => true, :type => Integer
end
velveth = "~/apps/velveth"
velvetg = "~/apps/velvetg"
oases = "~/apps/oases"
finaliseassembly = File.dirname(__FILE__) + '/finaliseassembly.rb'
# check all dependencies exist
def missing(dep)
puts "could not find #{dep} - please check the path and correct the script"
end
[velveth, velvetg, oases, finaliseassembly].each do |d|
missing(d) if not File.exist? d
end
# run
puts "running velveth..."
`#{velveth} #{opts.outdir}/ #{opts.mergek} -long #{opts.infiles}`
puts "running velvetg..."
`#{velvetg} #{opts.outdir}/ -read_trkg yes -conserveLong yes -scaffolding yes`
puts "merging with oases"
`#{oases} #{opts.outdir}/ -merge yes -scaffolding yes -min_trans_lgth 200`
puts "finalising merged assembly"
`#{finaliseassembly} --input=#{opts.outdir}/transcripts.fa`
puts "done! final processed assembly is in final.transcripts.fa"