genome/dgi-db

View on GitHub
app/jobs/update_cgi.rb

Summary

Maintainability
A
2 hrs
Test Coverage
require 'net/http'
require 'openssl'
require 'zip'

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

class UpdateCgi < TsvUpdater
  def tempfile_name
    ['cgi_biomarkers_per_variant', '.tsv']
  end

  def create_importer
    Genome::Importers::Cgi::NewCgi.new(tempfile)
  end

  def download_file
    uri = URI('https://www.cancergenomeinterpreter.org/data/cgi_biomarkers_latest.zip')
    response = Net::HTTP.start(uri.host, uri.port,
                    :use_ssl => uri.scheme == 'https') do |http|
      request = Net::HTTP::Get.new uri
      http.request(request)
    end
    Zip::InputStream.open(StringIO.new(response.body)) do |io|
      while entry = io.get_next_entry
        if entry.name == 'cgi_biomarkers_per_variant.tsv'
          tempfile.write(io.read.encode("ASCII-8BIT").force_encoding("utf-8"))
        end
      end
    end
  end

  def should_group_genes?
    true
  end

  def should_group_drugs?
    true
  end

  def should_cleanup_gene_claims?
    false
  end
end