the generation of expressed sequence tags ( ests ) was originally proposed as a strategy for cdna characterization over a decade ago ( 1 ) .
subsequent improvements in sequencing methods and dramatically reduced unit costs have increased the attractiveness of the est - based research , such that it is now one of the most widely employed methods used for gene discovery and genome characterization .
consequently , the number of organisms with est sequences deposited in the genbank dbest database is increasing rapidly ( ) . to maximize the value of these ests , ncbi has built unigenes that incorporated est data for a number of species ( ) , and the institute for genomics research ( tigr ) has been working on the gene indices for more than 70 species ( ) . annotating est and cdna sequences
two tools that have been designed for locating protein - coding regions in cdna and est sequences are orffinder ( ) and estscan ( ) , respectively .
the estscan server is designed for processing a batch of est sequences for identifying the protein - coding regions with a function for correcting insertions or deletions , but it is only trained for mammals and yeast .
we tested estscan with our aspergillus niger est sequences and found that the results were not satisfactory .
for example , using a full - length cdna sequence encoding glucoamylase , a well - characterized enzyme in a.niger , we found that estscan could not identify its correct coding region and had the undesired side effect of inserting nucleotides even when the test sequence was correct .
we have implemented a web server called orfpredictor for the prediction of protein - coding regions within est - derived sequences .
the algorithm uses the translation reading frames predicted by using blastx ( 2 ) as a guide for the identification of the coding region in sequences that have a hit ( 3 ) and predicts a coding region ab initio for sequences without a hit .
a mature eukaryotic mrna molecule , starting from the 5 end , typically consists of a 5 cap , a 5-untranslated region ( 5-utr ) , a protein - coding region [ open reading frame ( orf ) ] and a 3-utr followed by a poly(a ) tail .
the protein - coding region extends from the start codon aug ( atg in a cdna ) and continues until the reading frame defined by the start codon is terminated by one of three translation stop codons , uga , uaa or uag . most cdna libraries are constructed using oligo(dt ) primers to direct first - strand synthesis by reverse transcriptase .
essentially , all clones in oligo(dt ) primed cdna libraries will therefore include information for the 3 end of the processed transcript and a poly(a ) region .
ests are single - pass sequencing reads obtained from either the 5 or 3 end of the cdna insert .
the high - quality sequence obtained using systems , such as abi 3730xl , is typically 700800 nt per read .
given that the 3- and 5-utrs are typically much shorter than 500 nt , most ests and the consensus sequences ( contigs ) generated by an est assembler are expected to include some coding sequence useful for predicting gene function . in the annotation and analysis of ests ,
overlapping est sequences are often assembled into contigs to remove redundancy , reduce the frequency of sequencing errors and extend the length of sequence derived from each mrna species . assuming the ests are sequenced from the 5 end , sequence information from contigs and individual ests fall into 10 categories ( figure 1 ) as follows : 
 a full - length sequence that includes the 5-utr with one or more stop codons ( 5 stop codon ) , translation start codon , complete protein - coding region , translation stop codon and the 3-utr .
the protein - coding orf may have internal atg codons and the 3-utr may possess multiple stop codons .
the 5-utr may be truncated.a full - length sequence as defined for category ( a ) , except that it does not contain any 5 stop codons.a partial sequence that has a portion of the 5-utr , one or more 5 stop codons , the start codon and a portion of the coding region.a sequence that contains only 5-utr sequence and there is a 5 stop codon.a sequence that contains a 5-utr sequence , the start codon and a portion of the protein - coding orf.a sequence that contains only 5-utr sequence without a 5 stop codon.a sequence that contains a portion of the protein - coding region , but does not contain the start codon or the stop codon.a sequence with the potential protein - coding region truncated at its 5 end , one or more atg codons in the truncated orf , the stop codon and a 3-utr.a sequence that contains a portion of the potential protein - coding region and the 3-utr sequence.a sequence that contains a portion of the 3-utr and a poly(a ) sequence at its 3 end . a full - length sequence that includes the 5-utr with one or more stop codons ( 5 stop codon ) , translation start codon , complete protein - coding region , translation stop codon and the 3-utr .
the protein - coding orf may have internal atg codons and the 3-utr may possess multiple stop codons .
the 5-utr may be truncated . a full - length sequence as defined for category ( a ) , except that it does not contain any 5 stop codons . a partial sequence that has a portion of the 5-utr , one or more 5 stop codons , the start codon and a portion of the coding region . a sequence that contains only 5-utr sequence and there is a 5 stop codon . a sequence that contains a 5-utr sequence , the start codon and a portion of the protein - coding orf . a sequence that contains only 5-utr sequence without a 5 stop codon .
a sequence that contains a portion of the protein - coding region , but does not contain the start codon or the stop codon . a sequence with the potential protein - coding region truncated at its 5 end , one or more atg codons in the truncated orf , the stop codon and a 3-utr . a sequence that contains a portion of the potential protein - coding region and the 3-utr sequence . a sequence that contains a portion of the 3-utr and a poly(a ) sequence at its 3 end . for sequences generated by sequencing cdna inserts from their 3 ends ,
the categories of their reverse complementary sequences only include ( a ) , ( b ) , ( h ) , ( i ) and ( j ) .
therefore , it is more challenging to predict the coding region within an est than it is to predict the coding region of a fully sequenced cdna . distinguishing the translation start codon from other atg codons remains a difficult task .
identifying start codons is further complicated because there is not a universal consensus sequence surrounding eukaryotic start codons , although the conserved consensus sequence , gccrccaugg ( r : purine ; aug : start codon ) is present in mammals ( 4 ) .
however , blastx using a nucleotide query against a protein database is able to reliably identify protein - coding regions within a dna sequence if sufficient similarity exists between the translated query and an entry in the database ( 3 ) .
sequencing errors may disrupt the conceptual translation of orfs , blastx could also detect frame shifts if there are insertions / deletions in the coding regions of the query sequences . when significant blastx alignments can be generated our algorithm uses them as a guide to identify the translation reading frames and coding regions . for est - derived sequences without a database match , their frames and coding sequences are predicted based on the presence and the location of intrinsic signals in a sequence that include start codons , 5 or / and 3 stop codons and stretches of poly(a ) ( figure 1 ) .
our algorithm uses the following rules to locate protein - coding regions and predict the translation reading frame . for cases where blastx identified a significant database match ( e - value lower than a user chosen threshold ) ,
the frame assignment in the blastx output will be used and rules 19 are applied . if there is a conflict , rules 1 and 2 will override the other rules . for sequences that do not produce a significant blastx alignment rules 310
rule 1 : the predicted coding region must contain at least a portion of the translated query aligned by using blastx.rule 2 : if there is a frame shift , the first frame assignment in the blastx alignment is used.rule 3 : when there are no internal stop codons within a potential protein - coding region that is flanked by translation start and stop codons , the predicted coding region extends from the start codon to the stop codon ( figure 1a).rule 4 : a sequence that contains a poly(a ) signature but does not contain a stop codon does not include any portion of the coding region ( figure 1j).rule 5 : if there are one or more atg codons in a sequence and they are all downstream from one or more stop codons , the first atg following the last 5 stop codon is selected as the start codon ( figure 1a and c).rule 6 : to be considered a potential coding region , an orf that is flanked by a 5 stop codon and a 3 stop codon must be at least 90 nt ( code for a protein that has at least 30 amino acids).rule 7 : if a sequence includes a poly(a ) signature preceded by one or more 3 stop codons , but does not include a 5 stop codon , the sequence upstream of the stop codons is considered the coding region ( figure 1b , h and i).rule 8 : if a sequence lacks a poly(a ) signature and encodes an orf without any stop codons , it is assumed that the entire sequence is the coding region ( figure 1e , f and g ) . although in rare cases ( such as in figure 1f ) , the 5-utr will be considered as a coding sequence.rule 9 : for cases like that presented in figure 1d , it is impossible to know if the stop codon is a 5 stop codon or a 3 stop codon , if it lacks a poly(a ) signature .
however , because cdna clones are more likely to be truncated at their 5 end , the program assumes in this case that the sequence upstream of the stop codon is the coding sequence.rule 10 : the longest stretch of orf present in the six possible reading frames is selected as the coding region .
rule 1 : the predicted coding region must contain at least a portion of the translated query aligned by using blastx . rule 2 : if there is a frame shift , the first frame assignment in the blastx alignment is used .
rule 3 : when there are no internal stop codons within a potential protein - coding region that is flanked by translation start and stop codons , the predicted coding region extends from the start codon to the stop codon ( figure 1a ) .
rule 4 : a sequence that contains a poly(a ) signature but does not contain a stop codon does not include any portion of the coding region ( figure 1j ) .
rule 5 : if there are one or more atg codons in a sequence and they are all downstream from one or more stop codons , the first atg following the last 5 stop codon is selected as the start codon ( figure 1a and c ) .
rule 6 : to be considered a potential coding region , an orf that is flanked by a 5 stop codon and a 3 stop codon must be at least 90 nt ( code for a protein that has at least 30 amino acids ) .
rule 7 : if a sequence includes a poly(a ) signature preceded by one or more 3 stop codons , but does not include a 5 stop codon , the sequence upstream of the stop codons is considered the coding region ( figure 1b , h and i ) .
rule 8 : if a sequence lacks a poly(a ) signature and encodes an orf without any stop codons , it is assumed that the entire sequence is the coding region ( figure 1e , f and g ) .
although in rare cases ( such as in figure 1f ) , the 5-utr will be considered as a coding sequence .
rule 9 : for cases like that presented in figure 1d , it is impossible to know if the stop codon is a 5 stop codon or a 3 stop codon , if it lacks a poly(a ) signature .
however , because cdna clones are more likely to be truncated at their 5 end , the program assumes in this case that the sequence upstream of the stop codon is the coding sequence .
rule 10 : the longest stretch of orf present in the six possible reading frames is selected as the coding region .
the server provides a user interface for copy and paste , or for loading the users ' sequences and blastx outputs .
these various inputs are summarized as follows : 
 a sequence file in the fasta format .
the poly(a ) or poly(t ) signatures that identify mrna poly(a ) tails should be retained , as they are used to determine the strand to be used for coding region and reading frame prediction.blastx output for all the est - derived query sequences .
although it is optional , the user is encouraged to provide a pre - run blastx output .
the user can choose a cut - off e - value when setting up the blastx run .
if a blast output file is provided by a user , the frame used in blastx for alignments will be used for the prediction of the protein - coding region . for query sequences without a blastx hit or for which the blastx output is not provided , predictions will be performed based on the intrinsic signals of the query sequences using the rules described above .
users can also use our targetidentifier server ( ) to obtain blastx outputs for their query sequences .
targetidentifier server uses the uniprot / swiss - prot protein database.e - value : the user can also set a threshold e - value for their blastx file .
if the e - value in the blastx file is larger than the user selected threshold , the query sequence will be taken as 
no hit. the default threshold is 1  10.strand : the user can choose which strand will be used for prediction . if the sequences were obtained by sequencing cdnas from the 5 ends , the  +  strand should be chosen .
if the file contains sequences obtained by sequencing from both ends , both strands should be used for prediction . in this case , the default setting , 
users can select download or use email for receiving their results . a sequence file in the fasta format .
the poly(a ) or poly(t ) signatures that identify mrna poly(a ) tails should be retained , as they are used to determine the strand to be used for coding region and reading frame prediction .
although it is optional , the user is encouraged to provide a pre - run blastx output .
the user can choose a cut - off e - value when setting up the blastx run .
if a blast output file is provided by a user , the frame used in blastx for alignments will be used for the prediction of the protein - coding region . for query sequences without a blastx hit or for which the blastx output is not provided , predictions will be performed based on the intrinsic signals of the query sequences using the rules described above .
users can also use our targetidentifier server ( ) to obtain blastx outputs for their query sequences .
e - value : the user can also set a threshold e - value for their blastx file .
if the e - value in the blastx file is larger than the user selected threshold , the query sequence will be taken as 
strand : the user can choose which strand will be used for prediction . if the sequences were obtained by sequencing cdnas from the 5 ends , the  +  strand should be chosen . if the sequences were obtained by sequencing cdnas from their 3 ends , the   strand should be chosen .
if the file contains sequences obtained by sequencing from both ends , both strands should be used for prediction . in this case , the default setting , 
an identifier for the sequence , the reading frame for the predicted coding region , the location of the beginning and end of the predicted coding region , a flag shown as  fs that locates any translation frame shifts detected in the blastx alignment and the predicted protein sequence .
the other file contains the query identifiers for those sequences that do not have predicted protein - coding regions ( figure 1j ) .
most ests encompass only a portion of the mrna sequence . therefore , it is more challenging to predict the coding region within an est than it is to predict the coding region of a fully sequenced cdna . distinguishing the translation start codon from other atg codons
identifying start codons is further complicated because there is not a universal consensus sequence surrounding eukaryotic start codons , although the conserved consensus sequence , gccrccaugg ( r : purine ; aug : start codon ) is present in mammals ( 4 ) .
however , blastx using a nucleotide query against a protein database is able to reliably identify protein - coding regions within a dna sequence if sufficient similarity exists between the translated query and an entry in the database ( 3 ) .
sequencing errors may disrupt the conceptual translation of orfs , blastx could also detect frame shifts if there are insertions / deletions in the coding regions of the query sequences . when significant blastx alignments can be generated our algorithm uses them as a guide to identify the translation reading frames and coding regions . for est - derived sequences without a database match , their frames and coding sequences are predicted based on the presence and the location of intrinsic signals in a sequence that include start codons , 5 or / and 3 stop codons and stretches of poly(a ) ( figure 1 ) .
our algorithm uses the following rules to locate protein - coding regions and predict the translation reading frame . for cases where blastx identified a significant database match ( e - value lower than a user chosen threshold ) ,
the frame assignment in the blastx output will be used and rules 19 are applied . if there is a conflict , rules 1 and 2 will override the other rules . for sequences that do not produce a significant blastx alignment rules 310
rule 1 : the predicted coding region must contain at least a portion of the translated query aligned by using blastx.rule 2 : if there is a frame shift , the first frame assignment in the blastx alignment is used.rule 3 : when there are no internal stop codons within a potential protein - coding region that is flanked by translation start and stop codons , the predicted coding region extends from the start codon to the stop codon ( figure 1a).rule 4 : a sequence that contains a poly(a ) signature but does not contain a stop codon does not include any portion of the coding region ( figure 1j).rule 5 : if there are one or more atg codons in a sequence and they are all downstream from one or more stop codons , the first atg following the last 5 stop codon is selected as the start codon ( figure 1a and c).rule 6 : to be considered a potential coding region , an orf that is flanked by a 5 stop codon and a 3 stop codon must be at least 90 nt ( code for a protein that has at least 30 amino acids).rule 7 : if a sequence includes a poly(a ) signature preceded by one or more 3 stop codons , but does not include a 5 stop codon , the sequence upstream of the stop codons is considered the coding region ( figure 1b , h and i).rule 8 : if a sequence lacks a poly(a ) signature and encodes an orf without any stop codons , it is assumed that the entire sequence is the coding region ( figure 1e , f and g ) .
although in rare cases ( such as in figure 1f ) , the 5-utr will be considered as a coding sequence.rule 9 : for cases like that presented in figure 1d , it is impossible to know if the stop codon is a 5 stop codon or a 3 stop codon , if it lacks a poly(a ) signature . however , because cdna clones are more likely to be truncated at their 5 end , the program assumes in this case that the sequence upstream of the stop codon is the coding sequence.rule 10 : the longest stretch of orf present in the six possible reading frames is selected as the coding region .
rule 1 : the predicted coding region must contain at least a portion of the translated query aligned by using blastx . rule 2 : if there is a frame shift , the first frame assignment in the blastx alignment is used .
rule 3 : when there are no internal stop codons within a potential protein - coding region that is flanked by translation start and stop codons , the predicted coding region extends from the start codon to the stop codon ( figure 1a ) .
rule 4 : a sequence that contains a poly(a ) signature but does not contain a stop codon does not include any portion of the coding region ( figure 1j ) . rule 5 : if there are one or more atg codons in a sequence and they are all downstream from one or more stop codons , the first atg following the last 5 stop codon is selected as the start codon ( figure 1a and c ) .
rule 6 : to be considered a potential coding region , an orf that is flanked by a 5 stop codon and a 3 stop codon must be at least 90 nt ( code for a protein that has at least 30 amino acids ) . rule 7 : if a sequence includes a poly(a ) signature preceded by one or more 3 stop codons , but does not include a 5 stop codon , the sequence upstream of the stop codons is considered the coding region ( figure 1b , h and i ) .
rule 8 : if a sequence lacks a poly(a ) signature and encodes an orf without any stop codons , it is assumed that the entire sequence is the coding region ( figure 1e , f and g ) .
although in rare cases ( such as in figure 1f ) , the 5-utr will be considered as a coding sequence .
rule 9 : for cases like that presented in figure 1d , it is impossible to know if the stop codon is a 5 stop codon or a 3 stop codon , if it lacks a poly(a ) signature .
however , because cdna clones are more likely to be truncated at their 5 end , the program assumes in this case that the sequence upstream of the stop codon is the coding sequence .
rule 10 : the longest stretch of orf present in the six possible reading frames is selected as the coding region .
the server provides a user interface for copy and paste , or for loading the users ' sequences and blastx outputs
these various inputs are summarized as follows : 
 a sequence file in the fasta format .
the poly(a ) or poly(t ) signatures that identify mrna poly(a ) tails should be retained , as they are used to determine the strand to be used for coding region and reading frame prediction.blastx output for all the est - derived query sequences .
although it is optional , the user is encouraged to provide a pre - run blastx output .
the user can choose a cut - off e - value when setting up the blastx run .
if a blast output file is provided by a user , the frame used in blastx for alignments will be used for the prediction of the protein - coding region . for query sequences without a blastx hit or for which the blastx output is not provided , predictions will be performed based on the intrinsic signals of the query sequences using the rules described above .
users can also use our targetidentifier server ( ) to obtain blastx outputs for their query sequences .
targetidentifier server uses the uniprot / swiss - prot protein database.e - value : the user can also set a threshold e - value for their blastx file .
if the e - value in the blastx file is larger than the user selected threshold , the query sequence will be taken as 
no hit. the default threshold is 1  10.strand : the user can choose which strand will be used for prediction . if the sequences were obtained by sequencing cdnas from the 5 ends , the  +  strand should be chosen .
if the file contains sequences obtained by sequencing from both ends , both strands should be used for prediction . in this case , the default setting , 
users can select download or use email for receiving their results . a sequence file in the fasta format .
the poly(a ) or poly(t ) signatures that identify mrna poly(a ) tails should be retained , as they are used to determine the strand to be used for coding region and reading frame prediction .
although it is optional , the user is encouraged to provide a pre - run blastx output .
the user can choose a cut - off e - value when setting up the blastx run .
if a blast output file is provided by a user , the frame used in blastx for alignments will be used for the prediction of the protein - coding region . for query sequences without a blastx hit or for which the blastx output is not provided , predictions will be performed based on the intrinsic signals of the query sequences using the rules described above .
users can also use our targetidentifier server ( ) to obtain blastx outputs for their query sequences .
e - value : the user can also set a threshold e - value for their blastx file . if the e - value in the blastx file is larger than the user selected threshold , the query sequence will be taken as  no hit. the default threshold is 1  10 .
strand : the user can choose which strand will be used for prediction . if the sequences were obtained by sequencing cdnas from the 5 ends , the  +  strand should be chosen . if the sequences were obtained by sequencing cdnas from their 3 ends , the 
if the file contains sequences obtained by sequencing from both ends , both strands should be used for prediction . in this case , the default setting , 
it contains the following information for each input sequence . an identifier for the sequence , the reading frame for the predicted coding region , the location of the beginning and end of the predicted coding region , a flag shown as  fs that locates any translation frame shifts detected in the blastx alignment and the predicted protein sequence .
the other file contains the query identifiers for those sequences that do not have predicted protein - coding regions ( figure 1j ) .
we evaluated the accuracy of orfpredictor using 2127 arabidopsis cdna sequences that have annotated protein sequences in genbank , and 4289 a.niger and 3065 phanerochaete chrysosporium sequences assembled from ests with phrap ( ) .
we first compared the predicted arabidopsis protein sequences obtained when blastx alignments were used as a guide with the annotated protein sequences in genbank , and confirmed that our program was able to predict the protein - coding regions with 100% accuracy .
then , we compared the ab initio predicted protein sequences with the results obtained by using blastx .
we then examined the prediction accuracy using the a.niger and p.chrysosporium sequences , which had a blastx hit in the ncbi nr database with an e - value 1  10 .
the ab initio predicted frames were then compared with the frames identified by using blastx .
we found that the reading frame predicted ab initio was identical with the frames predicted by using blastx for 3943 ( 91.9% ) of the a.niger sequences and 2867 ( 93.5% ) of the p.chrysosporium sequences .
we implemented a web server , orfpredictor , for predicting protein - coding regions in est - derived sequences .
orfpredictor uses the reading frame predicted by using blastx when a significant alignment is produced , whereas for sequences that do not return a significant blastx alignment protein - coding regions are predicted ab initio .
the predicted protein sequences can then be used as the input for additional annotation tools , such as interproscan ( 5 ) , for identifying protein families , domains and functional sites , the conserved domain search service ( 6 ) for the detection of structural and functional domains , and signalp ( 7 ) for locating potential signal peptides .
categories of information derived from the est sequences . ( a ) a typical full - length cdna sequence including one or more stop codons in the 5-utr , a start codon and a stop codon
. the coding region may contain multiple atg codons encoding methionine and the 3-utr may harbor additional stop codons .
( b ) a full - length cdna without a stop codon in the 5-utr . ( c ) a sequence containing a 5-utr with a stop codon and a portion of the coding region .
( d ) a sequence containing a 5-utr with a stop codon . ( e ) a sequence containing a 5-utr without a 5 stop codon , and a portion of the coding region .
( f ) a sequence containing a portion of 5-utr without a 5 stop codon . (
g ) a sequence containing the internal portion of a coding region with or without internal atg codons .
( h ) a sequence containing a portion of the coding region with an internal atg codon , a 3 stop codon and 3-utr .
( i ) a sequence containing a portion of the coding region with no internal atg codons , a 3 stop codon and a 3-utr .
red star : stop codon at 5 end ; green circle : start codon ; blue circle : internal atg codon ; red hexagon : stop codon ; solid line : sequenced portion of the full - length cdna ; and dashed line : unsequenced or truncated portion of the full - length cdna . the orfpredictor server interface for loading data and choosing other parameters .
 orfpredictor is a web server designed for identifying protein - coding regions in expressed sequence tag ( est)-derived sequences . for query sequences with a hit in blastx , 
 the program predicts the coding regions based on the translation reading frames identified in blastx alignments , otherwise , it predicts the most probable coding region based on the intrinsic signals of the query sequences . 
 the output is the predicted peptide sequences in the fasta format , and a definition line that includes the query i d , the translation reading frame and the nucleotide positions where the coding region begins and ends . 
 orfpredictor facilitates the annotation of est - derived sequences , particularly , for large - scale est projects . 
 orfpredictor is available at . 
INTRODUCTION
OVERVIEW OF THE ALGORITHM AND IMPLEMENTATION
Algorithm and implementation
Input
Output
EVALUATIONS OF ACCURACY
SUMMARY
Figures and Tables