bacterial-annotator 0.6.2 → 0.6.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bacterial-annotator +2 -4
- data/lib/bacterial-annotator/sequence-synteny.rb +2 -2
- data/lib/bacterial-annotator.rb +32 -12
- data/lib/bacterial-comparator.rb +96 -60
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc9bbbe5d2c03c4019290cf077f7ac21c6b0d687
|
4
|
+
data.tar.gz: 746d312f4891d7a561d00b1c6299cb57750daa7f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1dbde919ea570e01223a48ec6f357d77d88ce62502ad0d09a9ba465a5bc4becb11a4caa5f6e8accf721e5c21780118f46c427b99abe1512bfce8e2a27c329a59
|
7
|
+
data.tar.gz: 708a2a03d84dcc46f10a921deaca1705fdd0091b00cd096971bf5436d443d244d31740d5012caf916a045b56b7c35ad73c45abefdee6a59d29abc9f7a8664c1d
|
data/bin/bacterial-annotator
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
require 'bacterial-annotator'
|
12
12
|
require 'bacterial-comparator'
|
13
13
|
|
14
|
-
VERSION = "0.6.
|
14
|
+
VERSION = "0.6.2"
|
15
15
|
|
16
16
|
def print_version
|
17
17
|
version = "Bacterial Annotator - Version #{VERSION}\n\n"
|
@@ -61,7 +61,7 @@ annotate [OPTIONS]
|
|
61
61
|
--input/-i <fasta_file> Provide the fasta file to annotate
|
62
62
|
--outdir/-o <outdir> Output directory [default=BAnnotation]
|
63
63
|
--force/-f Force to overwrite the output directory
|
64
|
-
--name/-n
|
64
|
+
--name/-n <name> Sample name
|
65
65
|
|
66
66
|
// MERGEM-based Annotation (Recommended)
|
67
67
|
--db/-d <directory> MERGEM database directory
|
@@ -249,8 +249,6 @@ if ARGV.size >= 1
|
|
249
249
|
puts "You didn't provide a reference genome or a database for the annotation !"
|
250
250
|
elsif ! options.has_key? :input
|
251
251
|
puts "You didn't provide a fasta file to annotate !"
|
252
|
-
elsif
|
253
|
-
puts ""
|
254
252
|
end
|
255
253
|
|
256
254
|
bannot = BacterialAnnotator.new(options, ROOT)
|
@@ -38,7 +38,7 @@ class SequenceSynteny
|
|
38
38
|
properties = s.definition.chomp.split(";")
|
39
39
|
partial = false
|
40
40
|
if properties.length >= 2 and properties[1].include? "partial"
|
41
|
-
partial = (properties[1].gsub("partial=","")
|
41
|
+
partial = (properties[1].gsub("partial=","").include? '1')
|
42
42
|
end
|
43
43
|
sequences[s_name][:partial] = partial
|
44
44
|
sequences[s_name][:length] = s.seq.length
|
@@ -52,7 +52,7 @@ class SequenceSynteny
|
|
52
52
|
|
53
53
|
# run blat on proteins
|
54
54
|
def run_blat root, outdir
|
55
|
-
base_cmd = "#{root}/blat.linux -out=blast8 -minIdentity=#{@pidentity}"
|
55
|
+
base_cmd = "#{root}/blat.linux -out=blast8 -minIdentity=#{@pidentity} > /dev/null 2>&1"
|
56
56
|
if @type == "prot"
|
57
57
|
system("#{base_cmd} -prot #{@subject_file} #{@query_file} #{outdir}/#{@name}.blat8.tsv")
|
58
58
|
else
|
data/lib/bacterial-annotator.rb
CHANGED
@@ -12,7 +12,7 @@ require 'fileutils'
|
|
12
12
|
require 'bacterial-annotator/sequence-fasta'
|
13
13
|
require 'bacterial-annotator/sequence-annotation'
|
14
14
|
require 'bacterial-annotator/sequence-synteny'
|
15
|
-
|
15
|
+
require 'helper'
|
16
16
|
|
17
17
|
class BacterialAnnotator
|
18
18
|
|
@@ -79,13 +79,16 @@ class BacterialAnnotator
|
|
79
79
|
# Prepare files for the annotation
|
80
80
|
# Will run prodigal on the query and prepare reference genome files
|
81
81
|
def prepare_files_for_annotation
|
82
|
-
|
82
|
+
print "# Running Prodigal on your genome.."
|
83
|
+
start_time = Time.now
|
83
84
|
@query_fasta.run_prodigal @root, @options[:outdir]
|
84
|
-
|
85
|
+
end_time = Time.now
|
86
|
+
c_time = Helper.sec2str(end_time - start_time)
|
87
|
+
print "done (#{c_time})\n"
|
85
88
|
if @with_refence_genome
|
86
89
|
@ref_genome.write_cds_to_file @options[:outdir]
|
87
90
|
@ref_genome.write_rna_to_file @options[:outdir]
|
88
|
-
puts "Successfully loaded #{@ref_genome.gbk.definition}"
|
91
|
+
# puts "Successfully loaded #{@ref_genome.gbk.definition}"
|
89
92
|
end
|
90
93
|
end # end of method
|
91
94
|
|
@@ -95,7 +98,12 @@ class BacterialAnnotator
|
|
95
98
|
ref_synteny_prot = SequenceSynteny.new(@query_fasta.annotation_files[:proteins], @ref_genome.cds_file,
|
96
99
|
"Prot-Ref", @options[:pidentity], @options[:pcoverage], "prot")
|
97
100
|
|
101
|
+
print "# Running alignment with Reference Genome CDS (blat).."
|
102
|
+
start_time = Time.now
|
98
103
|
ref_synteny_prot.run_blat @root, @options[:outdir]
|
104
|
+
end_time = Time.now
|
105
|
+
c_time = Helper.sec2str(end_time - start_time)
|
106
|
+
print "done (#{c_time})\n"
|
99
107
|
|
100
108
|
ref_synteny_prot.extract_hits :refgenome
|
101
109
|
|
@@ -145,10 +153,14 @@ class BacterialAnnotator
|
|
145
153
|
dump_ref_synteny_to_file
|
146
154
|
|
147
155
|
# run RNA annotation
|
148
|
-
puts "\nRunning BLAT alignment with Reference Genome RNA.."
|
149
156
|
@rna_synteny = SequenceSynteny.new(@query_fasta.fasta_file, @ref_genome.rna_file,
|
150
157
|
"RNA-Ref", @options[:pidentity], @options[:pcoverage], "dna")
|
158
|
+
print "# Running alignment with Reference Genome RNA (blat).."
|
159
|
+
start_time = Time.now
|
151
160
|
@rna_synteny.run_blat @root, @options[:outdir]
|
161
|
+
end_time = Time.now
|
162
|
+
c_time = Helper.sec2str(end_time-start_time)
|
163
|
+
print "done (#{c_time})\n"
|
152
164
|
@rna_synteny.extract_hits_dna :rna
|
153
165
|
@contig_annotations_rna = {}
|
154
166
|
@query_fasta.annotation_files[:contigs].each_with_index do |contig, contig_index|
|
@@ -168,9 +180,9 @@ class BacterialAnnotator
|
|
168
180
|
# Parse annotations to genbank files
|
169
181
|
parse_genbank_files
|
170
182
|
|
171
|
-
|
183
|
+
print "# Printing Statistics.."
|
172
184
|
print_stats "#{@options[:outdir]}"
|
173
|
-
|
185
|
+
print "done\n"
|
174
186
|
|
175
187
|
end # end of method
|
176
188
|
|
@@ -188,7 +200,7 @@ class BacterialAnnotator
|
|
188
200
|
"Prot-ExternalDB", @options[:pidentity],
|
189
201
|
@options[:pcoverage], "prot")
|
190
202
|
|
191
|
-
puts "
|
203
|
+
puts "# Running BLAT alignment with External Database.."
|
192
204
|
@externaldb_synteny.run_blat @root, @options[:outdir]
|
193
205
|
@externaldb_synteny.extract_hits :externaldb
|
194
206
|
|
@@ -237,7 +249,8 @@ class BacterialAnnotator
|
|
237
249
|
# parse all genbank files
|
238
250
|
def parse_genbank_files
|
239
251
|
|
240
|
-
|
252
|
+
print "# Parsing annotation into genbank files.."
|
253
|
+
start_time = Time.now
|
241
254
|
@contig_annotations_cds.each do |contig, contig_prots|
|
242
255
|
|
243
256
|
gbk_path = @query_fasta.annotation_files[:gbk_path]
|
@@ -265,7 +278,9 @@ class BacterialAnnotator
|
|
265
278
|
gbk_to_annotate.save_genbank_to_file gbk_path
|
266
279
|
|
267
280
|
end
|
268
|
-
|
281
|
+
end_time = Time.now
|
282
|
+
c_time = Helper.sec2str(end_time-start_time)
|
283
|
+
print "done (#{c_time})\n"
|
269
284
|
end # end of method
|
270
285
|
|
271
286
|
|
@@ -505,18 +520,21 @@ class BacterialAnnotator
|
|
505
520
|
|
506
521
|
# Iterate over each Ref protein and print syntheny
|
507
522
|
synteny_file = File.open("#{@options[:outdir]}/Prot-Synteny.tsv","w")
|
508
|
-
synteny_file.write("RefLocusTag\tRefProtID\tRefLength\tRefCoverage\tIdentity\tQueryGene\tQueryLength\tQueryCoverage\n")
|
523
|
+
synteny_file.write("RefLocusTag\tRefProtID\tRefLength\tRefCoverage\tIdentity\tQueryGene\tQueryLength\tQueryCoverage\tQueryPartial\n")
|
509
524
|
ref_annotated = {}
|
510
525
|
|
511
526
|
@prot_synteny_refgenome.query_sequences.each do |prot, syn_val|
|
512
527
|
next if ! syn_val.has_key? :homology
|
528
|
+
next if syn_val[:homology][:assert_cutoff].inject(:+) < 3
|
529
|
+
next if ref_annotated.has_key? syn_val[:homology][:hits][0] and ref_annotated[syn_val[:homology][:hits][0]][:partial] == 0
|
513
530
|
ref_annotated[syn_val[:homology][:hits][0]] = {
|
514
531
|
key: prot,
|
515
532
|
pId: syn_val[:homology][:pId],
|
516
533
|
cov_query: syn_val[:homology][:cov_query],
|
517
534
|
cov_subject: syn_val[:homology][:cov_subject],
|
518
535
|
assert_cutoff: syn_val[:homology][:assert_cutoff],
|
519
|
-
length: syn_val[:homology][:length][0]
|
536
|
+
length: syn_val[:homology][:length][0],
|
537
|
+
partial: (syn_val[:partial] ? 1 : 0)
|
520
538
|
}
|
521
539
|
end
|
522
540
|
|
@@ -539,6 +557,7 @@ class BacterialAnnotator
|
|
539
557
|
query_length = @query_fasta.annotation_files[:prot_ids_length][gene]
|
540
558
|
coverage_query = ref_annotated[ref_v[:protId]][:cov_query]
|
541
559
|
pId = ref_annotated[ref_v[:protId]][:pId]
|
560
|
+
partial = ref_annotated[ref_v[:protId]][:partial]
|
542
561
|
end
|
543
562
|
|
544
563
|
synteny_file.write(ref_v[:protId])
|
@@ -549,6 +568,7 @@ class BacterialAnnotator
|
|
549
568
|
synteny_file.write("\t"+gene)
|
550
569
|
synteny_file.write("\t"+query_length.to_s)
|
551
570
|
synteny_file.write("\t"+coverage_query.to_s)
|
571
|
+
synteny_file.write("\t"+partial.to_s)
|
552
572
|
synteny_file.write("\n")
|
553
573
|
|
554
574
|
end
|
data/lib/bacterial-comparator.rb
CHANGED
@@ -9,6 +9,7 @@
|
|
9
9
|
require 'bio'
|
10
10
|
require 'fileutils'
|
11
11
|
require 'parallel'
|
12
|
+
require 'helper'
|
12
13
|
|
13
14
|
class BacterialComparator
|
14
15
|
|
@@ -40,15 +41,16 @@ class BacterialComparator
|
|
40
41
|
end
|
41
42
|
|
42
43
|
def read_prot_synteny
|
43
|
-
|
44
|
+
|
45
|
+
print "# Reading genome synteny files - from genome annotations.."
|
46
|
+
start_time = Time.now
|
44
47
|
synteny = {}
|
45
48
|
@genomes_list.each do |g|
|
46
|
-
puts " #{g}/Prot-Synteny.tsv"
|
47
49
|
genome_synteny = []
|
48
50
|
file = File.open("#{g}/Prot-Synteny.tsv", "r")
|
49
51
|
l = file.gets # skip header
|
50
52
|
while l = file.gets
|
51
|
-
# AAK98805.1 spr0001 453 1.0 100.0 ABAC01000005_14 453 1.0
|
53
|
+
# AAK98805.1 spr0001 453 1.0 100.0 ABAC01000005_14 453 1.0 1|0
|
52
54
|
lA = l.chomp.split("\t")
|
53
55
|
synteny[lA[0]] = [] if ! synteny.has_key? lA[0]
|
54
56
|
synteny[lA[0]] << {ref_cov: lA[3].to_f, pId: lA[4].to_f, query_prot: lA[5], query_cov: lA[7].to_f}
|
@@ -61,7 +63,12 @@ class BacterialComparator
|
|
61
63
|
end
|
62
64
|
file.close
|
63
65
|
end
|
66
|
+
end_time = Time.now
|
67
|
+
c_time = Helper.sec2str(end_time-start_time)
|
68
|
+
print "done (#{c_time})\n"
|
69
|
+
|
64
70
|
synteny
|
71
|
+
|
65
72
|
end
|
66
73
|
|
67
74
|
def get_ref_prot
|
@@ -76,62 +83,72 @@ class BacterialComparator
|
|
76
83
|
end
|
77
84
|
|
78
85
|
|
79
|
-
|
86
|
+
# load all id => sequences from multifasta
|
87
|
+
def load_genome_cds file
|
80
88
|
|
81
|
-
|
89
|
+
proteins = {}
|
90
|
+
flatfile = Bio::FlatFile.auto(file)
|
82
91
|
flatfile.each_entry do |entry|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
92
|
+
name = entry.definition.split(" ")[0]
|
93
|
+
bioseq = Bio::Sequence.auto(entry.seq)
|
94
|
+
out = bioseq.output_fasta("#{name}",60)
|
95
|
+
proteins[name] = out
|
87
96
|
end
|
88
|
-
|
97
|
+
|
98
|
+
proteins
|
89
99
|
|
90
100
|
end
|
91
101
|
|
92
102
|
|
93
|
-
def build_multifasta
|
103
|
+
def build_multifasta synteny_list
|
94
104
|
|
95
105
|
pep_out_dir = "./#{@outdir}/align-genes-pep"
|
96
|
-
dna_out_dir = "./#{@outdir}/align-genes-dna"
|
97
106
|
|
98
|
-
|
99
|
-
|
100
|
-
pep_out = File.open(pep_out_dir+"/#{
|
101
|
-
|
102
|
-
flatfile = Bio::FlatFile.auto("#{pep_file[0]}")
|
103
|
-
pep_out.write(get_sequence_from_flatfile flatfile, ref_prot)
|
104
|
-
flatfile.close
|
105
|
-
@genomes_list.each_with_index do |g,i|
|
106
|
-
flatfile = Bio::FlatFile.auto("#{g}/Proteins.fa")
|
107
|
-
pep_out.write(get_sequence_from_flatfile flatfile, synteny[i][:query_prot])
|
108
|
-
flatfile.close
|
109
|
-
end
|
107
|
+
ref_proteins = load_genome_cds(Dir["#{@genomes_list[0]}/*.pep"][0])
|
108
|
+
synteny_list.each do |k,v|
|
109
|
+
pep_out = File.open(pep_out_dir+"/#{k}.pep", "w")
|
110
|
+
pep_out.write(ref_proteins[k])
|
110
111
|
pep_out.close
|
111
112
|
end
|
112
113
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
flatfile.close
|
121
|
-
@genomes_list.each_with_index do |g,i|
|
122
|
-
flatfile = Bio::FlatFile.auto("#{g}/Genes.fa")
|
123
|
-
dna_out.write(get_sequence_from_flatfile flatfile, synteny[i][:query_prot])
|
124
|
-
flatfile.close
|
114
|
+
@genomes_list.each_with_index do |g,i|
|
115
|
+
|
116
|
+
genome_proteins = load_genome_cds("#{g}/Proteins.fa")
|
117
|
+
synteny_list.each do |k,v|
|
118
|
+
pep_out = File.open(pep_out_dir+"/#{k}.pep", "a")
|
119
|
+
pep_out.write(genome_proteins[v[i][:query_prot]])
|
120
|
+
pep_out.close
|
125
121
|
end
|
122
|
+
|
123
|
+
end
|
124
|
+
|
125
|
+
dna_out_dir = "./#{@outdir}/align-genes-dna"
|
126
|
+
ref_genes = load_genome_cds(Dir["#{@genomes_list[0]}/*.dna"][0])
|
127
|
+
synteny_list.each do |k,v|
|
128
|
+
dna_out = File.open(dna_out_dir+"/#{k}.dna", "w")
|
129
|
+
dna_out.write(ref_genes[k])
|
126
130
|
dna_out.close
|
127
131
|
end
|
128
132
|
|
129
|
-
|
133
|
+
@genomes_list.each_with_index do |g,i|
|
134
|
+
|
135
|
+
genome_genes = load_genome_cds("#{g}/Genes.fa")
|
136
|
+
synteny_list.each do |k,v|
|
137
|
+
dna_out = File.open(dna_out_dir+"/#{k}.dna", "a")
|
138
|
+
dna_out.write(genome_genes[v[i][:query_prot]])
|
139
|
+
dna_out.close
|
140
|
+
end
|
141
|
+
|
142
|
+
end
|
130
143
|
|
144
|
+
end
|
131
145
|
|
146
|
+
# extract and dump multifasta for syntenic genes and proteins
|
132
147
|
def extract_syntenic_fasta min_cov, min_pid
|
133
148
|
|
134
|
-
|
149
|
+
print "# Extracting Proteins and Genes multifasta.."
|
150
|
+
start_time = Time.now
|
151
|
+
|
135
152
|
nb_of_syntenic = 0
|
136
153
|
stats = {}
|
137
154
|
stats[:syntenic] = []
|
@@ -141,6 +158,7 @@ class BacterialComparator
|
|
141
158
|
to_build_multifasta = []
|
142
159
|
|
143
160
|
@synteny.each do |k,v|
|
161
|
+
|
144
162
|
is_syntenic = 1
|
145
163
|
v.each do |v_|
|
146
164
|
if v_[:query_cov] == "-"
|
@@ -186,12 +204,18 @@ class BacterialComparator
|
|
186
204
|
Dir.mkdir(pep_out_dir) if ! Dir.exists? pep_out_dir
|
187
205
|
Dir.mkdir(dna_out_dir) if ! Dir.exists? dna_out_dir
|
188
206
|
|
189
|
-
|
190
|
-
|
207
|
+
synteny_list = to_build_multifasta.each_slice((to_build_multifasta.length/@proc)+1).to_a
|
208
|
+
|
209
|
+
Parallel.map(synteny_list, in_processes: @proc) { |list|
|
210
|
+
build_multifasta list
|
191
211
|
}
|
192
212
|
|
213
|
+
end_time = Time.now
|
214
|
+
c_time = Helper.sec2str(end_time-start_time)
|
215
|
+
print "done (#{c_time})\n"
|
216
|
+
|
193
217
|
stats[:nb_of_syntenic] = nb_of_syntenic
|
194
|
-
puts "Syntenic genes : " + nb_of_syntenic.to_s + " / " + @ref_prot.length.to_s
|
218
|
+
#puts " Syntenic genes : " + nb_of_syntenic.to_s + " / " + @ref_prot.length.to_s
|
195
219
|
|
196
220
|
end
|
197
221
|
|
@@ -224,7 +248,9 @@ class BacterialComparator
|
|
224
248
|
|
225
249
|
def mafft_align_all_pep
|
226
250
|
|
227
|
-
|
251
|
+
print "# Sequence alignments - conserved single proteins a.a. (MAFFT).."
|
252
|
+
start_time = Time.now
|
253
|
+
|
228
254
|
ori_dir = Dir.pwd
|
229
255
|
Dir.chdir("#{@outdir}/align-genes-pep/")
|
230
256
|
|
@@ -243,10 +269,12 @@ class BacterialComparator
|
|
243
269
|
Parallel.map(Dir["*.pep"], in_processes: @proc) { |f|
|
244
270
|
mafft_align f
|
245
271
|
}
|
246
|
-
else
|
247
|
-
puts "..Prot alignment files already exists, skipping."
|
248
272
|
end
|
249
273
|
|
274
|
+
end_time = Time.now
|
275
|
+
c_time = Helper.sec2str(end_time-start_time)
|
276
|
+
print "done (#{c_time})\n"
|
277
|
+
|
250
278
|
# FIXME ugly hack to find out the reference genome
|
251
279
|
ref_id = Dir["#{ori_dir}/#{@genomes_list[0]}/*.pep"][0].split('/')[-1].gsub(".pep","")
|
252
280
|
|
@@ -257,7 +285,10 @@ class BacterialComparator
|
|
257
285
|
end
|
258
286
|
|
259
287
|
def mafft_align_all_dna
|
260
|
-
|
288
|
+
|
289
|
+
print "# Sequence alignments - conserved single genes dna (MAFFT).."
|
290
|
+
start_time = Time.now
|
291
|
+
|
261
292
|
ori_dir = Dir.pwd
|
262
293
|
Dir.chdir("#{@outdir}/align-genes-dna/")
|
263
294
|
|
@@ -276,13 +307,15 @@ class BacterialComparator
|
|
276
307
|
Parallel.map(Dir["*.dna"], in_processes: @proc) { |f|
|
277
308
|
mafft_align f
|
278
309
|
}
|
279
|
-
else
|
280
|
-
puts "..Gene alignment files already exists, skipping."
|
281
310
|
end
|
282
311
|
|
283
312
|
# ugly hack to find out the reference genome
|
284
313
|
ref_id = Dir["#{ori_dir}/#{@genomes_list[0]}/*.pep"][0].split('/')[-1].gsub(".pep","")
|
285
314
|
|
315
|
+
end_time = Time.now
|
316
|
+
c_time = Helper.sec2str(end_time-start_time)
|
317
|
+
print "done (#{c_time})\n"
|
318
|
+
|
286
319
|
concat_alignments "align-genes-dna.all.fasta", ref_id
|
287
320
|
|
288
321
|
Dir.chdir(ori_dir)
|
@@ -355,36 +388,39 @@ class BacterialComparator
|
|
355
388
|
|
356
389
|
|
357
390
|
def raxml_tree_dna bt
|
358
|
-
|
359
|
-
|
360
|
-
puts "# RAXML DNA tree creation.. "
|
391
|
+
print "# Genes DNA tree creation (RAXML).."
|
392
|
+
start_time = Time.now
|
361
393
|
ori_dir = Dir.pwd
|
362
394
|
Dir.chdir(@outdir)
|
363
395
|
Dir.mkdir("tree-genes-dna") if ! Dir.exists?("tree-genes-dna")
|
364
396
|
current_dir = Dir.pwd
|
365
397
|
tree_dir = "#{current_dir}/tree-genes-dna"
|
366
|
-
cmd = system("#{@root}/raxml.linux -T #{@proc} -f d -N #{bt} -s align-genes-dna.all.fasta -m GTRGAMMA -p 123454321 -n DnaTree -w #{tree_dir}")
|
398
|
+
cmd = system("#{@root}/raxml.linux -T #{@proc} -f d -N #{bt} -s align-genes-dna.all.fasta -m GTRGAMMA -p 123454321 -n DnaTree -w #{tree_dir} > /dev/null 2>&1")
|
367
399
|
cmd = system("cat #{tree_dir}/RAxML_result.DnaTree.RUN.* >> #{tree_dir}/RAxML_result.BS")
|
368
|
-
cmd = system("#{@root}/raxml.linux -T #{@proc} -f b -z #{tree_dir}/RAxML_result.BS -t #{tree_dir}/RAxML_bestTree.DnaTree -m GTRGAMMA -n DNA_BS_TREE -w #{tree_dir}")
|
369
|
-
cmd = system("ln -s #{tree_dir}/RAxML_bipartitionsBranchLabels.DNA_BS_TREE #{tree_dir}/../")
|
400
|
+
cmd = system("#{@root}/raxml.linux -T #{@proc} -f b -z #{tree_dir}/RAxML_result.BS -t #{tree_dir}/RAxML_bestTree.DnaTree -m GTRGAMMA -n DNA_BS_TREE -w #{tree_dir} > /dev/null 2>&1")
|
401
|
+
cmd = system("ln -s #{tree_dir}/RAxML_bipartitionsBranchLabels.DNA_BS_TREE #{tree_dir}/../tree-genes-dna.nwk")
|
370
402
|
Dir.chdir(ori_dir)
|
403
|
+
end_time = Time.now
|
404
|
+
c_time = Helper.sec2str(end_time-start_time)
|
405
|
+
print "done (#{c_time})\n"
|
371
406
|
end
|
372
407
|
|
373
408
|
def raxml_tree_pep bt
|
374
|
-
|
375
|
-
|
376
|
-
puts "# RAXML Protein tree creation.. "
|
409
|
+
print "# Proteins AA tree creation (RAXML).."
|
410
|
+
start_time = Time.now
|
377
411
|
ori_dir = Dir.pwd
|
378
412
|
Dir.chdir(@outdir)
|
379
413
|
Dir.mkdir("tree-genes-pep") if ! Dir.exists?("tree-genes-pep")
|
380
414
|
current_dir = Dir.pwd
|
381
415
|
tree_dir = "#{current_dir}/tree-genes-pep"
|
382
|
-
cmd = system("#{@root}/raxml.linux -T #{@proc} -f d -N #{bt} -s align-genes-pep.all.fasta -m PROTGAMMAAUTO -p 123454321 -n PepTree -w #{tree_dir}")
|
416
|
+
cmd = system("#{@root}/raxml.linux -T #{@proc} -f d -N #{bt} -s align-genes-pep.all.fasta -m PROTGAMMAAUTO -p 123454321 -n PepTree -w #{tree_dir} > /dev/null 2>&1")
|
383
417
|
cmd = system("cat #{tree_dir}/RAxML_result.PepTree.RUN.* >> #{tree_dir}/RAxML_result.BS")
|
384
|
-
cmd = system("#{@root}/raxml.linux -T #{@proc} -f b -z #{tree_dir}/RAxML_result.BS -t #{tree_dir}/RAxML_bestTree.PepTree -m PROTGAMMAAUTO -n PEP_BS_TREE -w #{tree_dir}")
|
385
|
-
cmd = system("ln -s #{tree_dir}/RAxML_bipartitionsBranchLabels.PEP_BS_TREE #{tree_dir}/../")
|
418
|
+
cmd = system("#{@root}/raxml.linux -T #{@proc} -f b -z #{tree_dir}/RAxML_result.BS -t #{tree_dir}/RAxML_bestTree.PepTree -m PROTGAMMAAUTO -n PEP_BS_TREE -w #{tree_dir} > /dev/null 2>&1")
|
419
|
+
cmd = system("ln -s #{tree_dir}/RAxML_bipartitionsBranchLabels.PEP_BS_TREE #{tree_dir}/../tree-proteins-aa.nwk")
|
386
420
|
Dir.chdir(ori_dir)
|
387
|
-
|
421
|
+
end_time = Time.now
|
422
|
+
c_time = Helper.sec2str(end_time-start_time)
|
423
|
+
print "done (#{c_time})\n"
|
388
424
|
end
|
389
425
|
|
390
426
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bacterial-annotator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maxime Deraspe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bio
|