NAME
Bio::Assembly::IO::tigr - Driver to read and write assembly files in the TIGR Assembler v2 default format.
SYNOPSIS
# Building an input streamuse Bio::Assembly::IO;# Assembly loading methodsmy $asmio = Bio::Assembly::IO->new( -file => 'SGC0-424.tasm',-format => 'tigr' );my $scaffold = $asmio->next_assembly;# Do some things on contigs...# Assembly writing methodsmy $outasm = Bio::Assembly::IO->new( -file => ">SGC0-modified.tasm",-format => 'tigr' );$outasm->write_assembly( -scaffold => $assembly,-singlets => 1 );
DESCRIPTION
This package loads and writes assembly information in/from files in the default TIGR Assembler v2 format. The files are lassie-formatted and often have the .tasm extension. This module was written to be used as a driver module for Bio::Assembly::IO input/output.
Implementation
Assemblies are loaded into Bio::Assembly::Scaffold objects composed of Bio::Assembly::Contig and Bio::Assembly::Singlet objects. Since aligned reads and contig gapped consensus can be obtained in the tasm files, only aligned/gapped sequences are added to the different BioPerl objects.
Additional assembly information is stored as features. Contig objects have SeqFeature information associated with the primary_tag:
_main_contig_feature:$contig_id -> misc contig information_quality_clipping:$read_id -> quality clipping position
Read objects have sub_seqFeature information associated with the primary_tag:
_main_read_feature:$read_id -> misc read information
Singlets are considered by TIGR Assembler as contigs of one sequence. Contigs are represented here with features having these primary_tag:
_main_contig_feature:$contig_id_quality_clipping:$read_primary_id_main_read_feature:$read_primary_id_aligned_coord:$read_primary_id
THE TIGR TASM LASSIE FORMAT
Description
In the TIGR tasm lassie format, contigs are separated by a line containing a single pipe character "|", whereas the reads in a contig are separated by a blank line. Singlets can be present in the file and are represented as a contig composed of a single sequence.
Other than the two above-mentioned separators, each line has an attribute name, followed a tab and then an attribute value.
The tasm format is used by more TIGR applications than just TIGR Assembler. Some of the attributes are not used by TIGR Assembler or have constant values. They are indicated by an asterisk *
Contigs have the following attributes:
asmbl_id -> contig IDsequence -> contig ungapped consensus sequence (ambiguities are lowercase)lsequence -> gapped consensus sequence (lowercase ambiguities)quality -> gapped consensus quality score (in hexadecimal)seq_id -> *com_name -> *type -> *method -> always 'asmg' *ed_status -> *redundancy -> fold coverage of the contig consensusperc_N -> percent of ambiguities in the contig consensusseq# -> number of sequences in the contigfull_cds -> *cds_start -> start of coding sequence *cds_end -> end of coding sequence *ed_pn -> name of editor (always 'GRA') *ed_date -> date and time of editioncomment -> some comments *frameshift -> *
Each read has the following attributes:
seq_name -> read nameasm_lend -> position of first base on contig ungapped consensus sequenceasm_rend -> position of last base on contig ungapped consensus sequenceseq_lend -> start of quality-trimmed sequence (aligned read coordinates)seq_rend -> end of quality-trimmed sequence (aligned read coordinates)best -> always '0' *comment -> some comments *db -> database name associated with the sequence (e.g. >my_db|seq1234)offset -> offset of the sequence (gapped consensus coordinates)lsequence -> aligned read sequence (ambiguities are uppercase)
When asm_rend < asm_lend, the sequence was on the complementary DNA strand but its reverse complement is shown in the aligned sequence of the assembly file, not the original read.
Ambiguities are reflected in the contig consensus sequence as lowercase IUPAC characters: a c g t u m r w s y k x n . In the read sequences, however, ambiguities are uppercase: M R W S Y K X N
Example
Example of a contig containing three sequences:
sequence CGATGCTGTACGGCTGTTGCGACAGATTGCGCTGGGTCGATACCGCGTTGGTGATCGGCTTGTTCAGCGGGCTCTGGTTCGGCGACAGCGCGGCGATCTTGGCGGCTGCGAAGGTTGCCGGCGCAATCATGCGCTGCTGACCGTTGACCTGGTCCTGCCAGTACACCCAGTCGCCCACCATGACCTTCAGCGCGTAGCTGTCACAGCCGGCTGTGGTCAGCGCAGTGGCGACGGTGGTGTAGGAGGCGCCAGCAACACCTTGGGTGATCATGTAGCAGCCTTCTGACAGGCCGTAGGTCAGCATGGTCGGCCACTGGGTACCAGTCAGTCGGGTCAACCGAGATTCGCAsCTGAGCGCCACTGCCGCGCAGAGCGTACATGCCCTTGCGGGTCGCGCCGGTAACACCATCCACGCCGATCAGAACTGCGTCGGTGATGGTGGTGTTACCCGAGGTGCCAGTGGTGAAGGCGACGGTCTGGGTGCTGGCCACAGGCGCCAGAGTGGTCGCGCCAACGGTGGCGATGACCAGTTGCGATGGGCCACGGATACCTGACTGCCCGTTGTTCACGGCGCTGACGATGTTCTGCCACAGCGCCAGGCCAGAGCCGGTGATGTTGTCGAACACTTCGGGCGCAACGCCAGGGAGCGAGACGGTCAGCTTCCAGCTCGAAGCAGCGGAGCCAGTAGCCAGGGCGGCGCTGAGCGAGTTGCCGAGCGTGCCGGTGTAGAACGCGGTCAGCGTGGCGCCGGTGGCGGCGGCAGTGTCCTTCAGCGCACTGGTCGCGGCGGTGTCGGTGCCGTCAGTGACGCGCACGGCGCGGATGTTCGAGGCGCCGCCCTGGATTGATACCGCCAGCGCGGTGCACAGGTCGTACTTGCGCACGGTCyGAGTGCCGAACTTCTGCGATGCGTCACCTGGCGAGCCGATAaGCGTGGCGCTGTTCACCGGCCCCCAGTCAGCAATGCCGACGATGCCGAGAATGTCAGTCGGGACGCCATTGATGTAGCGGGTCTTGGGCGCCACTATTTGTATGTACAAATCTGGCGCAGATAAAGCCGCCGTATTCAAATAACCAGCAGGATAGATAGGCATCACGCCTCCAGAATGAAAAAGGCCACCGATTAGGTGGCCTTTGTTGTGTTCGGCTGGCTGTTAGAGCAGCAGCCCGTTTTCCCGCGCAAACGCGAATGGGTCCTTGTCATGCTTCCTGCAATTGCAGGTAGGACAAAGAATTTGCAGGTTGGATTTGTCGTTCGATCCGCCCTTTGCAAGCGGGAACACGTGGTCAACGTGATACCCATCCCTTATGGATATAGTGCACATGGCGCATTTCCAGCGCTGAGCAGCCAGCAAAAATTTTATGTCGTCGCCGGTGTGTGAGCCGACAGCATTTTTCTTGCGAGCCTTGTATGTCCGCGAGAGTGAACGAACTTGCTCCTTGTTGGCTGTCTTCCAGAGCTTTTGAGTAAGCGCACAGAGATCCTTGTTTCTTGATCTCCACTCTCTGGTTGCGGAAATlsequence CGATGCTGTACGGCTGTTGCGACAGATTGCGCTGGGTCGATACCGCGTTGGTGATCGGCTTGTTCAGCGGGCTCTGGTTCGGCGACAGCGCGGCGATCTTGGCGGCTGCGAAGGTTGCCGGCGCAATCATGCGCTGCTGACCGTTGACCTGGTCCTGCCAGTACACCCAGTCGCCCACCATGACCTTCAGCGCGTAGCTGTCACAGCCGGCTGTGGTCAGCGCAGTGGCGACGGTGGTGTAGGAGGCGCCAGCAACACCTTGGGTGATCATGTAGCAGCCTTCTGACAGGCCGTAGGTCAGCATGGTCGGCCACTGGGTACCAGTCAGTCGGGTCAACCGAGATTCG-CAsCTGAGCGCCACTGCCGCGCAGAGCGTACATGCCCTTGCGGGTCGCGCCGGTAACACCATCCACGCCGATCAGAACTGCGTCGGTGATGGTGGTGTTACCCGAGGTGCCAGTGGTGAAGGCGACGGTCTGGGTGCTGGCCACAGGCGCCAGAGTGGTCGCGCCAACGGTGGCGATGACCAGTTGCGATGGGCCACGGATACCTGACTGCCCGTTGTTCACGGCGCTGACGATGTTCTGCCACAGCGCCAGGCCAGAGCCGGTGATGTTGTCGAACACTTCGGGCGCAACGCCAGGGAGCGAGACGGTCAGCTTCCAGCTCGAAGCAGCGGAGCCAGTAGCCAGGGCGGCGCTGAGCGAGTTGCCGAGCGTGCCGGTGTAGAACGCGGTCAGCGTGGCGCCGGTGGCGGCGGCAGTGTCCTTCAGCGCACTGGTCGCGGCGGTGTCGGTGCCGTCAGTGACGCGCACGGCGCGGATGTTCGAGGCGCCGCCCTGGATTGATACCGCCAGCGCGGTGCACAGGTCGTACTTGCGCACGGTCyGAGTGCCGAACTTCTGCGATGCGTCACCTGGCGAGCCGATAaGCGTGGCGCTGTTCACCGGCCCCCAGTCAGCAATGCCGACGATGCCGAGAATGTCAGTCGGGACGCCATTGATGTAGCGGGTCTTGGGCGCCACTATTTGTATGTACAAATCTGGCGCAGATAAAGCCGCCGTATTCAAATAACCAGCAGGATAGATAGGCATCACGCCTCCAGAATGAAAAAGGCCACCGATTAGGTGGCCTTTGTTGTGTTCGGCTGGCTGTTAGAGCAGCAGCCCGTTTTCCCGCGCAAACGCGAATGGGTCCTTGTCATGCTTCCTGCAATTGCAGGTAGGACAAAGAATTTGCAGGTTGGATTTGTCGTTCGATCCGCCCTTTGCAAGCGGGAACACGTGGTCAACGTGATACCCATCCCTTATGGATATAGTGCACATGGCGCATTTCCAGCGCTGAGCAGCCAGCAAAAATTTTATGTCGTCGCCGGTGTGTGAGCCGACAGCATTTTTCTTGCGAGCCTTGTATGTCCGCGAGAGTGAACGAACTTGCTCCTTGTTGGCTGTCTTCCAGAGCTTTTGAGTAAGCGCACAGAGATCCTTGTTTCTTGATCTCCACTCTCTGGTTGCGGAAATquality 0x0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0505050505050505050E0505160505050505050505050505050505050505050505050505050505050303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0404040404040404041604040404040404040404040404040404040404040404040404040404040404040404040404040404040E0404040404040404040B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0B0Basmbl_id 93seq_idcom_nametypemethod asmged_statusredundancy 1.11perc_N 0.20seq# 3full_cdscds_startcds_ended_pn GRAed_date 08/16/07 17:10:12commentframeshiftseq_name SDSU_RFPERU_010_C09.x01.phd.1asm_lend 1asm_rend 4423seq_lend 1seq_rend 442best 0commentdboffset 0lsequence CGATGCTGTACGGCTGTTGCGACAGATTGCGCTGGGTCGATACCGCGTTGGTGATCGGCTTGTTCAGCGGGCTCTGGTTCGGCGACAGCGCGGCGATCTTGGCGGCTGCGAAGGTTGCCGGCGCAATCATGCGCTGCTGACCGTTGACCTGGTCCTGCCAGTACACCCAGTCGCCCACCATGACCTTCAGCGCGTAGCTGTCACAGCCGGCTGTGGTCAGCGCAGTGGCGACGGTGGTGTAGGAGGCGCCAGCAACACCTTGGGTGATCATGTAGCAGCCTTCTGACAGGCCGTAGGTCAGCATGGTCGGCCACTGGGTACCAGTCAGTCGGGTCAACCGAGATTCG-CAGCTGAGCGCCACTGCCGCGCAGAGCGTACATGCCCTTGCGGGTCGCGCCGGTAACACCATCCACGCCGATCAGAACTGCGTCGGTGATGGTGGseq_name SDSU_RFPERU_002_H12.x01.phd.1asm_lend 339asm_rend 940seq_lend 1seq_rend 602best 0commentdboffset 338lsequence CGAGATTCGCCACCTGAGCGCCACTGCCGCGCAGAGCGTACATGCCCTTGCGGGTCGCGCCGGTAACACCATCCACGCCGATCAGAACTGCGTCGGTGATGGTGGTGTTACCCGAGGTGCCAGTGGTGAAGGCGACGGTCTGGGTGCTGGCCACAGGCGCCAGAGTGGTCGCGCCAACGGTGGCGATGACCAGTTGCGATGGGCCACGGATACCTGACTGCCCGTTGTTCACGGCGCTGACGATGTTCTGCCACAGCGCCAGGCCAGAGCCGGTGATGTTGTCGAACACTTCGGGCGCAACGCCAGGGAGCGAGACGGTCAGCTTCCAGCTCGAAGCAGCGGAGCCAGTAGCCAGGGCGGCGCTGAGCGAGTTGCCGAGCGTGCCGGTGTAGAACGCGGTCAGCGTGGCGCCGGTGGCGGCGGCAGTGTCCTTCAGCGCACTGGTCGCGGCGGTGTCGGTGCCGTCAGTGACGCGCACGGCGCGGATGTTCGAGGCGCCGCCCTGGATTGATACCGCCAGCGCGGTGCACAGGTCGTACTTGCGCACGGTCCGAGTGCCGAACTTCTGCGATGCGTCACCTGGCGAGCCGATA-GCGTGGCGCseq_name SDSU_RFPERU_009_E07.x01.phd.1asm_lend 880asm_rend 1520seq_lend 641seq_rend 1best 0commentdboffset 8803lsequence CGCACGGTCTGAGTGCCGAACTTCTGCGATGCGTCACCTGGCGAGCCGATAAGCGTGGCGCTGTTCACCGGCCCCCAGTCAGCAATGCCGACGATGCCGAGAATGTCAGTCGGGACGCCATTGATGTAGCGGGTCTTGGGCGCCACTATTTGTATGTACAAATCTGGCGCAGATAAAGCCGCCGTATTCAAATAACCAGCAGGATAGATAGGCATCACGCCTCCAGAATGAAAAAGGCCACCGATTAGGTGGCCTTTGTTGTGTTCGGCTGGCTGTTAGAGCAGCAGCCCGTTTTCCCGCGCAAACGCGAATGGGTCCTTGTCATGCTTCCTGCAATTGCAGGTAGGACAAAGAATTTGCAGGTTGGATTTGTCGTTCGATCCGCCCTTTGCAAGCGGGAACACGTGGTCAACGTGATACCCATCCCTTATGGATATAGTGCACATGGCGCATTTCCAGCGCTGAGCAGCCAGCAAAAATTTTATGTCGTCGCCGGTGTGTGAGCCGACAGCATTTTTCTTGCGAGCCTTGTATGTCCGCGAGAGTGAACGAACTTGCTCCTTGTTGGCTGTCTTCCAGAGCTTTTGAGTAAGCGCACAGAGATCCTTGTTTCTTGATCTCCACTCTCTGGTTGCGGAAAT|
...
FEEDBACK
Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing lists Your participation is much appreciated.
[email protected] - General discussionhttp://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
Please direct usage questions or support issues to the mailing list:
rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Reporting Bugs
Report bugs to the BioPerl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via email or the web:
[email protected]https://github.com/bioperl/bioperl-live/issues
AUTHOR - Florent E Angly
Email florent dot angly at gmail dot com
APPENDIX
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a "_".
next_assembly
Title : next_assemblyUsage : my $scaffold = $asmio->next_assembly();Function: return the next assembly in the tasm-formatted streamReturns : Bio::Assembly::Scaffold objectArgs : none
next_contig
Title : next_contigUsage : my $contig = $asmio->next_contig();Function: return the next contig or singlet TIGR-formatted streamReturns : Bio::Assembly::Contig or Bio::Assembly::SingletArgs : none
_qual_hex2dec
Title : _qual_hex2decUsage : my dec_quality = $self->_qual_hex2dec($hex_quality);Function: convert an hexadecimal quality score into a decimal quality scoreReturns : stringArgs : string
_qual_dec2hex
Title : _qual_dec2hexUsage : my hex_quality = $self->_qual_dec2hex($dec_quality);Function: convert a decimal quality score into an hexadecimal quality scoreReturns : stringArgs : string
_store_contig
Title : _store_contigUsage : my $contigobj = $self->_store_contig(\%contiginfo, $contigobj);Function: store information of a contig belonging to a scaffold in theappropriate objectReturns : Bio::Assembly::Contig objectArgs : hash, Bio::Assembly::Contig
_store_read
Title : _store_readUsage : my $readobj = $self->_store_read(\%readinfo, $contigobj);Function: store information of a read belonging to a contig in a contig objectReturns : Bio::LocatableSeqArgs : hash, Bio::Assembly::Contig
_store_singlet
Title : _store_singletUsage : my $singletobj = $self->_store_read(\%readinfo, \%contiginfo);Function: store information of a singlet belonging to a scaffold in a singlet objectReturns : Bio::Assembly::SingletArgs : hash, hash
write_assembly
Title : write_assemblyUsage : $asmio->write_assembly($assembly)Function: Write the assembly object in TIGR Assembler compatible format. Thecontig IDs are sorted naturally if the Sort::Naturally module ispresent, or lexically otherwise. Internally, write_assembly usethe write_contig, write_footer and write_header methods. Use thesemethods if you want more control on the writing process.Returns : 1 on success, 0 for errorArgs : A Bio::Assembly::Scaffold object1 to write singlets in the assembly file, 0 otherwise
write_contig
Title : write_contigUsage : $asmio->write_contig($contig)Function: Write a contig or singlet object in TIGR compatible format. Qualityscores are automatically generated if the contig does not containanyReturns : 1 on success, 0 for errorArgs : A Bio::Assembly::Contig or Singlet object
write_header
Title : write_headerUsage : $asmio->write_header($assembly)Function: In the TIGR Asseformat assembly driver, this does nothing. Themethod is present for compatibility with other assembly driversthat need to write a file header.Returns : 1 on success, 0 for errorArgs : A Bio::Assembly::Scaffold object
write_footer
Title : write_footerUsage : $asmio->write_footer($assembly)Function: Write TIGR footer, i.e. do nothing except making sure that thefile does not end with a '|'.Returns : 1 on success, 0 for errorArgs : A Bio::Assembly::Scaffold object
_perc_N
Title : _perc_NUsage : my $perc_N = $asmio->_perc_N($sequence_string)Function: Calculate the percent of ambiguities in a sequence.M R W S Y K X N are regarded as ambiguities in an aligned readsequence by TIGR Assembler. In the case of a gapped contigconsensus sequence, all lowercase symbols are ambiguities, i.e.:a c g t u m r w s y k x n.Returns : decimal numberArgs : string
_redundancy
Title : _redundancyUsage : my $ref = $asmio->_redundancy($contigobj)Function: Calculate the fold coverage (redundancy) of a contig consensus(average number of read base pairs covering the consensus)Returns : decimal numberArgs : Bio::Assembly::Contig
_ungap
Title : _ungapUsage : my $ungapped = $asmio->_ungap($gapped)Function: Remove the gaps from a sequence. Gaps are - in TIGR AssemblerReturns : stringArgs : string
_date_time
Title : _date_timeUsage : my $timepoint = $asmio->date_timeFunction: Get date and time (MM//DD/YY HH:MM:SS)Returns : stringArgs : none
_split_seq_name_and_db
Title : _split_seq_name_and_dbUsage : my ($seqname, $db) = $asmio->_split_seq_name_and_db($id)Function: Extract seq_name and db from sequence idReturns : seq_name, dbArgs : id
_merge_seq_name_and_db
Title : _merge_seq_name_and_dbUsage : my $id = $asmio->_merge_seq_name_and_db($seq_name, $db)Function: Construct id from seq_name and dbReturns : idArgs : seq_name, db
_coord
Title : _coordUsage : my $id = $asmio->__coord($readobj, $contigobj)Function: Get different coordinates for the readReturns : number, number, number, number, numberArgs : Bio::Assembly::Seq, Bio::Assembly::Contig