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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 713193368d710e1a3f78b0279657fab96ded5586
4
- data.tar.gz: 82a924362e32d116b029429a00e55a45aa3f8dc7
3
+ metadata.gz: bc9bbbe5d2c03c4019290cf077f7ac21c6b0d687
4
+ data.tar.gz: 746d312f4891d7a561d00b1c6299cb57750daa7f
5
5
  SHA512:
6
- metadata.gz: 9d853a09c8cfbb5e9bfc4525acf4d222ed8c15d601c7b40c0f68d21c724419f773dbe354e161940a04138a59c75c49743165f290f0f4acc1e4a7b15a7d5b9680
7
- data.tar.gz: 3772047f7326e06f3cafd73f8776318001b3e53b446a92e144ec30725dd22fc41cb13c08a5f4cb4cc638bbc6b728f4c7af8b8375755f58b44ec42940f589cd6c
6
+ metadata.gz: 1dbde919ea570e01223a48ec6f357d77d88ce62502ad0d09a9ba465a5bc4becb11a4caa5f6e8accf721e5c21780118f46c427b99abe1512bfce8e2a27c329a59
7
+ data.tar.gz: 708a2a03d84dcc46f10a921deaca1705fdd0091b00cd096971bf5436d443d244d31740d5012caf916a045b56b7c35ad73c45abefdee6a59d29abc9f7a8664c1d
@@ -11,7 +11,7 @@
11
11
  require 'bacterial-annotator'
12
12
  require 'bacterial-comparator'
13
13
 
14
- VERSION = "0.6.1"
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 <name> Sample name
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=","")=='01')
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
@@ -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
- puts "\nRunning Prodigal on your genome.."
82
+ print "# Running Prodigal on your genome.."
83
+ start_time = Time.now
83
84
  @query_fasta.run_prodigal @root, @options[:outdir]
84
- puts "Prodigal done."
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
- puts "\nPrinting Statistics.."
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 "\nRunning BLAT alignment with External Database.."
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
- puts "\nParsing annotation into genbank files.."
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
@@ -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
- puts "# Reading genomes synteny files (from genome annotations) .."
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
- def get_sequence_from_flatfile flatfile, name
86
+ # load all id => sequences from multifasta
87
+ def load_genome_cds file
80
88
 
81
- out = ""
89
+ proteins = {}
90
+ flatfile = Bio::FlatFile.auto(file)
82
91
  flatfile.each_entry do |entry|
83
- if entry.definition.split(" ")[0] == name
84
- bioseq = Bio::Sequence.auto(entry.seq)
85
- out = bioseq.output_fasta("#{name}",60)
86
- end
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
- out
97
+
98
+ proteins
89
99
 
90
100
  end
91
101
 
92
102
 
93
- def build_multifasta ref_prot, synteny
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
- # create multifasta by syntenic proteins (pep)
99
- if ! File.exists? pep_out_dir+"/#{ref_prot}.pep"
100
- pep_out = File.open(pep_out_dir+"/#{ref_prot}.pep", "w")
101
- pep_file = Dir["#{@genomes_list[0]}/*.pep"]
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
- # create multifasta by syntenic genes (dna)
114
- if ! File.exists? dna_out_dir+"/#{ref_prot}.dna"
115
- dna_out = File.open(dna_out_dir+"/#{ref_prot}.dna", "w")
116
- # create multifasta by syntenic proteins
117
- dna_file = Dir["#{@genomes_list[0]}/*.dna"]
118
- flatfile = Bio::FlatFile.auto("#{dna_file[0]}")
119
- dna_out.write(get_sequence_from_flatfile flatfile, ref_prot)
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
- end
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
- puts "# Extracting Proteins and Genes multifasta.."
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
- Parallel.map(to_build_multifasta, in_processes: @proc) { |k,v|
190
- build_multifasta k, v
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
- puts "# MAFFT multialign all protein sequences.."
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
- puts "# MAFFT multialign all gene sequences.."
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
- # DNA tree
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
- # Prot tree
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.2
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-03 00:00:00.000000000 Z
11
+ date: 2017-10-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bio