Class: Ensembl::Core::SeqRegion
- Inherits:
-
DBConnection
- Object
- ActiveRecord::Base
- DBConnection
- Ensembl::Core::SeqRegion
- Defined in:
- lib/ensembl/core/activerecord.rb
Overview
DESCRIPTION
The SeqRegion class describes a part of a coordinate systems. It is an interface to the seq_region table of the Ensembl mysql database.
This class uses ActiveRecord to access data in the Ensembl database. See the general documentation of the Ensembl module for more information on what this means and what methods are available.
USAGE
chr4 = SeqRegion.find_by_name('4')
puts chr4.coord_system.name #--> 'chromosome'
chr4.genes.each do |gene|
puts gene.biotype
end
Instance Method Summary collapse
-
#assembled_seq_regions(coord_system_name = nil) ⇒ Object
DESCRIPTION The SeqRegion#assembled_seq_regions returns the sequence regions on which the current region is assembled.
-
#assembly_links_as_assembly(coord_system_name = nil) ⇒ Object
DESCRIPTION This method queries the assembly table to find those rows (i.e. AssemblyLink objects) for which this seq_region is the assembly.
-
#assembly_links_as_component(coord_system_name = nil) ⇒ Object
DESCRIPTION This method queries the assembly table to find those rows (i.e. AssemblyLink objects) for which this seq_region is the component.
-
#component_seq_regions(coord_system_name = nil) ⇒ Object
DESCRIPTION The SeqRegion#component_seq_regions returns the sequence regions contained within the current region (in other words: the bits used to assemble the current region).
-
#sequence ⇒ Object
(also: #seq)
DESCRIPTION The SeqRegion#sequence method returns the sequence of this seq_region.
-
#slice ⇒ Object
DESCRIPTION The SeqRegion#slice method returns a slice object that covers the whole of the seq_region.
-
#subsequence(start, stop) ⇒ Object
(also: #subseq)
DESCRIPTION The SeqRegion#subsequence method returns a subsequence of this seq_region.
Methods inherited from DBConnection
Instance Method Details
#assembled_seq_regions(coord_system_name = nil) ⇒ Object
DESCRIPTION
The SeqRegion#assembled_seq_regions returns the sequence regions on which the current region is assembled. For example, calling this method on a contig sequence region, it might return the chromosome that that contig is part of. Optionally, this method takes a coordinate system name so that only regions of that coordinate system are returned.
- Arguments
-
coord_system_name (optional)
- Returns
-
array of SeqRegion objects
387 388 389 390 391 392 393 394 395 396 397 398 399 400 |
# File 'lib/ensembl/core/activerecord.rb', line 387 def assembled_seq_regions(coord_system_name = nil) if coord_system_name.nil? return self.asm_seq_regions else answer = Array.new coord_system = CoordSystem.find_by_name(coord_system_name) self.asm_seq_regions.each do |asr| if asr.coord_system_id == coord_system.id answer.push(asr) end end return answer end end |
#assembly_links_as_assembly(coord_system_name = nil) ⇒ Object
DESCRIPTION
This method queries the assembly table to find those rows (i.e. AssemblyLink objects) for which this seq_region is the assembly.
USAGE
my_seq_region = SeqRegion.find('4')
first_link = my_seq_region.assembly_links_as_assembly[0]
puts first_link.asm_start.to_s + "\t" + first_link.asm_end.to_s
Arguments:
-
coord_system_name: name of coordinate system that the components should belong to (default = nil)
- Returns
-
array of AssemblyLink objects
442 443 444 445 446 447 448 449 450 |
# File 'lib/ensembl/core/activerecord.rb', line 442 def assembly_links_as_assembly(coord_system_name = nil) if coord_system_name.nil? return self.asm_links_as_asm else coord_system = CoordSystem.find_by_name(coord_system_name) # return self.asm_links_as_asm.select{|alaa| alaa.cmp_seq_region.coord_system_id == coord_system.id} return AssemblyLink.find_by_sql("SELECT * FROM assembly a WHERE a.asm_seq_region_id = " + self.id.to_s + " AND a.cmp_seq_region_id IN (SELECT sr.seq_region_id FROM seq_region sr WHERE coord_system_id = " + coord_system.id.to_s + ")") end end |
#assembly_links_as_component(coord_system_name = nil) ⇒ Object
DESCRIPTION
This method queries the assembly table to find those rows (i.e. AssemblyLink objects) for which this seq_region is the component.
USAGE
my_seq_region = SeqRegion.find('Chr4.003.1')
first_link = my_seq_region.assembly_links_as_component[0]
puts first_link.asm_start.to_s + "\t" + first_link.asm_end.to_s
Arguments:
-
coord_system_name: name of coordinate system that the assembly should belong to (default = nil)
- Returns
-
array of AssemblyLink objects
467 468 469 470 471 472 473 474 |
# File 'lib/ensembl/core/activerecord.rb', line 467 def assembly_links_as_component(coord_system_name = nil) if coord_system_name.nil? return self.asm_links_as_cmp else coord_system = CoordSystem.find_by_name(coord_system_name) return self.asm_links_as_cmp.select{|alac| alac.asm_seq_region.coord_system_id == coord_system.id} end end |
#component_seq_regions(coord_system_name = nil) ⇒ Object
DESCRIPTION
The SeqRegion#component_seq_regions returns the sequence regions contained within the current region (in other words: the bits used to assemble the current region). For example, calling this method on a chromosome sequence region, it might return the contigs that were assembled into this chromosome. Optionally, this method takes a coordinate system name so that only regions of that coordinate system are returned.
- Arguments
-
coord_system_name (optional)
- Returns
-
array of SeqRegion objects
412 413 414 415 416 417 418 419 420 421 422 423 424 425 |
# File 'lib/ensembl/core/activerecord.rb', line 412 def component_seq_regions(coord_system_name = nil) if coord_system_name.nil? return self.cmp_seq_regions else answer = Array.new coord_system = CoordSystem.find_by_name(coord_system_name) self.cmp_seq_regions.each do |csr| if csr.coord_system_id == coord_system.id answer.push(csr) end end return answer end end |
#sequence ⇒ Object Also known as: seq
DESCRIPTION
The SeqRegion#sequence method returns the sequence of this seq_region. At the moment, it will only return the sequence if the region belongs to the seqlevel coordinate system.
- Arguments
-
none
- Returns
-
DNA sequence as String
483 484 485 |
# File 'lib/ensembl/core/activerecord.rb', line 483 def sequence return self.dna.sequence end |
#slice ⇒ Object
DESCRIPTION
The SeqRegion#slice method returns a slice object that covers the whole of the seq_region.
- Arguments
-
none
- Returns
-
Ensembl::Core::Slice object
374 375 376 |
# File 'lib/ensembl/core/activerecord.rb', line 374 def slice return Ensembl::Core::Slice.new(self) end |
#subsequence(start, stop) ⇒ Object Also known as: subseq
DESCRIPTION
The SeqRegion#subsequence method returns a subsequence of this seq_region. At the moment, it will only return the sequence if the region belongs to the seqlevel coordinate system.
- Arguments
-
start and stop position
- Returns
-
DNA sequence as String
495 496 497 |
# File 'lib/ensembl/core/activerecord.rb', line 495 def subsequence(start, stop) return self.seq.slice(start - 1, (stop - start) + 1) end |