bacterial-annotator 0.6.2 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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