class FastaRetriever::Retriever

Public Class Methods

compose_fasta(sequence,organism,chr,start_coord,end_coord) click to toggle source
# File lib/bio-fasta_retrieve.rb, line 47
def self.compose_fasta(sequence,organism,chr,start_coord,end_coord)
  seq=Bio::Sequence::NA.new(sequence)
  seq_res=seq.to_fasta("#{organism}_#{chr}_#{start_coord}_#{end_coord}")
  return seq_res
end
new() click to toggle source
# File lib/bio-fasta_retrieve.rb, line 23
def initialize;end
parse_xml(xml) click to toggle source

parse sequence from xml

# File lib/bio-fasta_retrieve.rb, line 42
def self.parse_xml(xml)
  xml_res=xml.xpath("//DNA").text.tr("\n","")
  return xml_res
end
retrieve(organism,chr,start_coord,end_coord) click to toggle source

input organism, chromosome, start, end separated by space (i.e. hg19 chr10 1000 2000)

# File lib/bio-fasta_retrieve.rb, line 27
def self.retrieve(organism,chr,start_coord,end_coord)
  address="http://genome.ucsc.edu/cgi-bin/das/#{organism}/dna?segment=#{chr}:#{start_coord},#{end_coord}"
  xml=ucsc_connect(address)
  seq=compose_fasta(xml,organism,chr,start_coord,end_coord)       
  return seq
end
ucsc_connect(address) click to toggle source

connects to ucsc and retrieve xml with DNA sequence

# File lib/bio-fasta_retrieve.rb, line 35
def self.ucsc_connect(address)
  xml = Nokogiri::XML(open(address))
  xml_res=parse_xml(xml)
  return xml_res
end