### Home Classes Methods

### In Files

- lib/bio/location.rb

### Parent

Object

### Methods

- ::new
- #==
- #[]
- #absolute
- #each
- #equals?
- #first
- #last
- #length
- #range
- #relative
- #size
- #span
- #to_s

### Included Modules

- Enumerable

### Files

- ChangeLog
- KNOWN_ISSUES.rdoc
- LEGAL
- README.rdoc
- README_DEV.rdoc
- RELEASE_NOTES.rdoc
- Changes-1.3.rdoc
- RELEASE_NOTES-1.4.0.rdoc
- RELEASE_NOTES-1.4.1.rdoc
- RELEASE_NOTES-1.4.2.rdoc

### Class/Module Index

Quicksearch

- Bio
- Bio::AAindex
- Bio::AAindex1
- Bio::AAindex2
- Bio::Abif
- Bio::Abif::DirectoryEntry
- Bio::Alignment
- Bio::Alignment::ArrayExtension
- Bio::Alignment::EnumerableExtension
- Bio::Alignment::FactoryTemplate
- Bio::Alignment::FactoryTemplate::FileInFileOut
- Bio::Alignment::FactoryTemplate::FileInFileOutWithTree
- Bio::Alignment::FactoryTemplate::FileInStdoutOut
- Bio::Alignment::FactoryTemplate::Simple
- Bio::Alignment::FactoryTemplate::StdinInFileOut
- Bio::Alignment::FactoryTemplate::WrapInputStdin
- Bio::Alignment::FactoryTemplate::WrapInputTempfile
- Bio::Alignment::FactoryTemplate::WrapOutputStdout
- Bio::Alignment::FactoryTemplate::WrapOutputTempfile
- Bio::Alignment::GAP
- Bio::Alignment::HashExtension
- Bio::Alignment::MultiFastaFormat
- Bio::Alignment::OriginalAlignment
- Bio::Alignment::OriginalPrivate
- Bio::Alignment::Output
- Bio::Alignment::PropertyMethods
- Bio::Alignment::SequenceArray
- Bio::Alignment::SequenceHash
- Bio::Alignment::Site
- Bio::Alignment::SiteMethods
- Bio::AminoAcid
- Bio::AminoAcid::Data
- Bio::Blast
- Bio::Blast::Bl2seq
- Bio::Blast::Bl2seq::Report
- Bio::Blast::Bl2seq::Report::HSP
- Bio::Blast::Bl2seq::Report::Hit
- Bio::Blast::Bl2seq::Report::Iteration
- Bio::Blast::Default
- Bio::Blast::Default::Report
- Bio::Blast::Default::Report::HSP
- Bio::Blast::Default::Report::Hit
- Bio::Blast::Default::Report::Iteration
- Bio::Blast::Default::Report_TBlast
- Bio::Blast::Fastacmd
- Bio::Blast::NCBIOptions
- Bio::Blast::RPSBlast
- Bio::Blast::RPSBlast::RPSBlastSplitter
- Bio::Blast::RPSBlast::Report
- Bio::Blast::RPSBlast::Report::FLATFILE_SPLITTER
- Bio::Blast::RPSBlast::Report::Iteration
- Bio::Blast::Remote
- Bio::Blast::Remote::DDBJ
- Bio::Blast::Remote::DDBJ::Information
- Bio::Blast::Remote::Ddbj
- Bio::Blast::Remote::GenomeNet
- Bio::Blast::Remote::GenomeNet::Information
- Bio::Blast::Remote::Genomenet
- Bio::Blast::Remote::Information
- Bio::Blast::Report
- Bio::Blast::Report::BlastXmlSplitter
- Bio::Blast::Report::FLATFILE_SPLITTER
- Bio::Blast::Report::Hit
- Bio::Blast::Report::Hsp
- Bio::Blast::Report::Iteration
- Bio::Blast::Report_tab
- Bio::Blast::WU
- Bio::Blast::WU::Report
- Bio::Blast::WU::Report::HSP
- Bio::Blast::WU::Report::Hit
- Bio::Blast::WU::Report::Iteration
- Bio::Blast::WU::Report_TBlast
- Bio::Blat
- Bio::Blat::Report
- Bio::Blat::Report::FLATFILE_SPLITTER
- Bio::Blat::Report::Hit
- Bio::Blat::Report::SegmentPair
- Bio::Blat::Report::SeqDesc
- Bio::ClustalW
- Bio::ClustalW::Report
- Bio::CodonTable
- Bio::ColorScheme
- Bio::Command
- Bio::Command::Tmpdir
- Bio::Command::Tmpdir::Remover
- Bio::ContingencyTable
- Bio::DAS
- Bio::DAS::DNA
- Bio::DAS::DSN
- Bio::DAS::ENTRY_POINT
- Bio::DAS::FEATURE
- Bio::DAS::GFF
- Bio::DAS::GROUP
- Bio::DAS::LINK
- Bio::DAS::SEGMENT
- Bio::DAS::SEQUENCE
- Bio::DAS::TARGET
- Bio::DAS::TYPE
- Bio::DAS::TYPES
- Bio::DB
- Bio::DBGET
- Bio::DDBJ
- Bio::DDBJ::REST
- Bio::DDBJ::REST::Blast
- Bio::DDBJ::REST::ClustalW
- Bio::DDBJ::REST::DDBJ
- Bio::DDBJ::REST::Mafft
- Bio::DDBJ::REST::RequestManager
- Bio::DDBJ::REST::WABItemplate
- Bio::DDBJ::XML
- Bio::DDBJ::XML::Blast
- Bio::DDBJ::XML::ClustalW
- Bio::DDBJ::XML::DDBJ
- Bio::DDBJ::XML::Fasta
- Bio::DDBJ::XML::GetEntry
- Bio::DDBJ::XML::Gib
- Bio::DDBJ::XML::Gtop
- Bio::DDBJ::XML::PML
- Bio::DDBJ::XML::RequestManager
- Bio::DDBJ::XML::RequestManager::REST
- Bio::DDBJ::XML::SRS
- Bio::DDBJ::XML::TxSearch
- Bio::EBI
- Bio::EBI::SOAP
- Bio::EBI::SOAP::Citation
- Bio::EBI::SOAP::ClustalW
- Bio::EBI::SOAP::Dbfetch
- Bio::EBI::SOAP::Emboss
- Bio::EBI::SOAP::Fasta
- Bio::EBI::SOAP::InterProScan
- Bio::EBI::SOAP::MPsrch
- Bio::EBI::SOAP::MSD
- Bio::EBI::SOAP::Muscle
- Bio::EBI::SOAP::Ontology
- Bio::EBI::SOAP::ScanPS
- Bio::EBI::SOAP::TCoffee
- Bio::EBI::SOAP::WUBlast
- Bio::EMBL
- Bio::EMBLDB
- Bio::EMBLDB::Common
- Bio::EMBOSS
- Bio::Ensembl
- Bio::Ensembl::Base
- Bio::Ensembl::Human
- Bio::Ensembl::Mouse
- Bio::FANTOM
- Bio::FANTOM::MaXML
- Bio::FANTOM::MaXML::Annotation
- Bio::FANTOM::MaXML::Annotation::DataSrc
- Bio::FANTOM::MaXML::Annotations
- Bio::FANTOM::MaXML::Cluster
- Bio::FANTOM::MaXML::Sequence
- Bio::FANTOM::MaXML::Sequences
- Bio::Fasta
- Bio::Fasta::Report
- Bio::Fasta::Report::FLATFILE_SPLITTER
- Bio::Fasta::Report::FastaFormat10Splitter
- Bio::Fasta::Report::Hit
- Bio::Fasta::Report::Hit::Query
- Bio::Fasta::Report::Hit::Target
- Bio::Fasta::Report::Program
- Bio::FastaDefline
- Bio::FastaFormat
- Bio::FastaNumericFormat
- Bio::Fastq
- Bio::Fastq::Error
- Bio::Fastq::Error::Diff_ids
- Bio::Fastq::Error::Long_qual
- Bio::Fastq::Error::No_atmark
- Bio::Fastq::Error::No_ids
- Bio::Fastq::Error::No_qual
- Bio::Fastq::Error::No_seq
- Bio::Fastq::Error::Qual_char
- Bio::Fastq::Error::Qual_range
- Bio::Fastq::Error::Seq_char
- Bio::Fastq::Error::Short_qual
- Bio::Fastq::Error::Skipped_unformatted_lines
- Bio::Fastq::FLATFILE_SPLITTER
- Bio::Fastq::FormatData
- Bio::Fastq::FormatData::FASTQ_ILLUMINA
- Bio::Fastq::FormatData::FASTQ_SANGER
- Bio::Fastq::FormatData::FASTQ_SOLEXA
- Bio::Feature
- Bio::Feature::Qualifier
- Bio::Features
- Bio::Fetch
- Bio::FlatFile
- Bio::FlatFile::AutoDetect
- Bio::FlatFile::AutoDetect::RuleDebug
- Bio::FlatFile::AutoDetect::RuleProc
- Bio::FlatFile::AutoDetect::RuleRegexp
- Bio::FlatFile::AutoDetect::RuleRegexp2
- Bio::FlatFile::AutoDetect::RuleSpecial
- Bio::FlatFile::AutoDetect::RuleTemplate
- Bio::FlatFile::AutoDetect::RulesArray
- Bio::FlatFile::BufferedInputStream
- Bio::FlatFile::Splitter
- Bio::FlatFile::Splitter::Default
- Bio::FlatFile::Splitter::LineOriented
- Bio::FlatFile::Splitter::Template
- Bio::FlatFile::UnknownDataFormatError
- Bio::FlatFileIndex
- Bio::FlatFileIndex::BDB_1
- Bio::FlatFileIndex::BDB_1::BDBMappingFile
- Bio::FlatFileIndex::BDB_1::PrimaryNameSpace
- Bio::FlatFileIndex::BDB_1::SecondaryNameSpace
- Bio::FlatFileIndex::BDBdefault
- Bio::FlatFileIndex::BDBwrapper
- Bio::FlatFileIndex::DEBUG
- Bio::FlatFileIndex::DataBank
- Bio::FlatFileIndex::FileID
- Bio::FlatFileIndex::FileIDs
- Bio::FlatFileIndex::Flat_1
- Bio::FlatFileIndex::Flat_1::FlatMappingFile
- Bio::FlatFileIndex::Flat_1::PrimaryNameSpace
- Bio::FlatFileIndex::Flat_1::Record
- Bio::FlatFileIndex::Flat_1::SecondaryNameSpace
- Bio::FlatFileIndex::Indexer
- Bio::FlatFileIndex::Indexer::NameSpace
- Bio::FlatFileIndex::Indexer::NameSpaces
- Bio::FlatFileIndex::Indexer::Parser
- Bio::FlatFileIndex::Indexer::Parser::BlastDefaultParser
- Bio::FlatFileIndex::Indexer::Parser::EMBLParser
- Bio::FlatFileIndex::Indexer::Parser::FastaFormatParser
- Bio::FlatFileIndex::Indexer::Parser::GenBankParser
- Bio::FlatFileIndex::Indexer::Parser::GenPeptParser
- Bio::FlatFileIndex::Indexer::Parser::MaXMLClusterParser
- Bio::FlatFileIndex::Indexer::Parser::MaXMLSequenceParser
- Bio::FlatFileIndex::Indexer::Parser::PDBChemicalComponentParser
- Bio::FlatFileIndex::Indexer::Parser::SPTRParser
- Bio::FlatFileIndex::Indexer::Parser::TemplateParser
- Bio::FlatFileIndex::NameSpaces
- Bio::FlatFileIndex::Results
- Bio::FlatFileIndex::Template
- Bio::FlatFileIndex::Template::NameSpace
- Bio::GCG
- Bio::GCG::Msf
- Bio::GCG::Seq
- Bio::GFF
- Bio::GFF::GFF2
- Bio::GFF::GFF2::Escape
- Bio::GFF::GFF2::MetaData
- Bio::GFF::GFF2::Record
- Bio::GFF::GFF2::Record::Value
- Bio::GFF::GFF3
- Bio::GFF::GFF3::Escape
- Bio::GFF::GFF3::Record
- Bio::GFF::GFF3::Record::Gap
- Bio::GFF::GFF3::Record::Gap::Code
- Bio::GFF::GFF3::Record::Target
- Bio::GFF::GFF3::RecordBoundary
- Bio::GFF::GFF3::SequenceRegion
- Bio::GFF::Record
- Bio::GO
- Bio::GO::External2go
- Bio::GO::GeneAssociation
- Bio::GO::Ontology
- Bio::GenBank
- Bio::GenBank::Locus
- Bio::GenPept
- Bio::GenPept::Locus
- Bio::Genscan
- Bio::Genscan::Report
- Bio::Genscan::Report::Exon
- Bio::Genscan::Report::Gene
- Bio::HGC
- Bio::HGC::HiGet
- Bio::HMMER
- Bio::HMMER::Report
- Bio::HMMER::Report::Hit
- Bio::HMMER::Report::Hsp
- Bio::Hinv
- Bio::Hinv::Acc2hit
- Bio::Hinv::Common
- Bio::Hinv::Hit2acc
- Bio::Hinv::HitCnt
- Bio::Hinv::HitDefinition
- Bio::Hinv::HitPubmedId
- Bio::Hinv::HitXML
- Bio::Hinv::Hix2hit
- Bio::Hinv::HixCnt
- Bio::Hinv::HixRepresent
- Bio::Hinv::HixXML
- Bio::Hinv::IdSearch
- Bio::Hinv::KeywordSearch
- Bio::Iprscan
- Bio::Iprscan::Report
- Bio::Iprscan::Report::Match
- Bio::KEGG
- Bio::KEGG::API
- Bio::KEGG::BRITE
- Bio::KEGG::COMPOUND
- Bio::KEGG::Common
- Bio::KEGG::Common::DblinksAsHash
- Bio::KEGG::Common::GenesAsHash
- Bio::KEGG::Common::ModulesAsHash
- Bio::KEGG::Common::OrthologsAsHash
- Bio::KEGG::Common::PathwaysAsHash
- Bio::KEGG::Common::References
- Bio::KEGG::Common::StringsAsHash
- Bio::KEGG::DRUG
- Bio::KEGG::ENZYME
- Bio::KEGG::EXPRESSION
- Bio::KEGG::GENES
- Bio::KEGG::GENOME
- Bio::KEGG::GLYCAN
- Bio::KEGG::KGML
- Bio::KEGG::KGML::Entry
- Bio::KEGG::KGML::Graphics
- Bio::KEGG::KGML::Product
- Bio::KEGG::KGML::Reaction
- Bio::KEGG::KGML::Relation
- Bio::KEGG::KGML::Substrate
- Bio::KEGG::KGML::SubstrateProduct
- Bio::KEGG::Keggtab
- Bio::KEGG::Keggtab::DB
- Bio::KEGG::MODULE
- Bio::KEGG::ORTHOLOGY
- Bio::KEGG::PATHWAY
- Bio::KEGG::REACTION
- Bio::KEGG::Taxonomy
- Bio::KEGGDB
- Bio::LITDB
- Bio::Lasergene
- Bio::Location
- Bio::Locations
- Bio::MAFFT
- Bio::MAFFT::Report
- Bio::MEDLINE
- Bio::Map
- Bio::Map::ActsLikeMap
- Bio::Map::ActsLikeMarker
- Bio::Map::Mapping
- Bio::Map::Marker
- Bio::Map::SimpleMap
- Bio::Meme
- Bio::Meme::Mast
- Bio::Meme::Mast::Report
- Bio::Meme::Motif
- Bio::Muscle
- Bio::NBRF
- Bio::NCBI
- Bio::NCBI::REST
- Bio::NCBI::REST::EFetch
- Bio::NCBI::REST::EFetch::Methods
- Bio::NCBI::REST::ESearch
- Bio::NCBI::REST::ESearch::Methods
- Bio::NCBI::SOAP
- Bio::NCBI::SOAP::EFetch
- Bio::NCBI::SOAP::EFetchLite
- Bio::NCBI::SOAP::EUtils
- Bio::NCBI::SOAP::EUtilsLite
- Bio::NCBIDB
- Bio::NCBIDB::Common
- Bio::Newick
- Bio::Newick::Edge
- Bio::Newick::Node
- Bio::Newick::ParseError
- Bio::Nexus
- Bio::Nexus::CharactersBlock
- Bio::Nexus::DataBlock
- Bio::Nexus::DistancesBlock
- Bio::Nexus::GenericBlock
- Bio::Nexus::NexusMatrix
- Bio::Nexus::NexusMatrix::NexusMatrixError
- Bio::Nexus::NexusParseError
- Bio::Nexus::TaxaBlock
- Bio::Nexus::TreesBlock
- Bio::Nexus::Util
- Bio::NucleicAcid
- Bio::NucleicAcid::Data
- Bio::PAML
- Bio::PAML::Baseml
- Bio::PAML::Baseml::Report
- Bio::PAML::Codeml
- Bio::PAML::Codeml::Model
- Bio::PAML::Codeml::PositiveSite
- Bio::PAML::Codeml::PositiveSites
- Bio::PAML::Codeml::Rates
- Bio::PAML::Codeml::Report
- Bio::PAML::Codeml::ReportError
- Bio::PAML::Codeml::ReportSingle
- Bio::PAML::Common
- Bio::PAML::Common::Report
- Bio::PAML::Yn00
- Bio::PAML::Yn00::Report
- Bio::PDB
- Bio::PDB::AtomFinder
- Bio::PDB::Chain
- Bio::PDB::ChainFinder
- Bio::PDB::ChemicalComponent
- Bio::PDB::ChemicalComponent::Record
- Bio::PDB::Coordinate
- Bio::PDB::DataType
- Bio::PDB::DataType::ConstLikeMethod
- Bio::PDB::DataType::Pdb_AChar
- Bio::PDB::DataType::Pdb_Atom
- Bio::PDB::DataType::Pdb_Character
- Bio::PDB::DataType::Pdb_Date
- Bio::PDB::DataType::Pdb_IDcode
- Bio::PDB::DataType::Pdb_Integer
- Bio::PDB::DataType::Pdb_LString
- Bio::PDB::DataType::Pdb_List
- Bio::PDB::DataType::Pdb_Real
- Bio::PDB::DataType::Pdb_Residue_name
- Bio::PDB::DataType::Pdb_SList
- Bio::PDB::DataType::Pdb_Specification_list
- Bio::PDB::DataType::Pdb_String
- Bio::PDB::DataType::Pdb_StringRJ
- Bio::PDB::DataType::Pdb_SymOP
- Bio::PDB::HetatmFinder
- Bio::PDB::Heterogen
- Bio::PDB::HeterogenFinder
- Bio::PDB::Model
- Bio::PDB::ModelFinder
- Bio::PDB::Record
- Bio::PDB::Record::ANISOU
- Bio::PDB::Record::ATOM
- Bio::PDB::Record::HETATM
- Bio::PDB::Record::Jrnl
- Bio::PDB::Record::Remark1
- Bio::PDB::Record::Remark2
- Bio::PDB::Residue
- Bio::PDB::ResidueFinder
- Bio::PDB::Utils
- Bio::PROSITE
- Bio::PSORT
- Bio::PSORT::CGIDriver
- Bio::PSORT::IPSORT
- Bio::PSORT::PSORT1
- Bio::PSORT::PSORT1::Remote
- Bio::PSORT::PSORT1::Report
- Bio::PSORT::PSORT2
- Bio::PSORT::PSORT2::Remote
- Bio::PSORT::PSORT2::Report
- Bio::PSORT::PSORTB
- Bio::PSORT::WoLF_PSORT
- Bio::PTS1
- Bio::PTS1::Report
- Bio::Pathway
- Bio::Phylip
- Bio::Phylip::DistanceMatrix
- Bio::Phylip::PhylipFormat
- Bio::PhyloXML
- Bio::PhyloXML::Accession
- Bio::PhyloXML::Annotation
- Bio::PhyloXML::BinaryCharacters
- Bio::PhyloXML::BranchColor
- Bio::PhyloXML::CladeRelation
- Bio::PhyloXML::Confidence
- Bio::PhyloXML::Date
- Bio::PhyloXML::Distribution
- Bio::PhyloXML::DomainArchitecture
- Bio::PhyloXML::Events
- Bio::PhyloXML::Id
- Bio::PhyloXML::Node
- Bio::PhyloXML::Other
- Bio::PhyloXML::Parser
- Bio::PhyloXML::Point
- Bio::PhyloXML::Polygon
- Bio::PhyloXML::Property
- Bio::PhyloXML::ProteinDomain
- Bio::PhyloXML::Reference
- Bio::PhyloXML::Sequence
- Bio::PhyloXML::SequenceRelation
- Bio::PhyloXML::Taxonomy
- Bio::PhyloXML::Tree
- Bio::PhyloXML::Uri
- Bio::PhyloXML::Writer
- Bio::Probcons
- Bio::PubMed
- Bio::REBASE
- Bio::RefSeq
- Bio::Reference
- Bio::References
- Bio::Registry
- Bio::Registry::DB
- Bio::RestrictionEnzyme
- Bio::RestrictionEnzyme::Analysis
- Bio::RestrictionEnzyme::CutSymbol
- Bio::RestrictionEnzyme::CutSymbol::CutSymbol__
- Bio::RestrictionEnzyme::DenseIntArray
- Bio::RestrictionEnzyme::DoubleStranded
- Bio::RestrictionEnzyme::DoubleStranded::AlignedStrands
- Bio::RestrictionEnzyme::DoubleStranded::CutLocationPair
- Bio::RestrictionEnzyme::DoubleStranded::CutLocationPairInEnzymeNotation
- Bio::RestrictionEnzyme::DoubleStranded::CutLocations
- Bio::RestrictionEnzyme::DoubleStranded::CutLocationsInEnzymeNotation
- Bio::RestrictionEnzyme::DoubleStranded::EnzymeAction
- Bio::RestrictionEnzyme::Fragments
- Bio::RestrictionEnzyme::Range
- Bio::RestrictionEnzyme::Range::CutRange
- Bio::RestrictionEnzyme::Range::CutRanges
- Bio::RestrictionEnzyme::Range::HorizontalCutRange
- Bio::RestrictionEnzyme::Range::SequenceRange
- Bio::RestrictionEnzyme::Range::SequenceRange::CalculatedCuts
- Bio::RestrictionEnzyme::Range::SequenceRange::Fragment
- Bio::RestrictionEnzyme::Range::SequenceRange::Fragments
- Bio::RestrictionEnzyme::Range::VerticalCutRange
- Bio::RestrictionEnzyme::SingleStrand
- Bio::RestrictionEnzyme::SingleStrand::CutLocationsInEnzymeNotation
- Bio::RestrictionEnzyme::SingleStrandComplement
- Bio::RestrictionEnzyme::SortedNumArray
- Bio::RestrictionEnzyme::StringFormatting
- Bio::SOAPWSDL
- Bio::SOFT
- Bio::SOSUI
- Bio::SOSUI::Report
- Bio::SOSUI::Report::TMH
- Bio::SPTR
- Bio::SQL
- Bio::SQL::Biodatabase
- Bio::SQL::Bioentry
- Bio::SQL::BioentryDbxref
- Bio::SQL::BioentryPath
- Bio::SQL::BioentryQualifierValue
- Bio::SQL::BioentryReference
- Bio::SQL::BioentryRelationship
- Bio::SQL::Biosequence
- Bio::SQL::Comment
- Bio::SQL::Dbxref
- Bio::SQL::DbxrefQualifierValue
- Bio::SQL::DummyBase
- Bio::SQL::Location
- Bio::SQL::LocationQualifierValue
- Bio::SQL::Ontology
- Bio::SQL::Reference
- Bio::SQL::Seqfeature
- Bio::SQL::SeqfeatureDbxref
- Bio::SQL::SeqfeaturePath
- Bio::SQL::SeqfeatureQualifierValue
- Bio::SQL::SeqfeatureRelationship
- Bio::SQL::Sequence
- Bio::SQL::Taxon
- Bio::SQL::TaxonName
- Bio::SQL::Term
- Bio::SQL::TermDbxref
- Bio::SQL::TermPath
- Bio::SQL::TermRelationship
- Bio::SQL::TermRelationshipTerm
- Bio::SQL::TermSynonym
- Bio::SangerChromatogram
- Bio::Scf
- Bio::Sequence
- Bio::Sequence::AA
- Bio::Sequence::Adapter
- Bio::Sequence::Adapter::BioSQL
- Bio::Sequence::Adapter::EMBL
- Bio::Sequence::Adapter::FastaFormat
- Bio::Sequence::Adapter::FastaNumericFormat
- Bio::Sequence::Adapter::Fastq
- Bio::Sequence::Adapter::GenBank
- Bio::Sequence::Adapter::SangerChromatogram
- Bio::Sequence::Common
- Bio::Sequence::DBLink
- Bio::Sequence::Format
- Bio::Sequence::Format::AminoFormatter
- Bio::Sequence::Format::Formatter
- Bio::Sequence::Format::Formatter::Fasta
- Bio::Sequence::Format::Formatter::Fasta_ncbi
- Bio::Sequence::Format::Formatter::Fasta_numeric
- Bio::Sequence::Format::Formatter::Fastq
- Bio::Sequence::Format::Formatter::Fastq_illumina
- Bio::Sequence::Format::Formatter::Fastq_sanger
- Bio::Sequence::Format::Formatter::Fastq_solexa
- Bio::Sequence::Format::Formatter::Qual
- Bio::Sequence::Format::Formatter::Raw
- Bio::Sequence::Format::FormatterBase
- Bio::Sequence::Format::INSDFeatureHelper
- Bio::Sequence::Format::NucFormatter
- Bio::Sequence::Format::NucFormatter::Embl
- Bio::Sequence::Format::NucFormatter::Genbank
- Bio::Sequence::NA
- Bio::Sequence::NA::MidiTrack
- Bio::Sequence::QualityScore
- Bio::Sequence::QualityScore::Converter
- Bio::Sequence::QualityScore::Phred
- Bio::Sequence::QualityScore::Solexa
- Bio::Sequence::SequenceMasker
- Bio::Shell
- Bio::Shell::ColoredCodonTable
- Bio::Shell::Core
- Bio::Shell::Demo
- Bio::Shell::Ghost
- Bio::Shell::Irb
- Bio::Shell::Private
- Bio::Shell::Script
- Bio::Shell::Setup
- Bio::Shell::Web
- Bio::Shell::Web::Results
- Bio::SiRNA
- Bio::SiRNA::Pair
- Bio::SiRNA::ShRNA
- Bio::Sim4
- Bio::Sim4::Report
- Bio::Sim4::Report::Hit
- Bio::Sim4::Report::Segment
- Bio::Sim4::Report::SegmentPair
- Bio::Sim4::Report::SeqDesc
- Bio::Spidey
- Bio::Spidey::Report
- Bio::Spidey::Report::Hit
- Bio::Spidey::Report::Segment
- Bio::Spidey::Report::SegmentPair
- Bio::Spidey::Report::SeqDesc
- Bio::SwissProt
- Bio::TMHMM
- Bio::TMHMM::Report
- Bio::TMHMM::TMH
- Bio::TRANSFAC
- Bio::TRANSFAC::CELL
- Bio::TRANSFAC::CLASS
- Bio::TRANSFAC::FACTOR
- Bio::TRANSFAC::GENE
- Bio::TRANSFAC::MATRIX
- Bio::TRANSFAC::SITE
- Bio::TargetP
- Bio::TargetP::Report
- Bio::Taxonomy
- Bio::Tcoffee
- Bio::Tcoffee::DEFAULT_PARSER
- Bio::TogoWS
- Bio::TogoWS::AccessWait
- Bio::TogoWS::REST
- Bio::TrEMBL
- Bio::Tree
- Bio::Tree::Edge
- Bio::Tree::NoPathError
- Bio::Tree::Node
- Bio::UniProt
- BiorubyController
- BiorubyGenerator
- BiorubyHelper
- Hash
- Object
- String

No matching classes.

# Bio::Locations

## Description

The Bio::Locations class is a container for Bio::Location objects: creating a Bio::Locations object (based on a GenBank style position string) will spawn an array of Bio::Location objects.

## Usage

     locations = Bio::Locations.new('join(complement(500..550), 600..625)')
     locations.each do |loc|
       puts "class = " + loc.class.to_s
       puts "range = #{loc.from}..#{loc.to} (strand = #{loc.strand})"
     end
     # Output would be:
     #   class = Bio::Location
     #   range = 500..550 (strand = -1)
     #   class = Bio::Location
     #   range = 600..625 (strand = 1)

    # For the following three location strings, print the span and range
    ['one-of(898,900)..983',
     'one-of(5971..6308,5971..6309)',
     '8050..one-of(10731,10758,10905,11242)'].each do |loc|
        location = Bio::Locations.new(loc)
        puts location.span
        puts location.range
    end

### GenBank location descriptor classification

#### Definition of the position notation of the GenBank location format

According to the GenBank manual 'gbrel.txt', position notations were classified into 10 patterns - (A) to (J).

    3.4.12.2 Feature Location

      The second column of the feature descriptor line designates the
    location of the feature in the sequence. The location descriptor
    begins at position 22. Several conventions are used to indicate
    sequence location.

      Base numbers in location descriptors refer to numbering in the entry,
    which is not necessarily the same as the numbering scheme used in the
    published report. The first base in the presented sequence is numbered
    base 1. Sequences are presented in the 5 to 3 direction.

    Location descriptors can be one of the following:

    (A) 1. A single base;

    (B) 2. A contiguous span of bases;

    (C) 3. A site between two bases;

    (D) 4. A single base chosen from a range of bases;

    (E) 5. A single base chosen from among two or more specified bases;

    (F) 6. A joining of sequence spans;

    (G) 7. A reference to an entry other than the one to which the feature
         belongs (i.e., a remote entry), followed by a location descriptor
         referring to the remote sequence;

    (H) 8. A literal sequence (a string of bases enclosed in quotation marks).

#### Description commented with pattern IDs.

    (C)   A site between two residues, such as an endonuclease cleavage site, is
        indicated by listing the two bases separated by a carat (e.g., 23^24).

    (D)   A single residue chosen from a range of residues is indicated by the
        number of the first and last bases in the range separated by a single
        period (e.g., 23.79). The symbols < and > indicate that the end point
    (I) of the range is beyond the specified base number.

    (B)   A contiguous span of bases is indicated by the number of the first and
        last bases in the range separated by two periods (e.g., 23..79). The
    (I) symbols < and > indicate that the end point of the range is beyond the
        specified base number. Starting and ending positions can be indicated
        by base number or by one of the operators described below.

          Operators are prefixes that specify what must be done to the indicated
        sequence to locate the feature. The following are the operators
        available, along with their most common format and a description.

    (J) complement (location): The feature is complementary to the location
        indicated. Complementary strands are read 5 to 3.

    (F) join (location, location, .. location): The indicated elements should
        be placed end to end to form one contiguous sequence.

    (F) order (location, location, .. location): The elements are found in the
        specified order in the 5 to 3 direction, but nothing is implied about
        the rationality of joining them.

    (F) group (location, location, .. location): The elements are related and
        should be grouped together, but no order is implied.

    (E) one-of (location, location, .. location): The element can be any one,
      but only one, of the items listed.

### Reduction strategy of the position notations

- (A) Location n

- (B) Location n..m

- (C) Location n^m

- (D) (n.m) => Location n

- (E)

  - one-of(n,m,..) => Location n

  - one-of(n..m,..) => Location n..m

- (F)

  - order(loc,loc,..) => join(loc, loc,..)

  - group(loc,loc,..) => join(loc, loc,..)

  - join(loc,loc,..) => Sequence

- (G) ID:loc => Location with ID

- (H) "atgc" => Location only with Sequence

- (I)

  - <n => Location n with lt flag

  - >n => Location n with gt flag

  - <n..m => Location n..m with lt flag

  - n..>m => Location n..m with gt flag

  - <n..>m => Location n..m with lt, gt flag

- (J) complement(loc) => Sequence

- (K) replace(loc, str) => Location with replacement Sequence

### Attributes

locations[RW]

(Array) An Array of Bio::Location objects

operator[RW]

(Symbol or nil) Operator. nil (means :join), :order, or :group (obsolete).

### Public Class Methods

new(position) click to toggle source

Parses a GenBank style position string and returns a Bio::Locations object, which contains a list of Bio::Location objects.

    locations = Bio::Locations.new('join(complement(500..550), 600..625)')

Arguments:

- (required) str: GenBank style position string

Returns | Bio::Locations object

    # File lib/bio/location.rb, line 346
    def initialize(position)
      @operator = nil
      if position.is_a? Array
        @locations = position
      else
        position   = gbl_cleanup(position)        # preprocessing
        @locations = gbl_pos2loc(position)        # create an Array of Bio::Location objects
      end
    end

### Public Instance Methods

==(other) click to toggle source

If other is equal with the self, returns true. Otherwise, returns false.

Arguments:

- (required) other: any object

Returns | true or false

    # File lib/bio/location.rb, line 381
    def ==(other)
      return true if super(other)
      return false unless other.instance_of?(self.class)
      if self.locations == other.locations and
          self.operator == other.operator then
        true
      else
        false
      end
    end

[](n) click to toggle source

Returns nth Bio::Location object.

    # File lib/bio/location.rb, line 400
    def [](n)
      @locations[n]
    end

absolute(n, type = nil) click to toggle source

Converts relative position in the locus to position in the whole of the DNA sequence.

This method can for example be used to relate positions in a DNA-sequence with those in RNA. In this use, the optional ':aa'-flag returns the position of the associated amino-acid rather than the nucleotide.

    loc = Bio::Locations.new('complement(12838..13533)')
    puts loc.absolute(10)          # => 13524
    puts loc.absolute(10, :aa)     # => 13506

Arguments:

- (required) position: nucleotide position within locus

- :aa: flag to be used if position is a aminoacid position rather than a nucleotide position

Returns | position within the whole of the sequence

    # File lib/bio/location.rb, line 490
    def absolute(n, type = nil)
      case type
      when :location
        ;
      when :aa
        n = (n - 1) * 3 + 1
        rel2abs(n)
      else
        rel2abs(n)
      end
    end

each() click to toggle source

Iterates on each Bio::Location object.

    # File lib/bio/location.rb, line 393
    def each
      @locations.each do |x|
        yield(x)
      end
    end

equals?(other) click to toggle source

Evaluate equality of Bio::Locations object.

    # File lib/bio/location.rb, line 364
    def equals?(other)
      if ! other.kind_of?(Bio::Locations)
        return nil
      end
      if self.sort == other.sort
        return true
      else
        return false
      end
    end

first() click to toggle source

Returns first Bio::Location object.

    # File lib/bio/location.rb, line 405
    def first
      @locations.first
    end

last() click to toggle source

Returns last Bio::Location object.

    # File lib/bio/location.rb, line 410
    def last
      @locations.last
    end

length() click to toggle source

Returns a length of the spliced RNA.

    # File lib/bio/location.rb, line 429
    def length
      len = 0
      @locations.each do |x|
        if x.sequence
          len += x.sequence.size
        else
          len += (x.to - x.from + 1)
        end
      end
      len
    end

Also aliased as: size
range() click to toggle source

Similar to span, but returns a Range object min..max

    # File lib/bio/location.rb, line 423
    def range
      min, max = span
      min..max
    end

relative(n, type = nil) click to toggle source

Converts absolute position in the whole of the DNA sequence to relative position in the locus.

This method can for example be used to relate positions in a DNA-sequence with those in RNA. In this use, the optional ':aa'-flag returns the position of the associated amino-acid rather than the nucleotide.

    loc = Bio::Locations.new('complement(12838..13533)')
    puts loc.relative(13524)        # => 10
    puts loc.relative(13506, :aa)   # => 3

Arguments:

- (required) position: nucleotide position within whole of the sequence

- :aa: flag that lets method return position in aminoacid coordinates

Returns | position within the location

    # File lib/bio/location.rb, line 458
    def relative(n, type = nil)
      case type
      when :location
        ;
      when :aa
        if n = abs2rel(n)
          (n - 1) / 3 + 1
        else
          nil
        end
      else
        abs2rel(n)
      end
    end

size() click to toggle source
Alias for: length
span() click to toggle source

Returns an Array containing overall min and max position [min, max] of this Bio::Locations object.

    # File lib/bio/location.rb, line 416
    def span
      span_min = @locations.min { |a,b| a.from <=> b.from }
      span_max = @locations.max { |a,b| a.to   <=> b.to   }
      return span_min.from, span_max.to
    end

to_s() click to toggle source

String representation.

Note: In some cases, it fails to detect whether "complement(join(...))" or "join(complement(..))", and whether "complement(order(...))" or "order(complement(..))".

Returns | String

    # File lib/bio/location.rb, line 511
    def to_s
      return '' if @locations.empty?
      complement_join = false
      locs = @locations
      if locs.size >= 2 and locs.inject(true) do |flag, loc|
          # check if each location is complement
          (flag && (loc.strand == -1) && !loc.xref_id)
        end and locs.inject(locs[0].from) do |pos, loc|
          if pos then
            (pos >= loc.from) ? loc.from : false
          else
            false
          end
        end then
        locs = locs.reverse
        complement_join = true
      end
      locs = locs.collect do |loc|
        lt = loc.lt ? '<' : ''
        gt = loc.gt ? '>' : ''
        str = if loc.from == loc.to then
                "#{lt}#{gt}#{loc.from.to_i}"
              elsif loc.carat then
                "#{lt}#{loc.from.to_i}^#{gt}#{loc.to.to_i}"
              else
                "#{lt}#{loc.from.to_i}..#{gt}#{loc.to.to_i}"
              end
        if loc.xref_id and !loc.xref_id.empty? then
          str = "#{loc.xref_id}:#{str}"
        end
        if loc.strand == -1 and !complement_join then
          str = "complement(#{str})"
        end
        if loc.sequence then
          str = "replace(#{str},\"#{loc.sequence}\")"
        end
        str
      end
      if locs.size >= 2 then
        op = (self.operator || 'join').to_s
        result = "#{op}(#{locs.join(',')})"
      else
        result = locs[0]
      end
      if complement_join then
        result = "complement(#{result})"
      end
      result
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.