Module: MiGA::Dataset::Result::Add

Included in:
MiGA::Dataset::Result
Defined in:
lib/miga/dataset/result/add.rb

Instance Method Summary collapse

Instance Method Details

#add_result_assembly(base, opts) ⇒ Object

Add result type :assembly at base. Hash opts supports is_clean: Boolean.



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/miga/dataset/result/add.rb', line 75

def add_result_assembly(base, opts)
  return nil unless result_files_exist?(base, '.LargeContigs.fna')

  r = add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    largecontigs: '.LargeContigs.fna',
    allcontigs: '.AllContigs.fna',
    assembly_data: ''
  )
  opts[:is_clean] ||= false
  r.clean! if opts[:is_clean]
  unless r.clean?
    MiGA::MiGA.clean_fasta_file(r.file_path(:largecontigs))
    r.clean!
  end
  r
end

#add_result_cds(base, opts) ⇒ Object

Add result type :cds at base. Hash opts supports is_clean: Boolean



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/miga/dataset/result/add.rb', line 95

def add_result_cds(base, opts)
  return nil unless result_files_exist?(base, %w[.faa])

  r = add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    proteins: '.faa',
    genes: '.fna',
    gff2: '.gff2',
    gff3: '.gff3',
    tab: '.tab'
  )
  opts[:is_clean] ||= false
  r.clean! if opts[:is_clean]
  unless r.clean?
    MiGA::MiGA.clean_fasta_file(r.file_path(:proteins))
    MiGA::MiGA.clean_fasta_file(r.file_path(:genes)) if r.file_path(:genes)
    r.clean!
  end
  r
end

#add_result_distances(base, _opts) ⇒ Object

Add result type :distances at base (no _opts supported)



212
213
214
215
216
217
218
219
220
221
222
# File 'lib/miga/dataset/result/add.rb', line 212

def add_result_distances(base, _opts)
  if nonmulti?
    if ref?
      add_result_distances_ref(base)
    else
      add_result_distances_nonref(base)
    end
  else
    add_result_distances_multi(base)
  end
end

#add_result_essential_genes(base, _opts) ⇒ Object

Add result type :essential_genes at base (no _opts supported).



118
119
120
121
122
123
124
125
126
127
128
129
130
131
# File 'lib/miga/dataset/result/add.rb', line 118

def add_result_essential_genes(base, _opts)
  return nil unless result_files_exist?(base, %w[.ess.faa .ess .ess/log])

  add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    ess_genes: '.ess.faa',
    collection: '.ess',
    report: '.ess/log',
    alignments: '.ess/proteins.aln',
    fastaai_index: '.faix.db.gz',
    fastaai_index_2: '.faix',
    fastaai_crystal: '.crystal'
  )
end

#add_result_mytaxa(base, _opts) ⇒ Object

Add result type :mytaxa at base (no _opts supported)



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/miga/dataset/result/add.rb', line 159

def add_result_mytaxa(base, _opts)
  if multi?
    return nil unless
      result_files_exist?(base, '.mytaxa') ||
      result_files_exist?(base, '.nomytaxa.txt')

    add_files_to_ds_result(
      MiGA::Result.new("#{base}.json"), name,
      mytaxa: '.mytaxa',
      blast: '.blast',
      mytaxain: '.mytaxain',
      nomytaxa: '.nomytaxa.txt',
      species: '.mytaxa.Species.txt',
      genus: '.mytaxa.Genus.txt',
      phylum: '.mytaxa.Phylum.txt',
      innominate: '.mytaxa.innominate',
      kronain: '.mytaxa.krona',
      krona: '.html'
    )
  else
    MiGA::Result.new("#{base}.json")
  end
end

#add_result_mytaxa_scan(base, _opts) ⇒ Object

Add result type :mytaxa_scan at base (no _opts supported)



185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/miga/dataset/result/add.rb', line 185

def add_result_mytaxa_scan(base, _opts)
  if nonmulti?
    return nil unless
      result_files_exist?(base, %w[.pdf .mytaxa]) ||
      result_files_exist?(base, '.nomytaxa.txt')

    add_files_to_ds_result(
      MiGA::Result.new("#{base}.json"), name,
      nomytaxa: '.nomytaxa.txt',
      mytaxa: '.mytaxa',
      report: '.pdf',
      regions_archive: '.reg.tar',
      # Intermediate / Deprecated:
      blast: '.blast',
      mytaxain: '.mytaxain',
      wintax: '.wintax',
      gene_ids: '.wintax.genes',
      region_ids: '.wintax.regions',
      regions: '.reg'
    )
  else
    MiGA::Result.new("#{base}.json")
  end
end

#add_result_raw_reads(base, _opts) ⇒ Object

Add result type :raw_reads at base (no _opts supported)



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/miga/dataset/result/add.rb', line 6

def add_result_raw_reads(base, _opts)
  return nil unless result_files_exist?(base, '.1.fastq')

  add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    if result_files_exist?(base, '.2.fastq')
      { pair1: '.1.fastq', pair2: '.2.fastq' }
    else
      { single: '.1.fastq' }
    end
  )
end

#add_result_read_quality(base, _opts) ⇒ Object

Add result type :read_quality at base (no _opts supported)



40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/miga/dataset/result/add.rb', line 40

def add_result_read_quality(base, _opts)
  return nil unless
    result_files_exist?(base, %w[.post.1.html]) ||
    result_files_exist?(base, %w[.solexaqa .fastqc])

  add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    pre_qc_1: '.pre.1.html', pre_qc_2: '.pre.2.html',
    post_qc_1: '.post.1.html', post_qc_2: '.post.2.html',
    adapter_detection: '.adapters.txt',
    # Legacy files
    solexaqa: '.solexaqa', fastqc: '.fastqc'
  )
end

#add_result_ssu(base, opts) ⇒ Object

Add result type :ssu at base. Hash opts supports is_clean: Boolean



135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# File 'lib/miga/dataset/result/add.rb', line 135

def add_result_ssu(base, opts)
  return MiGA::Result.new("#{base}.json") if result(:assembly).nil?
  return nil unless result_files_exist?(base, '.ssu.fa')

  r = add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    longest_ssu_gene: '.ssu.fa',
    ssu_gff: '.ssu.gff', # DEPRECATED
    gff: '.gff',
    all_ssu_genes: '.ssu.all.fa',
    classification: '.rdp.tsv',
    trna_list: '.trna.txt'
  )
  opts[:is_clean] ||= false
  r.clean! if opts[:is_clean]
  unless r.clean?
    MiGA::MiGA.clean_fasta_file(r.file_path(:longest_ssu_gene))
    r.clean!
  end
  r
end

#add_result_stats(base, _opts) ⇒ Object

Add result type :stats at base (no _opts supported)



232
233
234
# File 'lib/miga/dataset/result/add.rb', line 232

def add_result_stats(base, _opts)
  MiGA::Result.new("#{base}.json")
end

#add_result_taxonomy(base, _opts) ⇒ Object

Add result type :taxonomy at base (no _opts supported)



226
227
228
# File 'lib/miga/dataset/result/add.rb', line 226

def add_result_taxonomy(base, _opts)
  add_result_distances_nonref(base)
end

#add_result_trimmed_fasta(base, _opts) ⇒ Object

Add result type :trimmed_fasta at base (no _opts supported)



57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/miga/dataset/result/add.rb', line 57

def add_result_trimmed_fasta(base, _opts)
  return nil unless
    result_files_exist?(base, '.CoupledReads.fa') ||
    result_files_exist?(base, '.SingleReads.fa')  ||
    result_files_exist?(base, %w[.1.fasta .2.fasta])

  add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    coupled: '.CoupledReads.fa',
    single: '.SingleReads.fa',
    pair1: '.1.fasta',
    pair2: '.2.fasta'
  )
end

#add_result_trimmed_reads(base, _opts) ⇒ Object

Add result type :trimmed_reads at base (no _opts supported)



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/miga/dataset/result/add.rb', line 21

def add_result_trimmed_reads(base, _opts)
  return nil unless result_files_exist?(base, '.1.clipped.fastq')

  add_files_to_ds_result(
    MiGA::Result.new("#{base}.json"), name,
    if result_files_exist?(base, '.2.clipped.fastq')
      { pair1: '.1.clipped.fastq', pair2: '.2.clipped.fastq' }
    else
      { single: '.1.clipped.fastq' }
    end
  ).tap do |r|
    # Legacy files
    r.add_file(:trimming_sumary, "#{name}.1.fastq.trimmed.summary.txt")
    r.add_file(:single, "#{name}.1.clipped.single.fastq")
  end
end