terminal restriction fragment length polymorphism ( t - rflp ) analysis is a microbial fingerprinting technique capable of discriminating microbial communities quickly and relatively inexpensively ( 13 ) .
t - rflp is increasingly used in high - throughput studies of microbial communities in combination with or even in lieu of clone library analysis ( 4,5 ) .
briefly , the method involves pcr amplification of a gene of interest ( often 16s rrna genes ) with fluorescent dye - labeled primers , followed by multiple single restriction digests done in parallel .
the resulting fragments are then separated by capillary electrophoresis with an internal size standard to determine the lengths of the terminal ( fluorescently labeled ) fragments .
each distinct terminal restriction fragment is considered an operational taxonomic unit ( otu ) , thus the choice of restriction enzymes can impact the number of otus observed in each sample and the calculation of diversity statistics .
when analyzing uncharacterized and very diverse bacterial communities , sufficient community discrimination can often be accomplished with multiple randomly - chosen tetrameric restriction enzymes ( 6 ) . however
, a brief review of the literature indicates that there is still no standard in even this simplified case .
we examined 26 papers ( 15,726 ) that were published between 1997 and 2007 and used t - rflp .
of those papers , 38% used universal bacterial primers combined with a single restriction enzyme , but the choice of enzyme was not consistent .
mspi was used most frequently ( four studies ) , followed by taqi ( two studies ) , and one study each used alui , cfoi , hhai and haeiii .
overall , only three of the 26 papers included a rationalization of enzyme selection ( 1,2,17 ) .
an alternate approach to t - rflp can be taken if the microbial community has been characterized ( by clone library analysis or by prediction from previous studies ) or if a particular taxonomic group is being targeted with specific primers . in this case , a more reasoned choice of restriction enzymes can be conducted . in particular , specific species or microbial taxa of interest to the researcher  particularly closely related taxa that may share some restriction sites 
over 600 type ii restriction enzymes are commercially available , accounting for 262 distinct specificities ( 27 ) .
existing computer programs for assisting in the choice of restriction enzymes include tap - trflp ( 28 ) , mica enzyme resolving power analysis ( http://mica.ibest.uidaho.edu ) and trf - cut ( 29 ) .
these programs perform in silico restriction digestions of a predefined sequence database or user - provided sequences , but these results must still be manually examined to determine which enzymes are best suited to discriminate that set of sequences .
cleaver ( 30 ) , a stand alone program , provides the above features as well as the ability to assign sequences to taxonomic groups at multiple levels and to search for enzymes that cut one group but not another group .
restriction endonuclease picker ( repk ) addresses this gap by finding enzymes that are able to discriminate an unlimited number of user - designated sequence groups on the basis of their terminal restriction fragment lengths . if no single enzyme can discriminate all groups , repk reports sets of four restriction enzymes that together are able to differentiate the groups of interest .
an important component of repk is this ability to specify the taxonomic rank of sequences to be differentiated , which is particularly useful in the case where a diverse microbial community has been characterized by clone library analysis or there is an existing database of several subgroups of sequences that amplify with the same specific primers .
a complete manual and example input files are provided on the repk website ( http://rocaplab.ocean.washington.edu/tools/repk ) . the example shown in figure 1
was prepared using repk v. 1.0 , with the following operating parameters ( also the defaults ) : example sequence file ( alignment5.txt ) , all commercially available type iip enzymes ( rebase version 704 ) , taxonomic rank  =  1 , cut - off  =  5 , min . fragment length  =  75 , max .
fragment length  =  900 , stringency  =   automatic , max . missing groups  =  0 , max .
figure 1.schematic summarizing the processing steps performed by repk using program options detailed in the text , as well as subsets of example input and output files .
schematic summarizing the processing steps performed by repk using program options detailed in the text , as well as subsets of example input and output files .
the user must provide a trimmed fasta - formatted file with nucleotide sequences beginning at the 5-end of the labeled primer used for pcr amplification and ending at the 5-end of the unlabeled primer .
sequence groups can be designated in the description line of the fasta file , by using a delimiter to separate taxonomic rank terms or optionally taxonomic identifications can be prepended to the description line using an output file from rdp - classifier ( 31 ) .
figure 1a shows a subset of the example sequence file provided on the website , alignment5.txt .
sequence groups are separated by a single underscore , and in this example  taxonomic rank 1 was chosen , corresponding to the genus of these archaea . a selectable list of commercially available enzymes from the latest rebase database ( 27 ) is available and is automatically updated on the first day of each month .
the enzymes available for selection include primarily type iip enzymes , which have symmetric recognition sequences and cleavage sites .
restriction enzymes of type iia ( having asymmetric recognition sequences ) and type iib ( cleaving both sides of the recognition sequence on both strands ) are at the present time not supported by repk , although some are included in a separate enzyme file for advanced users willing to perform some manual processing .
users should be aware that some enzymes in the rebase database may not be suitable for t - rflp due to methylation specificities or requirements for multiple restriction sites to be present for effective digestion .
finally , users can define their own custom enzymes if they are not included in the standard list .
the default ( all standard enzymes ) was used for the example in figure 1 . for computational efficiency isoschizomers
some of these , the minimum and maximum allowable fragment lengths and the maximum difference in size between two fragments that will still be considered the  same fragment , will be dependent on the specifications and resolving power of particular capillary electrophoresis systems .
users can also set the minimum threshold for the number of groups each enzyme must be able to discriminate on its own ( the enzyme stringency ) , and the number of groups allowed to remain undifferentiated in the case that no  perfect enzyme groups are discovered .
sequences are first digested in both orientations by all selected enzymes to find the shortest labeled restriction fragment ; these lengths are output as a table ( and a downloadable tab - delimited text file , fragfile.csv ) , a subset of which is shown in figure 1b . in this example , the sequences were cut by every enzyme except aasi , which resulted in full - length fragments .
next , all terminal fragment lengths are binned within the chosen cut - off ( here 5 bp ) and a binary matrix of pairwise group differentiations is created .
bins containing a single sequence group yield a  1 , while bins containing more than one sequence group yield a 
, banii failed to distinguish between sequence groups sulfurisphaera and thermofilum because the difference between their fragment lengths ( 1 bp ) was less than the chosen cutoff of 5 bp ( figure 1b ) .
however , asplei did distinguish between those groups because the difference in fragment lengths was 188 bp .
it is not necessary for sequences from the same sequence group to have similar fragment lengths ( e.g. sulfolobus ) .
fragment lengths outside the boundaries set by the minimum and maximum fragment length options are binned together without regard for their actual lengths , decreasing the number of sequence groups discriminated by those enzymes ( e.g. bmii ) .
the enzyme stringency filter is then applied to this matrix , allowing only enzymes that discriminate at least the specified fraction of sequence groups to proceed .
the passing enzymes are output as a table ( and a downloadable tab - delimited text file , enzmatrix.csv ) , a subset of which is shown in figure 1c . for computational efficiency , the enzymes are then sorted into 
enzyme bins that produce identical differentiation patterns , although they may not produce the same terminal fragment lengths . in this example , neoschizomers asplei and glai produce different fragment lengths but the same differentiation pattern so they were grouped together for the final analysis .
it is important to note that the enzyme bins are dependent on the particular sequence file and taxonomic rank selected for the analysis .
that is , two enzymes may have equal discriminatory power for a particular set of sequence groups but for a different set of sequences , one enzyme may be much better and the two enzymes would be placed in the same bin in the first but not the second case . finally , groups of four enzymes ( a  set ) are logically summed ( e.g. 101 + 011 = 111 ) to determine the coverage of the set , i.e. the number of sequence groups discriminated by the enzymes in the set .
if this number is greater than the total number of sequence groups ( less than the max . missing groups , here 0 ) then the set is saved .
a score is calculated for each saved set and all saved sets are sorted before the highest - scoring sets are output to a text file , finalout.txt , a subset of which is shown in figure 1d .
if more than 10  000 sets are found and the enzyme stringency is set to 
automatic , it is incremented by 10% ( decreasing the number of passing enzymes and thus enzyme sets ) and the analysis is repeated .
the final output reports and summarizes those enzyme sets that best discriminated the sequence groups .
the final output consists of three parts :  successful enzyme sets ,  enzyme picker key , and  quick overview. the successful enzyme sets ( figure 1d.1 ) consist of a list of enzyme groups in each set , and a score indicating the frequency with which each set discriminated the sequence groups . a perfect enzyme ( one that discriminates 100% of the sequence groups ) contributes a score of 1 , so four perfect enzymes would produce the maximum score of 4 .
the enzyme picker key ( figure 1d.2 ) lists the members of each enzyme group , with neoschizomers separated by brackets .
each member of an enzyme group produces the same sequence group differentiation pattern but may differ in recognition site , terminal fragment lengths , etc . the quick overview ( figure 1d.3 )
after submission the program generally takes less than 1  min to complete , depending most heavily on the number of sequence groups , the number of enzymes selected and the server load , respectively .
the final choice of restriction enzymes is left to the researcher , and is likely to be based on practical factors such as cost , availability , reaction conditions , methylation sensitivity or requirements , star activity and other specifics that are detailed at rebase .
an online manual detailing usage and options , bug tracking and the source code ( open and accessible under the gnu public license v.2 ) are available at http://code.google.com/p/repk .
the user must provide a trimmed fasta - formatted file with nucleotide sequences beginning at the 5-end of the labeled primer used for pcr amplification and ending at the 5-end of the unlabeled primer .
sequence groups can be designated in the description line of the fasta file , by using a delimiter to separate taxonomic rank terms or optionally taxonomic identifications can be prepended to the description line using an output file from rdp - classifier ( 31 ) .
figure 1a shows a subset of the example sequence file provided on the website , alignment5.txt .
sequence groups are separated by a single underscore , and in this example  taxonomic rank 1 was chosen , corresponding to the genus of these archaea .
a selectable list of commercially available enzymes from the latest rebase database ( 27 ) is available and is automatically updated on the first day of each month .
the enzymes available for selection include primarily type iip enzymes , which have symmetric recognition sequences and cleavage sites .
restriction enzymes of type iia ( having asymmetric recognition sequences ) and type iib ( cleaving both sides of the recognition sequence on both strands ) are at the present time not supported by repk , although some are included in a separate enzyme file for advanced users willing to perform some manual processing .
users should be aware that some enzymes in the rebase database may not be suitable for t - rflp due to methylation specificities or requirements for multiple restriction sites to be present for effective digestion .
finally , users can define their own custom enzymes if they are not included in the standard list .
the default ( all standard enzymes ) was used for the example in figure 1 . for computational efficiency isoschizomers
some of these , the minimum and maximum allowable fragment lengths and the maximum difference in size between two fragments that will still be considered the 
same fragment , will be dependent on the specifications and resolving power of particular capillary electrophoresis systems .
users can also set the minimum threshold for the number of groups each enzyme must be able to discriminate on its own ( the enzyme stringency ) , and the number of groups allowed to remain undifferentiated in the case that no  perfect enzyme groups are discovered .
sequences are first digested in both orientations by all selected enzymes to find the shortest labeled restriction fragment ; these lengths are output as a table ( and a downloadable tab - delimited text file , fragfile.csv ) , a subset of which is shown in figure 1b . in this example , the sequences were cut by every enzyme except aasi , which resulted in full - length fragments .
next , all terminal fragment lengths are binned within the chosen cut - off ( here 5 bp ) and a binary matrix of pairwise group differentiations is created .
bins containing a single sequence group yield a  1 , while bins containing more than one sequence group yield a 
0 , indicating no differentiation between those groups . in the example in figure 1 ,
banii failed to distinguish between sequence groups sulfurisphaera and thermofilum because the difference between their fragment lengths ( 1 bp ) was less than the chosen cutoff of 5 bp ( figure 1b ) .
however , asplei did distinguish between those groups because the difference in fragment lengths was 188 bp .
it is not necessary for sequences from the same sequence group to have similar fragment lengths ( e.g. sulfolobus ) .
fragment lengths outside the boundaries set by the minimum and maximum fragment length options are binned together without regard for their actual lengths , decreasing the number of sequence groups discriminated by those enzymes ( e.g. bmii ) .
the enzyme stringency filter is then applied to this matrix , allowing only enzymes that discriminate at least the specified fraction of sequence groups to proceed .
the passing enzymes are output as a table ( and a downloadable tab - delimited text file , enzmatrix.csv ) , a subset of which is shown in figure 1c . for computational efficiency , the enzymes are then sorted into 
enzyme bins that produce identical differentiation patterns , although they may not produce the same terminal fragment lengths . in this example , neoschizomers asplei and glai produce different fragment lengths but the same differentiation pattern so they were grouped together for the final analysis .
it is important to note that the enzyme bins are dependent on the particular sequence file and taxonomic rank selected for the analysis .
that is , two enzymes may have equal discriminatory power for a particular set of sequence groups but for a different set of sequences , one enzyme may be much better and the two enzymes would be placed in the same bin in the first but not the second case . finally , groups of four enzymes ( a  set ) are logically summed ( e.g. 101 + 011 = 111 ) to determine the coverage of the set , i.e. the number of sequence groups discriminated by the enzymes in the set .
if this number is greater than the total number of sequence groups ( less than the max . missing groups , here 0 ) then the set is saved .
a score is calculated for each saved set and all saved sets are sorted before the highest - scoring sets are output to a text file , finalout.txt , a subset of which is shown in figure 1d .
if more than 10  000 sets are found and the enzyme stringency is set to 
automatic , it is incremented by 10% ( decreasing the number of passing enzymes and thus enzyme sets ) and the analysis is repeated .
the final output reports and summarizes those enzyme sets that best discriminated the sequence groups .
the final output consists of three parts :  successful enzyme sets ,  enzyme picker key , and  quick overview. the successful enzyme sets ( figure 1d.1 ) consist of a list of enzyme groups in each set , and a score indicating the frequency with which each set discriminated the sequence groups . a perfect enzyme
( one that discriminates 100% of the sequence groups ) contributes a score of 1 , so four perfect enzymes would produce the maximum score of 4 .
the enzyme picker key ( figure 1d.2 ) lists the members of each enzyme group , with neoschizomers separated by brackets .
each member of an enzyme group produces the same sequence group differentiation pattern but may differ in recognition site , terminal fragment lengths , etc .
the quick overview ( figure 1d.3 ) histogram summarizes the frequency with which each enzyme group appears in the printed results . after submission
the program generally takes less than 1  min to complete , depending most heavily on the number of sequence groups , the number of enzymes selected and the server load , respectively . the final choice of restriction enzymes
is left to the researcher , and is likely to be based on practical factors such as cost , availability , reaction conditions , methylation sensitivity or requirements , star activity and other specifics that are detailed at rebase .
an online manual detailing usage and options , bug tracking and the source code ( open and accessible under the gnu public license v.2 ) are available at http://code.google.com/p/repk .
we found that researchers often failed to report their rationale in choosing a particular set of restriction enzymes for t - rflp analysis , yet this choice is crucial for resolving the microbial community and interpreting the results .
we provide repk in the hope that it will allow microbial ecologists to maximize their ability to discriminate terminal restriction fragments obtained during t - rflp and thereby take greater advantage of this powerful community fingerprinting technique .
 terminal restriction fragment length polymorphism ( t - rflp ) analysis is a widespread technique for rapidly fingerprinting microbial communities . 
 users of t - rflp frequently overlook the resolving power of well - chosen restriction endonucleases and often fail to report how they chose their enzymes . 
 repk ( restriction endonuclease picker ) assists in the rational choice of restriction endonucleases for t - rflp by finding sets of four restriction endonucleases that together uniquely differentiate user - designated sequence groups . with repk 
 , users can provide their own sequences ( of any gene , not just 16s rrna ) , specify the taxonomic rank of interest and choose from a number of filtering options to further narrow down the enzyme selection . 
 bug tracking is provided , and the source code is open and accessible under the gnu public license v.2 , at http://code.google.com/p/repk . 
 the web server is available without access restrictions at http://rocaplab.ocean.washington.edu/tools/repk . 
INTRODUCTION
SITE USAGE AND EXAMPLES
User input
Program operations
CONCLUSIONS