module MiGA::Dataset::Result::Add

frozen_string_literal: true

Public Instance Methods

add_result_assembly(base, opts) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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) click to toggle source

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

# 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