Module: EcfClassify::HMMER

Defined in:
lib/ecf_classify/hmmer.rb

Constant Summary collapse

DBLOCATION =
{
  :general   => "data/HMM_general/all.hmm",
  :sigma3    => "data/HMM_s3/Sigma70_r3.hmm",
  :pfam      => "data/Pfam_domains/sigma2and4.hmm",
  :groups    => "data/HMM_groups/all_models.hmm",
  :subgroups => "data/HMM_subgroups/all_models.hmm",
}

Class Method Summary collapse

Class Method Details

.hmmpress(file) ⇒ Object



35
36
37
38
39
40
# File 'lib/ecf_classify/hmmer.rb', line 35

def self.hmmpress(file)
  Dir.glob("#{file}.h3{i,f,m,p}").each { |f| File.delete(f) }
  cmd = "hmmpress #{file}"
  out = `#{cmd}`
  return [out, $?.exitstatus ]
end

.hmmscan(infile, outfile, db) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/ecf_classify/hmmer.rb', line 10

def self.hmmscan(infile, outfile, db)
  if DBLOCATION.key? db
    hmm = Utils.path(DBLOCATION[db])
    cmd = "hmmscan --noali --domtblout #{outfile} #{Utils.path(DBLOCATION[db])} #{infile} 2>&1"
    out = `#{cmd}`
    return [out,$?.exitstatus]
  else
    return ["No such database", 2]
  end
end

.hmmsearch(infile, outfile, db) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/ecf_classify/hmmer.rb', line 21

def self.hmmsearch(infile, outfile, db)
  unless EcfClassify::Zenodo.status
    EcfClassify::Zenodo.download
  end
  if EcfClassify::Zenodo::FILES.key? db
    hmm = EcfClassify::Zenodo.path(db)
    cmd = "hmmsearch --noali --domtblout #{outfile} #{hmm} #{infile} 2>&1"
    out = `#{cmd}`
    return [out, $?.exitstatus]
  else
    return ["No such database", 2]
  end
end