### Home Classes Methods

### In Files

- lib/bio/sequence/na.rb
- lib/bio/sequence/compat.rb
- lib/bio/shell/plugin/midi.rb

### Parent

String

### Namespace

- CLASS Bio::Sequence::NA::MidiTrack

### Methods

- ::new
- ::randomize
- #at_content
- #at_skew
- #codon_usage
- #complement
- #complement!
- #cut_with_enzyme
- #cut_with_enzymes
- #dna
- #dna!
- #forward_complement
- #forward_complement!
- #gc_content
- #gc_percent
- #gc_skew
- #illegal_bases
- #molecular_weight
- #names
- #reverse_complement
- #reverse_complement!
- #rna
- #rna!
- #rna?
- #to_midi
- #to_re
- #translate

### Included Modules

- Bio::Sequence::Common

### Files

- KNOWN_ISSUES.rdoc
- 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::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::Muscle::DEFAULT_PARSER
- 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::Probcons::DEFAULT_PARSER
- 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::Sequence::NA

# DESCRIPTION

Bio::Sequence::NA represents a bare Nucleic Acid sequence in bioruby.

# USAGE

    # Create a Nucleic Acid sequence.
    dna = Bio::Sequence.auto('atgcatgcATGCATGCAAAA')
    rna = Bio::Sequence.auto('augcaugcaugcaugcaaaa')

    # What are the names of all the bases?
    puts dna.names
    puts rna.names

    # What is the GC percentage?
    puts dna.gc_percent
    puts rna.gc_percent

    # What is the molecular weight?
    puts dna.molecular_weight
    puts rna.molecular_weight

    # What is the reverse complement?
    puts dna.reverse_complement
    puts dna.complement

    # Is this sequence DNA or RNA?
    puts dna.rna?

    # Translate my sequence (see method docs for many options)
    puts dna.translate
    puts rna.translate

### Public Class Methods

new(str) click to toggle source

Generate an nucleic acid sequence object from a string.

    s = Bio::Sequence::NA.new("aagcttggaccgttgaagt")

or maybe (if you have an nucleic acid sequence in a file)

    s = Bio::Sequence:NA.new(File.open('dna.txt').read)

Nucleic Acid sequences are always all lowercase in bioruby

    s = Bio::Sequence::NA.new("AAGcTtGG")
    puts s                                  #=> "aagcttgg"

Whitespace is stripped from the sequence

    seq = Bio::Sequence::NA.new("atg\nggg\ttt\r  gc")
    puts s                                  #=> "atggggttgc"

Arguments:

- (required) str: String

Returns | Bio::Sequence::NA object

    # File lib/bio/sequence/na.rb, line 75
    def initialize(str)
      super
      self.downcase!
      self.tr!(" \t\n\r",'')
    end

randomize(*arg, &block) click to toggle source

Generate a new random sequence with the given frequency of bases. The sequence length is determined by their cumulative sum. (See also Bio::Sequence::Common#randomize which creates a new randomized sequence object using the base composition of an existing sequence instance).

    counts = {'a'=>1,'c'=>2,'g'=>3,'t'=>4}
    puts Bio::Sequence::NA.randomize(counts)  #=> "ggcttgttac" (for example)

You may also feed the output of randomize into a block

    actual_counts = {'a'=>0, 'c'=>0, 'g'=>0, 't'=>0}
    Bio::Sequence::NA.randomize(counts) {|x| actual_counts[x] += 1}
    actual_counts                     #=> {"a"=>1, "c"=>2, "g"=>3, "t"=>4}

Arguments:

- (optional) hash: Hash object

Returns | Bio::Sequence::NA object

    # File lib/bio/sequence/compat.rb, line 82
    def self.randomize(*arg, &block)
      self.new('').randomize(*arg, &block)
    end

### Public Instance Methods

at_content() click to toggle source

Calculate the ratio of AT / ATGC bases. U is regarded as T.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.at_content                       #=> 0.444444444444444

Returns | Float

    # File lib/bio/sequence/na.rb, line 317
    def at_content
      count = self.composition
      at = count['a'] + count['t'] + count['u']
      gc = count['g'] + count['c']
      return 0.0 if at + gc == 0
      return at.quo(at + gc)
    end

at_skew() click to toggle source

Calculate the ratio of (A - T) / (A + T) bases. U is regarded as T.

    s = Bio::Sequence::NA.new('atgttgttgttc')
    puts s.at_skew                          #=> -0.75

Returns | Float

    # File lib/bio/sequence/na.rb, line 345
    def at_skew
      count = self.composition
      a = count['a']
      t = count['t'] + count['u']
      return 0.0 if a + t == 0
      return (a - t).quo(a + t)
    end

codon_usage() click to toggle source

Returns counts of each codon in the sequence in a hash.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.codon_usage                #=> {"gcg"=>1, "tga"=>1, "atg"=>1}

This method does not validate codons! Any three letter group is a 'codon'. So,

    s = Bio::Sequence::NA.new('atggNNtga')
    puts s.codon_usage                #=> {"tga"=>1, "gnn"=>1, "atg"=>1}

    seq = Bio::Sequence::NA.new('atgg--tga')
    puts s.codon_usage                #=> {"tga"=>1, "g--"=>1, "atg"=>1}

Also, there is no option to work in any frame other than the first.

Returns | Hash object

    # File lib/bio/sequence/na.rb, line 273
    def codon_usage
      hash = Hash.new(0)
      self.window_search(3, 3) do |codon|
        hash[codon] += 1
      end
      return hash
    end

complement() click to toggle source

Alias for Bio::Sequence::NA#reverse_complement

Alias for: reverse_complement
complement!() click to toggle source

Alias for Bio::Sequence::NA#reverse_complement!

Alias for: reverse_complement!
cut_with_enzyme(*args) click to toggle source

Example:

    seq = Bio::Sequence::NA.new('gaattc')
    cuts = seq.cut_with_enzyme('EcoRI')

or

    seq = Bio::Sequence::NA.new('gaattc')
    cuts = seq.cut_with_enzyme('g^aattc')

See Bio::RestrictionEnzyme::Analysis.cut

    # File lib/bio/sequence/na.rb, line 479
    def cut_with_enzyme(*args)
      Bio::RestrictionEnzyme::Analysis.cut(self, *args)
    end

Also aliased as: cut_with_enzymes
cut_with_enzymes(*args) click to toggle source
Alias for: cut_with_enzyme
dna() click to toggle source

Returns a new sequence object with any 'u' bases changed to 't'. The original sequence is not modified.

    s = Bio::Sequence::NA.new('augc')
    puts s.dna                              #=> 'atgc'
    puts s                                  #=> 'augc'

Returns | new Bio::Sequence::NA object

    # File lib/bio/sequence/na.rb, line 423
    def dna
      self.tr('u', 't')
    end

dna!() click to toggle source

Changes any 'u' bases in the original sequence to 't'. The original sequence is modified.

    s = Bio::Sequence::NA.new('augc')
    puts s.dna!                             #=> 'atgc'
    puts s                                  #=> 'atgc'

Returns | current Bio::Sequence::NA object (modified)

    # File lib/bio/sequence/na.rb, line 435
    def dna!
      self.tr!('u', 't')
    end

forward_complement() click to toggle source

Returns a new complementary sequence object (without reversing). The original sequence object is not modified.

    s = Bio::Sequence::NA.new('atgc')
    puts s.forward_complement               #=> 'tacg'
    puts s                                  #=> 'atgc'

Returns | new Bio::Sequence::NA object

    # File lib/bio/sequence/na.rb, line 100
    def forward_complement
      s = self.class.new(self)
      s.forward_complement!
      s
    end

forward_complement!() click to toggle source

Converts the current sequence into its complement (without reversing). The original sequence object is modified.

    seq = Bio::Sequence::NA.new('atgc')
    puts s.forward_complement!              #=> 'tacg'
    puts s                                  #=> 'tacg'

Returns | current Bio::Sequence::NA object (modified)

    # File lib/bio/sequence/na.rb, line 114
    def forward_complement!
      if self.rna?
        self.tr!('augcrymkdhvbswn', 'uacgyrkmhdbvswn')
      else
        self.tr!('atgcrymkdhvbswn', 'tacgyrkmhdbvswn')
      end
      self
    end

gc_content() click to toggle source

Calculate the ratio of GC / ATGC bases. U is regarded as T.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.gc_content                       #=> 0.555555555555556

Returns | Float

    # File lib/bio/sequence/na.rb, line 303
    def gc_content
      count = self.composition
      at = count['a'] + count['t'] + count['u']
      gc = count['g'] + count['c']
      return 0.0 if at + gc == 0
      return gc.quo(at + gc)
    end

gc_percent() click to toggle source

Calculate the ratio of GC / ATGC bases as a percentage rounded to the nearest whole number. U is regarded as T.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.gc_percent                       #=> 55

Returns | Fixnum

    # File lib/bio/sequence/na.rb, line 288
    def gc_percent
      count = self.composition
      at = count['a'] + count['t'] + count['u']
      gc = count['g'] + count['c']
      return 0 if at + gc == 0
      gc = 100 * gc / (at + gc)
      return gc
    end

gc_skew() click to toggle source

Calculate the ratio of (G - C) / (G + C) bases.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.gc_skew                          #=> 0.6

Returns | Float

    # File lib/bio/sequence/na.rb, line 331
    def gc_skew
      count = self.composition
      g = count['g']
      c = count['c']
      return 0.0 if g + c == 0
      return (g - c).quo(g + c)
    end

illegal_bases() click to toggle source

Returns an alphabetically sorted array of any non-standard bases (other than 'atgcu').

    s = Bio::Sequence::NA.new('atgStgQccR')
    puts s.illegal_bases                    #=> ["q", "r", "s"]

Returns | Array object

    # File lib/bio/sequence/na.rb, line 360
    def illegal_bases
      self.scan(/[^atgcu]/).sort.uniq
    end

molecular_weight() click to toggle source

Estimate molecular weight (using the values from BioPerl's SeqStats.pm module).

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.molecular_weight                 #=> 2841.00708

RNA and DNA do not have the same molecular weights,

    s = Bio::Sequence::NA.new('auggcguga')
    puts s.molecular_weight                 #=> 2956.94708

Returns | Float object

    # File lib/bio/sequence/na.rb, line 376
    def molecular_weight
      if self.rna?
        Bio::NucleicAcid.weight(self, true)
      else
        Bio::NucleicAcid.weight(self)
      end
    end

names() click to toggle source

Generate the list of the names of each nucleotide along with the sequence (full name). Names used in bioruby are found in the Bio::AminoAcid::NAMES hash.

    s = Bio::Sequence::NA.new('atg')
    puts s.names                    #=> ["Adenine", "Thymine", "Guanine"]

Returns | Array object

    # File lib/bio/sequence/na.rb, line 407
    def names
      array = []
      self.each_byte do |x|
        array.push(Bio::NucleicAcid.names[x.chr.upcase])
      end
      return array
    end

reverse_complement() click to toggle source

Returns a new sequence object with the reverse complement sequence to the original. The original sequence is not modified.

    s = Bio::Sequence::NA.new('atgc')
    puts s.reverse_complement               #=> 'gcat'
    puts s                                  #=> 'atgc'

Returns | new Bio::Sequence::NA object

    # File lib/bio/sequence/na.rb, line 131
    def reverse_complement
      s = self.class.new(self)
      s.reverse_complement!
      s
    end

Also aliased as: complement
reverse_complement!() click to toggle source

Converts the original sequence into its reverse complement. The original sequence is modified.

    s = Bio::Sequence::NA.new('atgc')
    puts s.reverse_complement               #=> 'gcat'
    puts s                                  #=> 'gcat'

Returns | current Bio::Sequence::NA object (modified)

    # File lib/bio/sequence/na.rb, line 145
    def reverse_complement!
      self.reverse!
      self.forward_complement!
    end

Also aliased as: complement!
rna() click to toggle source

Returns a new sequence object with any 't' bases changed to 'u'. The original sequence is not modified.

    s = Bio::Sequence::NA.new('atgc')
    puts s.dna                              #=> 'augc'
    puts s                                  #=> 'atgc'

Returns | new Bio::Sequence::NA object

    # File lib/bio/sequence/na.rb, line 447
    def rna
      self.tr('t', 'u')
    end

rna!() click to toggle source

Changes any 't' bases in the original sequence to 'u'. The original sequence is modified.

    s = Bio::Sequence::NA.new('atgc')
    puts s.dna!                             #=> 'augc'
    puts s                                  #=> 'augc'

Returns | current Bio::Sequence::NA object (modified)

    # File lib/bio/sequence/na.rb, line 459
    def rna!
      self.tr!('t', 'u')
    end

to_midi(style = {}, drum = true) click to toggle source

style:

    Hash of :tempo, :scale, :tones

scale:

    C  C# D  D# E  F  F# G  G# A  A#  B
    0  1  2  3  4  5  6  7  8  9  10  11

tones:

    Hash of :prog, :base, :range -- tone, vol? or len?, octaves

drum:

    true (with rhythm part), false (without rhythm part)

    # File lib/bio/shell/plugin/midi.rb, line 351
    def to_midi(style = {}, drum = true)
      default = MidiTrack::Styles["Ichinose"]
      if style.is_a?(String)
        style = MidiTrack::Styles[style] || default
      end
      tempo = style[:tempo] || default[:tempo]
      scale = style[:scale] || default[:scale]
      tones = style[:tones] || default[:tones]

      track = []

      tones.each_with_index do |tone, i|
        ch = i
        ch += 1 if i >= 9         # skip rythm track
        track.push MidiTrack.new(ch, tone[:prog], tone[:base], tone[:range], scale)
      end

      if drum
        rhythm = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
        track.push(MidiTrack.new(9, 0, 35, 2, rhythm))
      end

      cur = 0
      window_search(4) do |s|
        track[cur % track.length].push(s)
        cur += 1
      end

      track.each do |t|
        t.push_silent(12)
      end

      ans = track[0].header(track.length, tempo)
      track.each do |t|
        ans += t.encode
      end
      return ans
    end

to_re() click to toggle source

Create a ruby regular expression instance (Regexp)

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.to_re                            #=> /atggcgtga/

Returns | Regexp object

    # File lib/bio/sequence/na.rb, line 391
    def to_re
      if self.rna?
        Bio::NucleicAcid.to_re(self.dna, true)
      else
        Bio::NucleicAcid.to_re(self)
      end
    end

translate(frame = 1, table = 1, unknown = 'X') click to toggle source

Translate into an amino acid sequence.

    s = Bio::Sequence::NA.new('atggcgtga')
    puts s.translate                        #=> "MA*"

By default, translate starts in reading frame position 1, but you can start in either 2 or 3 as well,

    puts s.translate(2)                     #=> "WR"
    puts s.translate(3)                     #=> "GV"

You may also translate the reverse complement in one step by using frame values of -1, -2, and -3 (or 4, 5, and 6)

    puts s.translate(-1)                    #=> "SRH"
    puts s.translate(4)                     #=> "SRH"
    puts s.reverse_complement.translate(1)  #=> "SRH"

The default codon table in the translate function is the Standard Eukaryotic codon table. The translate function takes either a number or a Bio::CodonTable object for its table argument. The available tables are (NCBI):

    1. "Standard (Eukaryote)"
    2. "Vertebrate Mitochondrial"
    3. "Yeast Mitochondorial"
    4. "Mold, Protozoan, Coelenterate Mitochondrial and Mycoplasma/Spiroplasma"
    5. "Invertebrate Mitochondrial"
    6. "Ciliate Macronuclear and Dasycladacean"
    9. "Echinoderm Mitochondrial"
    10. "Euplotid Nuclear"
    11. "Bacteria"
    12. "Alternative Yeast Nuclear"
    13. "Ascidian Mitochondrial"
    14. "Flatworm Mitochondrial"
    15. "Blepharisma Macronuclear"
    16. "Chlorophycean Mitochondrial"
    21. "Trematode Mitochondrial"
    22. "Scenedesmus obliquus mitochondrial"
    23. "Thraustochytrium Mitochondrial"

If you are using anything other than the default table, you must specify frame in the translate method call,

    puts s.translate                #=> "MA*"  (using defaults)
    puts s.translate(1,1)           #=> "MA*"  (same as above, but explicit)
    puts s.translate(1,2)           #=> "MAW"  (different codon table)

and using a Bio::CodonTable instance in the translate method call,

    mt_table = Bio::CodonTable[2]
    puts s.translate(1, mt_table)           #=> "MAW"

By default, any invalid or unknown codons (as could happen if the sequence contains ambiguities) will be represented by 'X' in the translated sequence. You may change this to any character of your choice.

    s = Bio::Sequence::NA.new('atgcNNtga')
    puts s.translate                        #=> "MX*"
    puts s.translate(1,1,'9')               #=> "M9*"

The translate method considers gaps to be unknown characters and treats them as such (i.e. does not collapse sequences prior to translation), so

    s = Bio::Sequence::NA.new('atgc--tga')
    puts s.translate                        #=> "MX*"

Arguments:

- (optional) frame: one of 1,2,3,4,5,6,-1,-2,-3 (default 1)

- (optional) table: Fixnum in range 1,23 or Bio::CodonTable object (default 1)

- (optional) unknown: Character (default 'X')

Returns | Bio::Sequence::AA object

    # File lib/bio/sequence/na.rb, line 232
    def translate(frame = 1, table = 1, unknown = 'X')
      if table.is_a?(Bio::CodonTable)
        ct = table
      else
        ct = Bio::CodonTable[table]
      end
      naseq = self.dna
      case frame
      when 1, 2, 3
        from = frame - 1
      when 4, 5, 6
        from = frame - 4
        naseq.complement!
      when -1, -2, -3
        from = -1 - frame
        naseq.complement!
      else
        from = 0
      end
      nalen = naseq.length - from
      nalen -= nalen % 3
      aaseq = naseq[from, nalen].gsub(/.{3}/) {|codon| ct[codon] or unknown}
      return Bio::Sequence::AA.new(aaseq)
    end

### Protected Instance Methods

rna?() click to toggle source

    # File lib/bio/sequence/na.rb, line 463
    def rna?
      self.index('u')
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.