Research Article

Efficient Haplotype Block Partitioning and Tag SNP Selection Algorithms under Various Constraints

Algorithm 1

The exhaustive searching algorithm for tag SNP selection.
FINDTAG( )   Find the number of tag SNPs required for haplotype block
       such that percentage of unambiguous haplotypes in can be
        distinguished uniquely.
Input: A percentage and haplotype block with unambiguous haplotype pattern
   ; the haplotypes number in each pattern is .
Output: The tag SNPs required for haplotype block .
(1) Sort haplotype patterns in .
   ’s are listed in decreasing order of the number of haplotype strings.
(2)    is the number of percentage of unambiguous haplotypes.
(3) Find the minimum number such that
(4)    is the minimum number of tag SNPs required.
(5) for     to     do initiate the tag SNP loci set .
(6)   
(7)
(8) while     do    is the total haplotype strings that can be distinguished.
(9)     generate the next -combination in lexicographic order.
(10)  while     do    is the length of haplotype string.
(11)     
(12)   if  
(13)    
(14)   for     to     do
(15)     
(16)   else
(17)    
(18)   for     to     do
(19)     
(20)    , is the haplotype that can be distinguished by tag SNP.}
(21) return