Patent Publication Number: US-2020286588-A1

Title: Systems and methods for reconciling variants in sequence data relative to reference sequence data

Description:
RELATED APPLICATIONS 
     This Application is a Continuation of U.S. application Ser. No. 15/208,656, filed Jul. 13, 2016, entitled “SYSTEMS AND METHODS FOR RECONCILING VARIANTS IN SEQUENCE DATA RELATIVE TO REFERENCE SEQUENCE DATA,” the entire contents of which is incorporated herein by reference in its entirety. 
    
    
     FIELD 
     Aspects of the technology described herein relate to analysis of genetic sequence data to identify variants in the sequence data relative to reference genetic sequence data. 
     BACKGROUND 
     Advances in sequencing technology, including the development of next generation DNA sequencing methods, have made sequencing an important tool used both in research and in medicine. Some applications of sequencing technology include aligning the sequence data obtained by sequencing techniques against reference sequence data, and identifying the differences, sometimes termed “variants,” between the sequence data and the reference sequence data. In turn, the identified differences may be used for diagnostic, therapeutic, research, and/or other purposes. 
     A variant identification technique, sometimes referred to herein as a “variant caller,” is a technique for identifying differences between sequence data and the reference sequence data to which the sequence data may be aligned. A variant identification technique may identify one or multiple types of variants such as, for example, a single nucleotide polymorphism or SNP (e.g., where a single nucleotide in the sequence data differs from a corresponding nucleotide in the reference sequence data to which it is aligned), an insertion (e.g., where the sequence data includes one or more nucleotides not present in the reference sequence data to which it is aligned), and a deletion (e.g., where the sequence data does not include one or more nucleotides present in the reference sequence to which it is aligned). Multiple different variant identification techniques are used including the Genome Analysis Tool Kit HaplotypeCaller (GATK-HC), GATK UnifiedGenotyper, SAMtools mpileup, FreeBayes, Ion Proton Variant Caller, SNPSVM, and Atlas 2. These variant callers differ in their approach to identifying variants. 
     A variant identification technique may identify one or more variants incorrectly. An incorrect variant call may be due to one or multiple sources of error including, but not limited to, errors in sample processing (e.g., errors due to DNA polymerase infidelity during replication), errors in sequencing (which may be random or systematic in nature), and errors associated with aligning the sequence data (e.g., sequence reads obtained by sequencing a sample) to reference sequence data (e.g., a reference genome). As such, some differences between sequence data and reference sequences data may result from one or multiple errors occurring during the process of obtaining the sequence data from a genetic sample and aligning the obtained sequence to the reference sequence data, and, therefore, may not be actual differences between the nucleotide sequence in the genetic sample and the reference sequence data. 
     SUMMARY 
     Some embodiments are directed to a system for identifying variations in sequence data relative to reference sequence data. The system comprises at least one computer hardware processor; and at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by the at least one computer hardware processor, cause the at least one computer hardware processor to perform: accessing information specifying multiple sets of variants in the sequence data relative to reference sequence data, each of the multiple sets of variants being generated by using a respective variant identification technique; and determining, using the information specifying the multiple sets of variants in the sequence data, a reconciled set of variants in the sequence data relative to the reference sequence data. The determining comprises determining whether a first variant is present at a first position in the sequence data based, at least in part, on one or more variants at one or more other positions in the sequence data. 
     Some embodiments are directed to a method for identifying variations in sequence data relative to reference sequence data. The method comprises using at least one computer hardware processor to perform: accessing information specifying multiple sets of variants in the sequence data relative to the reference sequence data, each of the multiple sets of variants being generated by using a respective variant identification technique; and determining, using the information specifying the multiple sets of variants in the sequence data, a reconciled set of variants in the sequence data relative to the reference sequence data. The determining comprises determining whether a first variant is present at a first position in the sequence data based, at least in part, on one or more variants at one or more other positions in the sequence data. 
     Some embodiments are directed to at least one non-transitory computer-readable storage medium storing processor-executable instructions that, when executed by at least one computer hardware processor, cause the at least one computer hardware processor to perform: accessing information specifying multiple sets of variants in sequence data relative to reference sequence data, each of the multiple sets of variants being generated by using a respective variant identification technique; and determining, using the information specifying the multiple sets of variants in the sequence data, a reconciled set of variants in the sequence data relative to the reference sequence data. The determining comprises determining whether a first variant is present at a first position in the sequence data based, at least in part, on one or more variants at one or more other positions in the sequence data. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       Various aspects and embodiments will be described with reference to the following figures. The figures are not necessarily drawn to scale. 
         FIG. 1  is a diagram of an illustrative data processing pipeline for identifying a set of variants in sequence data relative to reference sequence data by using multiple variant identification techniques, in accordance with some embodiments of the technology described herein. 
         FIG. 2  is another diagram of an illustrative data processing pipeline for identifying a set of variants in sequence data relative to reference sequence data by using multiple variant identification techniques, in accordance with some embodiments of the technology described herein. This figure includes SEQ ID NO: 1. 
         FIG. 3  is a flow chart of an illustrative process for identifying a set of variants in sequence data relative to reference sequence data by combining results obtained using multiple variant identification techniques, in accordance with some embodiments of the technology described herein. 
         FIG. 4  is a flow chart of an illustrative process for generating, from multiple sets of variants identified by respective variant identification techniques, a reconciled set of variants specifying variants in sequence data relative to reference sequence data, in accordance with some embodiments of the technology described herein. 
         FIG. 5A  is a flow chart of another illustrative process for generating, from multiple sets of variants identified by respective variant identification techniques, a reconciled set of variants specifying variants in sequence data relative to reference sequence data, in accordance with some embodiments of the technology described herein. 
         FIG. 5B  is a diagram of an illustrative graph of variant calls, in accordance with some embodiments of the technology described herein. This figure depicts SEQ ID NO: 1. 
         FIG. 5C  shows the illustrative graph of variant calls of  FIG. 5B  together with scores assigned to the nodes of the graph, in accordance with some embodiments of the technology described herein. This figure includes SEQ ID NO: 1. 
         FIG. 5D  shows a minimum cost path, identified in the graph of variant calls of  FIG. 5B , indicating a reconciled set of variant calls, in accordance with some embodiments of the technology described herein. 
         FIG. 6  is a block diagram of an illustrative computer system that may be used in implementing some embodiments of the technology described herein. 
     
    
    
     DETAILED DESCRIPTION 
     The inventors have appreciated that conventional variant identification techniques may be improved upon. Applying different conventional variant identification techniques to the same sequence data may produce different and inconsistent results. For example, different variant callers may identify different variants at the same position in the sequence data. As another example, one variant caller may detect the presence of a variant at a position, but another variant caller may not identify any variant at that position. On the other hand, there is no single variant identification technique that is universally preferred over others by practitioners, as some variant identification techniques are better at identifying one type of variant (e.g., SNPs) while other variant identification techniques are better at identifying another type of variant (e.g., insertions and deletions). Consequently, a person (e.g., a researcher, a scientist, a doctor, etc.) wishing to identify variants in sequence data either has to use a single variant identification technique, which may not be the best technique for identifying all types of variants, or use multiple variant identification techniques, which may provide different and inconsistent results. The inventors have appreciated that neither of these options is appealing. 
     Accordingly, the inventors have developed techniques for combining multiple sets of variants identified by different variant identification techniques (i.e., “variant calls,” or “called variants”) to obtain a “best effort” list of variants in the sequence data relative to reference sequence data. These developed techniques, which are described herein, reconcile any differences and/or inconsistencies among the variants identified by multiple variant callers to produce a single reconciled set of variants in the sequence data relative to the reference sequence data. 
     Although attempts have been made at combining output of multiple variant callers, these approaches were either manual (which is expensive, time-intensive, and does not scale) or myopic in the sense that results generated by multiple variant callers were combined at a particular position in the sequence data without taking into account variants identified at one or more other positions in the sequence data by any of the variant callers. For example, one conventional myopic approach to combining variant calls from multiple variant callers is to use a voting scheme by which a variant is determined to occur at a particular position in the sequence data based solely on whether a majority of the multiple variant callers have identified this variant at this particular position. The votes of the multiple variant callers may be weighted equally or not, but a combined call at the particular position does not depend on the variants identified by any of the variant callers (whose results are being combined) at any other position. By contrast, the techniques described herein are automated and not myopic—when these techniques are used to determine whether a variant is present at a particular position the sequence data, that determination is made based, at least in part, on one or more variants identified at one or more other positions in the sequence data. The inventors have recognized the presence of a particular type of variant at a particular position (e.g., position n) may provide information about the type of variant (if any) likely present at another position (e.g., position n−2, n−1, n+1, n+2, etc.). Unlike conventional myopic techniques, the techniques developed by the inventors for combining results obtained by multiple different variant callers can take advantage of such information, which leads to improved overall performance. 
     Some embodiments described herein address all of the above-described issues that the inventors have recognized with conventional variant identification techniques. However, not every embodiment described herein addresses every one of these issues, and some embodiments may not address any of them. As such, it should be appreciated that embodiments of the technology described herein are not limited to addressing all or any of the above-discussed issues of conventional variant identification techniques. 
     Accordingly, some embodiments involve accessing information specifying multiple sets of variants in sequence data relative to reference sequence data (i.e., variant calls), with each of the multiple sets of variants being generated by using a respective variant identification technique, and determining, using the accessed information, a reconciled set of variants in the sequence data relative to the reference sequence data. Determining the reconciled set of variants in the sequence data may include determining whether a variant is present at a particular position in the sequence data based, not only on variants identified by the variant identification techniques at the particular position, but also on one or more variants identified by the variant identification techniques at one or more other (e.g., all) positions in the sequence data. In this way, the techniques, developed by the inventors, for combining results of multiple variant callers are not myopic because they use information about variants identified at multiple different positions to determine whether a variant is present at a particular position in the sequence data. 
     In some embodiments, the sequence data may include one or more sequence reads obtained by sequencing genetic material in a biological sample (e.g., one or more cells obtained from a person, animal, or plant). For example, sequence data may be obtained, at least in part, by applying next generation sequencing technology to a biological sample. Prior to application of variant identification techniques, the sequence data may be aligned to reference sequence data, which, for example, may be a reference genome (e.g., the hg19 or hg39 human reference genomes) or any other reference sequence data relative to which it may be meaningful to identify variants in the sequence data obtained by sequencing the genetic material in the biological sample. The sequence data may be aligned to the reference sequence data in any suitable way, as aspects of the technology described herein are not limited in this respect. After the sequence data is aligned to the reference sequence data, multiple variant identification techniques may be applied to the sequence data and the variants identified (or “called”) by these variant callers may be reconciled using any of the techniques described herein to obtain a reconciled set of variants in the sequence data relative to the reference sequence data. 
     In some embodiments, determining the presence of a variant (in the reconciled set of variants) at a particular position is performed by using a statistical model of variant dynamics across positions of a genomic sequence. The statistical model may encode information indicating the likelihood that a particular type of variant is present at one position in the sequence data given that a variant is present at another (e.g., the preceding or the following) position in the sequence data. As such, the statistical model of variant dynamics may be used to obtain (e.g., access, look up, and/or calculate) a likelihood that a first type of variant is present at a first position in the sequence data given that a second type of variant (which may be the same type of variant as the first type or a different type of variant) is present at a second position in the sequence data. The second position may precede (e.g., immediately precede) or follow (e.g., immediately follow) the first position. Accordingly, use of a statistical model of variant dynamics allows the determination of whether a variant is present at a particular position in the sequence data to be based on one or more variants identified at one or more other positions in the sequence data, which is something that is not possible when using myopic techniques for combining output of multiple variant callers. In some embodiments, the statistical model of variant dynamics may be estimated from simulated and/or actual sequence data. 
     In some embodiments, performance characteristics of one or more of the variant identification techniques whose results are being combined may be used to influence the way in which the results are combined. In this way, when a variant identification technique performs poorly with regard to a particular type of variant (e.g., the technique often misses identifying insertions or deletions that are present, the technique often incorrectly determines that an insertion or a deletion is present, etc.), results produced by the variant identification technique with regard to the particular type of variant may influence the reconciled set of variants less (e.g., by being given less weight) than results produced by other variant identification techniques that perform better with regard to the particular type of variant. For example, in some embodiments, the false negative rate, the true negative rate, the false positive rate, the true positive rate, the precision, the accuracy, the specificity, and/or the sensitivity of one or more variant identification techniques may be used to influence the way in which results produced by the one or more variant identification techniques are used to obtain a reconciled set of variants. 
     In some embodiments, for example, a first set of variants obtained by using a first variant identification technique and a second set of variants obtained by using a second variant identification technique may be combined to generate a reconciled set of variants based, at least in part, on a measure of a true positive rate and/or a false negative rate of the first variant identification technique for a particular type of variant. In some instances, the combination may be made based on a measure of a true positive rate and/or a false negative rate of each of the first and second variant identification techniques for each type of variant. The measure of a true positive rate and/or a false negative rate (or any other suitable performance characteristic) of a variant identification technique may be estimated using simulated and/or actual sequence data. 
     In some embodiments, determining the reconciled set of variants in the sequence data from multiple sets of variants may be performed using any suitable technique that is able to take as input the multiple sets of variants, a statistical model of variant dynamics, and/or performance characteristics of one or more of the variant identification techniques used to obtain the multiple sets of variants being combined. For example, in some embodiments, a forward backward algorithm for hidden Markov models (HMMs) may be used to determine the reconciled set of variants. Additionally or alternatively, belief propagation, a Viterbi algorithm, or any other suitable Bayesian updating algorithm may be used to determine the reconciled set of variants. 
     In some embodiments, determining the reconciled set of variants from multiple sets of variants may be performed using an alignment-based approach in which each variant in the multiple sets is assigned a penalty and the reconciled set of variants is obtained by minimizing the overall penalty of variants selected from the multiple sets of variants. For example, in some embodiments, determining the reconciled set of variants in the sequence data comprises generating a graph of variant calls from the multiple sets of variants being reconciled, assigning costs to nodes in the graph of variant calls based on the penalties associated with the types of variants the nodes represent, and identifying a minimum cost path through the graph of variant calls. In turn, the minimum cost path in the graph indicates the variants that should be in the reconciled set of variants. Because the minimum cost path is identified by minimizing costs across the entire graph, the variants in the reconciled set of variants are identified jointly, rather than independently of one another, as is done by conventional myopic techniques for combining results from multiple variant callers. In this way, the variants identified at one position in the sequence data (e.g., corresponding to a particular point in the path) may influence which variants are identified at another position in the sequence data. 
     In some embodiments, the minimum cost path may be identified using a Smith-Waterman alignment technique subject to one or more constraints. One example of such a constraint is that any variant in the reconciled set of variants must be selected from the multiple sets of variants being reconciled. Enforcing such a constraint produces a reconciled set of variants that does not include any new variants and includes only those variants that were already identified by at least one of the variant callers whose results are being combined. Another example of a constraint is that the reconciled set of variants must be feasible relative to the reference sequence data such that the reconciled set of variants does not include a set of mutually inconsistent variants. For example, no more than one variant may be identified in the reconciled set of variants for a particular position in the sequence data. As another example, overlapping variants may be identified so long as their associated nucleotides are consistent with one another. Aspects of this technique are described in more detail below with reference to  FIGS. 5A-5D . 
     It should be appreciated that the techniques described herein may be used to identify any suitable type of variant including, but not limited to, insertions, deletions, inversions, single nucleotide polymorphisms (SNPs or SNVs), and multi-nucleotide polymorphisms, as aspects of the technology described herein are not limited in this respect. As the techniques described herein may be used to combine multiple sets of variants produced by multiple variant callers, any such technique may be referred to as a “variant caller caller,” a “variant caller combination” technique or a VCC technique. 
     It should be appreciated that the various aspects and embodiments described herein be used individually, all together, or in any combination of two or more, as the technology described herein is not limited in this respect. 
       FIG. 1  is a diagram of an illustrative data processing pipeline  100  for identifying a set of variants in sequence data relative to reference sequence data by using multiple variant identification techniques, in accordance with some embodiments of the technology described herein. As shown in  FIG. 1 , multiple variant identification techniques  104 - 1 ,  104 - 2 , . . . ,  104 - n  may be applied to sequence data  102 , which has been aligned to reference sequence data  103 , to produce respective sets of identified variants (i.e., variant calls)  106 - 1 ,  106 - 2 , . . . ,  106 - n . For example, the set of variants  106 - 1  may be obtained by applying variant identification technique  104 - 1  to sequence data  102  in view of its alignment to reference sequence data  103 . Similarly, the set of variants  106 - 2  may be obtained by applying variant identification technique  104 - 2  to sequence data  102  in view of its alignment to reference sequence data  103 , and the set of variants  106 -n may be obtained by applying variant identification technique  104 - n  to sequence data  102  in view of its alignment to reference sequence data  103 . 
     In turn, a variant caller combination (VCC) technique  108  may be used to determine a reconciled set of variants  112  based, at least in part, on the sets of identified variants  106 - 1 ,  106 - 2 , . . . ,  106 - n . In some embodiments, the VCC technique  108  may determine the reconciled set of variants  112  further based on auxiliary information  110 . The auxiliary information may be any suitable type of information that may facilitate determining a reconciled set of variants from multiple sets of variants. For example, the auxiliary information  110  may include a statistical model of variant dynamics. As another example, the auxiliary information  110  may include information about the performance characteristics (e.g., the false negative rate, the false positive rate, the true negative rate, the true positive rate, the precision, the accuracy, the specificity, the sensitivity, etc.) of one or more of the variant identification techniques  104 - 1 ,  104 - 2 , . . . ,  104 - n  as a whole and/or with respect to one or more types of variants. As yet another example, in embodiments where the variant caller combination technique  108  identifies a low (e.g., minimum) cost path through a graph generated from the identified variants  106 - 1 ,  106 - 2 , . . . ,  106 - n , the auxiliary information may include information indicating penalties associated with one or more types of variants, which in turn may be used to assign costs to nodes in the graph. 
     It should be appreciated that variant caller combination (VCC) technique  108  may be any suitable VCC technique described herein and, for example, may be any of the VCC techniques described with reference to  FIG. 4  and  FIGS. 5A-5D . 
     In some embodiments, the VCC technique  108  does not introduce any new variants that were not already identified by at least one of the variant identification techniques  104 - 1 ,  104 - 2 , . . . ,  104 - n . In this way, each of the variants in the reconciled set of variants  112  is present in at least one or more of the sets of identified variants  106 - 1 ,  106 - 2 , . . . ,  106 - n.    
     The data processing pipeline  100  may be executed using one or multiple processors, as aspects of the technology described herein are not limited in this respect. In some embodiments, for example, each of variant identification techniques  104 - 1 ,  104 - 2 , . . . ,  104 - n  and VCC technique  108  may be executed using one processor and/or one computer. In other embodiments, the variant identification techniques  104 - 1 ,  104 - 2 , . . . ,  104 - n  may be executed on one or more processors and/or computers different from the one or more processors and/or computers used to execute VCC technique  108 . 
     The variant caller combination technique  108  may be used to combine results generated by any suitable number of variant identification techniques. For example, the VCC technique  108  may be used to combine 2, 3, 4, 5, 6, 7, 8, 9, 10, at least two, at least three, at least four, at least five, or at least ten sets of variants produced by respective variant identification techniques. As another example, the VCC technique may be used to combine any number of sets of variants in the range of 2-10 sets of variants, 2-20 sets of variants, 5-50 sets of variants, 10-100 sets of variants, or any other suitable range within a union of the preceding ranges. 
       FIG. 2  is another diagram of an illustrative data processing pipeline  200  for identifying a set of variants in sequence data relative to reference sequence data by using multiple variant identification techniques, in accordance with some embodiments of the technology described herein. As shown in  FIG. 2 , in the pipeline  200 , variant identification technique  204 - 1  is applied to sequence data  202 , which has been aligned to reference sequence data  203 , to obtain the set of variants  206 - 1 . Variant identification technique  204 - 2  is also applied to sequence data  202  to obtain the set of variants  206 - 2 . In turn, variant caller combination technique  208 , which may be any suitable VCC technique described herein, combines variant sets  206 - 1  and  206 - 2 , using auxiliary information  210 , to obtain reconciled set of variants  212 . The auxiliary information  210  may be any suitable information that may facilitate determining a reconciled set of variants from multiple sets of variants and, for example, may include any of the types of auxiliary information described above with respect to data processing pipeline  100  shown in  FIG. 1 . 
     As shown in the illustrative embodiment of  FIG. 2 , reference sequence data  203  includes the nucleotide sequence “CATAGGGTGTA” (SEQ ID NO:  1 ) starting at position  10 . As can be seen from variant set  206 - 1 , variant identification technique  204 - 1  has determined that the sequence data  202  has variants at positions  10 ,  15 , and  19  relative to the reference sequence data  203 . Specifically, variant identification technique  204 - 1  identified that: (1) sequence data  202  includes the sequence GGC starting at position  10 , whereas the reference sequence data  203  includes the sequence “CAT” starting at position  10 , which is a polymorphism of length  3 ; (2) sequence data  202  contains a deletion at position  15  relative to the reference sequence data  203  which contains the sub-sequence “GG” at position  15 ; and (3) sequence data  202  contains the sub-sequence “TC” at position  19  (reflecting an insertion of “C” after the “T”), whereas reference sequence data  203  contains only the sequence “T” starting at position  19 . On the other hand, as can be seen from variant set  206 - 2 , variant identification technique  204 - 2  has determined that the sequence data has variants at positions  11 ,  15 , and  19 . Specifically, variant identification technique  204 - 2  identified that: (1) there is an SNP at position  11  because the sequence data  202  has a “G” at position  11 , whereas the reference sequence has an “A” at the same position; (2) sequence data  202  contains a deletion at position  15  relative to the reference which contains the sub-sequence “GG” at position  15 ; and (3) there is an SNP at position  19  because the sequence data  202  has a “C” at position  19 , whereas the reference sequence  203  has a “T” at the same position. 
     As can be seen from example variant caller results shown in  FIG. 2 , variant identification techniques  204 - 1  and  204 - 2  produce results that agree in some parts (e.g., with respect to the presence of an “G” at position  11  and a deletion at position  15 ) and are inconsistent in other parts (e.g., with respect to calls made at positions  10 ,  12 , and  19 ), which again illustrates the need for the variant caller combination techniques described herein. Application of the VCC technique  208  to the variant sets  206 - 1  and  206 - 2  generates the reconciled set  212 . 
       FIG. 3  is a flow chart of an illustrative process  300  for identifying a set of variants in sequence data relative to reference sequence data by combining results generated by multiple variant identification techniques, in accordance with some embodiments of the technology described herein. Process  300  may be performed by any suitable computing device or devices, as aspects of the technology described herein are not limited by the number of computing devices used to perform process  300 . 
     Process  300  begins at act  302 , where sequence data and reference sequence data are obtained. The sequence data and reference sequence data may be obtained from any suitable source and may be in any suitable format, as aspects of the technology described herein are not limited in this respect. The sequence data may be obtained by sequencing one or more biological samples (e.g., using next generation sequencing and/or any other suitable sequencing technique or technology) and may include sequence reads obtained as a result of the sequencing. The reference sequence data may be a reference genome (e.g., the hg 19  or hg 39  human reference genomes) or any other reference sequence data relative to which it may be meaningful to identify variants in the obtained sequence data. 
     Next, process  300  proceeds to act  304 , where the sequence data is aligned to the reference sequence data. The alignment may be performed using any suitable alignment tool(s) and/or technique(s), as aspects of the technology described herein are not limited in this respect. Non-limiting examples of software tools that may be used to perform alignment in some embodiments include the Bowtie2 alignment tool, the Burrows-Wheeler Aligner (BWA) alignment tool, the CUSHAW3 alignment too, the MOSAIK alignment tool, and the Novoalign alignment tool. Another technique that may be used to perform alignment, in some embodiments, is a technique for aligning sequence reads to a graph described in U.S. Pat. Pub. No. 2015/0057946, titled “METHODS AND SYSTEMS FOR ALIGNING SEQUENCES,” which is incorporated by reference herein in its entirety. 
     Next, process  300  proceeds to act  306 , where multiple variant identification techniques are applied to the sequence data to obtain multiple sets of variants relative to the reference sequence data to which the sequence data was aligned at act  304 . Any suitable number of variant identification techniques may be applied to the sequence data at act  306 . Examples of variant identification techniques that may be applied at act  306  include, but are not limited to, the Genome Analysis Tool Kit HaplotypeCaller (GATK-HC), GATK UnifiedGenotyper, SAMtools mpileup, FreeBayes, Ion Proton Variant Caller, SNPSVM, and Atlas 2. In some embodiments, a variant identification technique may be configurable by setting values for one or more parameters. Another example of a variant-identification technique, which may be used in some embodiments, is a graph-based technique described in U.S. Pat. No. 9,116,866, titled “Methods and Systems for Detecting Sequence Variants,” which is incorporated by reference herein in its entirety. Accordingly, applying multiple variant identification techniques, at act  306 , may include applying a configurable variant identification technique to the sequence data multiple times, but with one or more of the parameter values being changed between applications. 
     In some embodiments, a set of variants generated by a variant identification technique may include information identifying one or more variants occurring in the sequence data relative to the reference sequence data. For a particular variant, such information may identify the type of variant (e.g., an SNP, an insertion, a deletion, etc.), the position of the variant relative to the reference sequence, an indication of the allele where the variant occurs, the length of the variant (e.g., the length of a polymorphism when the variant is a polymorphism, the length of an inserted sequence when the variant is an insertion, the length of a deleted sequence when the variant is a deletion), one or more nucleotides associated with the variant (e.g., the nucleotide in the mutation when the variant is an SNP, the nucleotide(s) in the inserted sequence when the variant is an insertion), and/or any other suitable information. The set of variants generated by a variant identification technique may be in a file conforming to the variant call format (a VCF file) or in any other suitable format, as aspects of the technology described herein are not limited in this respect. 
     Next, process  300  proceeds to act  308 , where a variant caller combination technique is applied to the multiple sets of variants identified at act  306  to generate a reconciled set of variants in the sequence data relative to the reference sequence data. This may be done using any of the techniques described herein, including, for example, the techniques described with reference to  FIGS. 4 and 5 . 
     In some embodiments, the variant caller combination technique used at act  308  may determine whether a first variant is present at a first position in the sequence data based, at least in part, on one or more variants at one or more other positions in the sequence data. For example, the VCC technique used at act  308  may make such a determination by using a statistical model of variant dynamics, which encodes information indicating the likelihood that a particular type of variant is present at one position in the sequence data given that a variant is present at another (e.g., the preceding or the following) position in the sequence data. Using the statistical model of variant dynamics in furtherance of determining whether a variant is present at a particular position allows that determination to be influenced by the variants identified as being present at one or more preceding and/or subsequent positions in the sequence data. 
     As another example, the VCC technique used at act  308  may involve generating a graph of variant calls from the multiple sets of variants being reconciled, assigning costs to nodes in the graph of variant calls, and identifying a low (e.g., minimum) cost path through the graph of variant calls to identify the variants in the reconciled set of variants. Because the low cost path is identified by minimizing costs across the entire graph, the variants in the reconciled set of variants are identified jointly, rather than independently of one another, so that the variants identified at one position in the sequence data may influence which variants are identified at another position in the sequence data. 
       FIG. 4  is a flow chart of an illustrative process  400  for generating, from multiple sets of variants identified by respective variant identification techniques, a single reconciled set of variant calls specifying variants in sequence data relative to reference sequence data, in accordance with some embodiments of the technology described herein. The process  400  may be performed by any suitable number of computing devices of any suitable type, as aspects of the technology described herein are not limited in this respect. 
     Process  400  begins at act  402 , where a statistical model of variant dynamics is obtained. The statistical model of variant dynamics may encode information indicating a likelihood or probability that a particular type of variant is present at one position in the sequence data given that one or more variants are present at one or more other (preceding and/or following) positions in the sequence data. For example, the statistical model of variant dynamics may encode information indicating a likelihood or probability that a variant of type “T 1 ” is present at a particular position (e.g., position n) given that another variant (e.g., a variant of type “T 1 ” or of another type) is present at a preceding position (e.g., position n- 1 , n- 2 , n- 3 , etc.). As another example, the statistical model of variant dynamics may encode information indicating a likelihood or probability that a variant of type “T 1 ” is present at a particular position given that multiple variants of respective types are present at positions preceding the particular position. As yet another example, the statistical model of variant dynamics may encode information indicating a likelihood or probability that a variant of type “T 1 ” is present at a particular position given that one or multiple variants of respective types are present at one or multiple positions following the particular position. 
     In some embodiments, the statistical model of variant dynamics may encode information indicating a likelihood or probability that a variant having one set of characteristics is present at one position in the sequence data given that one or more variants having respective set(s) of characteristics are present at one or more other (preceding and/or following) positions in the sequence. The level of resolution at which the statistical model jointly models the variants may depend on the amount of information in the set of characteristics. Generally, the more information in the set of characteristics, the finer the resolution of the statistical model. One may think of the set of characteristics associated with a variant at a particular position as a “state” of the genomic object this position. 
     For example, the set of characteristics for a variant may include the type of the variant. In such implementations, the statistical model may encode information indicating that a particular type of variant is present at a particular position given that one or more other variants of respective types are present at one or more other positions in the sequence data. As another example, the set of characteristics for a variant may include the type of variant and a length associated with the variant (e.g., the length of an insertion or deletion). In such implementations, the statistical model may encode information indicating that a particular type of variant having a certain length (or of any suitable length) is present at a particular position given that one or more variants of respective types and lengths are present at one or more other positions in the sequence data. As yet another example, the set of characteristics for a variant may include the type of variant and nucleotide information associated with the variant. In such implementations, the statistical model may encode information indicating that a particular type of variant associated with a particular nucleotide sequence is present at a particular position given that one or more variants of respective types and being associated with respective nucleotide sequences are present at one or more other positions in the sequence data. Still other implementations are possible. 
     As the foregoing examples illustrate, a statistical model of variant dynamics may model the dependencies among variants at different levels of resolution. As one example, a statistical model of variant dynamics may model the likelihood or probability that a particular type of variant appears at a particular position based only on the types of other variants appearing at one or more other positions. As another example, a statistical model of variant dynamics at a finer level of resolution may model the likelihood or probability that a variant (of a particular type and, optionally, length) appears at a particular position based on the types and lengths of other variants appearing at one or more other positions. As yet another example, a statistical model of variant dynamics at an even finer level of resolution may model the likelihood or probability that a variant (of a particular type and, optionally, length and associated nucleotide(s)) appears at a particular position based on the types of, lengths of, and associated nucleotide(s) associated with one or more other variants appearing at one or more other positions. It should be appreciated, however, that the greater the resolution of a statistical model of variant dynamics, the greater the amount of data required to estimate such a statistical model reliably. 
     In some embodiments, a statistical model of variant dynamics may be encoded in at least one data structure comprising any of the above-described information and/or any other suitable information. For example, a statistical model of variant dynamics may be encoded in a data structure storing a table or matrix with rows and columns corresponding to different types of variants, such that the value stored at row j and column k of the table or matrix represents the likelihood or probability that a variant of type “k” follows a variant of type “j.” It should be appreciated, however, that a statistical model of variant dynamics is not limited to being encoded in any particular type of data structure(s), as aspects of the technology described herein are not limited in this respect. 
     By way of introducing notation to represent some types of statistical models of variant dynamics, let the set of all possible types of variants be {v ∈ V}, and let there be N positions {1≤n≤N} in the reference sequence data. Let the set V also include the element ϕ representing “no variant.” Let r n   v  represent the event that the true variant at position n is the variant of type v ∈ V. Then, one illustrative type of statistical model of variant dynamics, may be represented by the notation P(r n   v |r n-1   u ). As suggested by this notation, this illustrative type of statistical model of variant dynamics may be used to determine the probability that a variant of type ‘v’ is present at position n given that there is a variant of type ‘u’ (u and v may the same or different types of variants) present at position n- 1 . Because the set V includes the element ϕ, representing “no variant,” this illustrative statistical model of variant dynamics may be also used to determine the probability that a variant of a particular type is present at position n given that no variant is present at position n- 1  and, conversely, a probability no variant is present at position n given that a variant of a particular type is present at position n- 1 . 
     In some embodiments, for much of a given reference genome, the probability of two variations of the same type (such as SNPs) occurring at adjacent loci may be relatively small. For example, P(r n   SNP |r n-1   SNP )&lt;&lt;P(r n   SNP |r 1-1   99 )&lt;&lt;P(r n   ϕ |r n-1   ϕ ). The second inequality follows from the fact that, out of 3 billion bases in the human genome, less than 100 million have been found to be different from the reference. 
     It should be appreciated, however, that there are many types of statistical models of variant dynamics. For example, another type of statistical model of variant dynamics may be represented by the notation P(r n   v |r n-1   u , r n-2   w ). This type of model may be used to determine the probability that a variant of type ‘v’ is present at position n given that a variant of type ‘u’ (or no variant) is present at position n- 1  and a variant of type w (or no variant) is present at position n- 2 . More generally, a causal statistical model of variant dynamics may be used to determine the probability that a variant of type ‘v’ is present at position n given one or more variants present at one or more positions preceding position n. A non-causal statistical model of variant dynamics may be used to determine the probability that a variant of type ‘v’ is present at position n given one or more variants present at one or more different positions (e.g., one or more positions preceding n and/or one or more positions following n). 
     In some embodiments, obtaining the statistical model of variant dynamics at act  402  may include accessing an existing statistical model of variant dynamics. The existing statistical model may have been previously estimated from data. In other embodiments, obtaining the statistical model of variant dynamics at act  402  may include estimating it from data as part of process  400 . 
     A statistical model of variant dynamics may be estimated from data in any suitable way. In some embodiments, for example, a statistical model of variant dynamics may be estimated based on variants previously identified (and, preferably, verified, for example, by hand) in real sequence data relative to reference sequence data. Such an estimate may be obtained, for example, by counting the number of transitions between different types of variants identified in the real sequence data and using the relative frequency of appearance of certain types of variant-to-variant transitions to obtain the probability of transitioning from one type of variant to another. For example, if among the variants identified for real sequence data, the variant of type “T 2 ” follows variant of type “T 1 ” more often than variant of type “T 3 ”, the estimated statistical model may include information indicating that the variant of type “T 2 ” is more likely to occur after variant of type “T 1 ” than is the variant of type “T 3 .” The estimated statistical model may further include information indicating the likelihood or probability of a variant of type “T 2 ” following a variant of type “T 1 ” and the likelihood or probability of a variant of type “T 3 ” following a variant of type “T 1 ,” with these likelihoods or probabilities being estimated based on the frequency of occurrence, in real sequence data, of transitions from variant of type “T 1 ” to variant of type “T 2 ” and of variant of type “T 1 ” to variant of type “T 3 .” 
     After the statistical model of variant dynamics is obtained at act  402 , process  400  proceeds to act  404 , where information specifying multiple sets of variants (i.e., sets of variant calls) in sequence data relative to reference sequence data is accessed. As described herein, each of the multiple sets of variants may be obtained using a respective variant identification technique. The information specifying multiple sets of variants may be obtained from any suitable source and in any suitable format, as aspects of the technology described herein are not limited in this respect. Any suitable number of sets of variants may be obtained at act  404 , as aspects of the technology described herein are not limited in this respect. 
     Next, process  400  proceeds to act  406 , where performance characteristics are obtained for each of one or more of the variant identification techniques used to generate the multiple sets of variants. The performance characteristics of a variant identification technique may include, but are not limited to, the false positive rate, true negative rate, false positive rate, true positive rate, precision, accuracy, specificity, false discovery rate, and/or the sensitivity of the variant identification technique overall across all variant types and/or for each one or more types of variants. 
     In some embodiments, a true positive may correspond to the event that a variant caller correctly determines that a variant is present (e.g., a correct variant allele or position call). A false positive may correspond to the event that a variant caller incorrectly identifies the presence of a variant when none is there (e.g., an incorrect variant allele or position call). A false negative may correspond to the event that a variant caller fails to identify the presence of a variant, where a variant is actually present (e.g., no call). Filtering out ambiguously mapped reads can mitigate FP variant calls due to mapping errors, but may also remove correctly mapped reads with true variants, potentially resulting in false negatives (e.g., incorrect reference genotype). A true negative may correspond to the event that a variant caller correctly determines that no variant is present. 
     In some embodiments, the frequencies of true positives, true negatives, false positives, and false negatives occurring in the results produced by a variant caller may be used to determine some types of performance characteristics of the variant caller. For example, the false positive rate of a variant caller may be obtained as a ratio of the total number of false positives called relative to the sum of the total number of true negatives and false positives called. As another example, the true positive rate of a variant caller (sometimes termed “sensitivity” or “recall”) may be obtained as a ratio of the total number of true positives called relative to the sum of the total number of true positives and false negatives called. As yet another example, the false negative rate of a variant caller may be obtained as a ratio of the total number of false negatives called relative to the sum of the total number of true positives and false negatives called. As yet another example, the true negative rate of a variant caller (sometimes termed “specificity”) may be obtained as a ratio of the total number of true negatives called relative to the sum of the total number of true negatives and false positives called. As yet another example, the precision of a variant caller may be obtained as ratio of the number of true positive calls relative to the sum of the total number of true positive calls and false positive calls. As yet another example, the accuracy of a variant caller may be obtained as a ratio of the sum of the true positive and true negative calls relative to the sum of the total number of true positive calls, true negative calls, false positive calls, and false negative calls. 
     It should be appreciated that the above-described performance characteristics may be used to quantify the performance of a variant caller overall and/or the performance of the variant caller for each of one or more particular types of variants. Thus, for example, one may obtain a false positive rate (and/or any of the other types of performance characteristics described above) for the variant caller with respect to a particular type or types of variants or with respect to all types of variants. 
     In some embodiments, the performance characteristics of one or more of the variant identification techniques used to generate the multiple sets of variants may be obtained by accessing estimated performance characteristics. The estimated performance characteristics may have been previously obtained from data. In other embodiments, obtaining the performance characteristics at act  406  may include estimating the performance characteristics from (simulated and/or actual) data as part of process  400 . 
     In some embodiments, the performance characteristics of one or more of the variant identification techniques may be estimated using simulated data. For example, simulated data may be obtained by starting from a reference genome, adding one or more controlled mutations to create one or more variant genomes, and generating reads from the variant genome(s). A variant identification technique may then be applied to the generated reads. The obtained results may then be analyzed to determine any of the above-describes quantities such as the number (overall or for particular type(s) of variants) of false positives, false negatives, true positives, true negatives, and/or any of the quantities that may be derived therefrom (e.g., false positive rate, false negative rate, true positive rate, true negative rate, etc.). In some embodiments, the performance characteristics may be obtained by using any suitable bioinformatics software for benchmarking variant identification techniques such as, for example, the Mitty software tool (available at http://latticelabs.github.io/Mitty). It should be appreciated that, in some embodiments, the performance characteristics of a variant identification technique may be estimated using real data (which, for example, has been manually verified) in addition to or instead of using simulated data. 
     By way of introducing notation to represent some types of performance characteristics of variant callers, let J={j; 1≤j≤J} be the set of variant callers used to generate the multiple sets of variants obtained at act  406 . For each n ∈ {1 . . . N} and each type of variant v ∈ V, let the quantity δ j   nv  ∈{0,1} take on the value 1 when the j&#39;th variant caller identifies the presence of variation v at position n and take on the value 0 otherwise. Let δ nv  ∈ {0,1} J  represent a J-dimensional binary vector with coordinate j being δ j   nv . Then the quantity P(δ j   v |v)/P(δ j   v ) may represent the true positive rate or the false negative rate of the j&#39;th variant caller for variation v. 
     After the performance characteristics of one or more of the variant identification techniques are obtained at act  406 , process  400  proceeds to act  408 , where a reconciled set of variants is determined using the statistical model of variant dynamics obtained at act  402 , the multiple sets of variants obtained at act  404 , and the performance characteristics obtained at act  406 . Accordingly, in some embodiments, act  408  comprises determining whether there is a variant present at a particular position relative to the reference sequence data based on: (1) the variants identified, in the multiple sets of variants obtained at act  404 , at the particular position; (2) variants identified, in the multiple sets of variants obtained at act  404 , at one or more other positions; (3) the statistical model of variant dynamics obtained at act  402 ; and (4) the performance characteristics obtained at act  406 . 
     In some embodiments, determining whether there is a variant present at a particular position may further include determining the nature of the variant, for example, by determining the type of variant (e.g., an SNP, an insertion, a deletion, etc.), the length of the variant (e.g., the length of a polymorphism when the variant is a polymorphism, the length of an inserted sequence when the variant is an insertion, the length of a deleted sequence when the variant is a deletion), and/or one or more nucleotides associated with the variant (e.g., the nucleotide in the mutation when the variant is an SNP, the nucleotide(s) in the inserted sequence when the variant is an insertion). Such information may be obtained at act  404  in the multiple sets of variants. 
     In some embodiments, determining a reconciled set of variants comprises identifying, based on the statistical model of variant dynamics, the multiple sets of variants, and the performance characteristics, the likely (e.g., the most likely) variants in the sequence data relative to the reference sequence data. This may be done in any suitable way. For example, in some embodiments, the likely variants in the sequence data may be determined iteratively starting from the first (or other suitable initial) position, whereby the most likely variant determined to occur at position n- 1  may be used to aid in determining the most likely variant (if any) at position n. The amount of influence that the presence of variant at position n- 1  has on the determination of presence of another variant at position n may be encoded in the statistical model of variant dynamics. 
     For example, in some embodiments, determining the most likely sequence of variants may include: (1) determining the likelihoods of variants appearing in the first position based on the performance characteristics of the variant callers obtained at act  406 ; (2) determining for each position n&gt;1 and for each variant v ∈ V, the probability P(r n   v |r n-1   u , δ nv ), which is the probability that the true variation at position n is v, given that the true variation at position n- 1  is u and further given the calls δ nv  made by the variant callers (as specified in the multiple variants sets obtained at act  404 ) at position n for variant v; and (3) selecting, as the reconciled set of variants, the sequence of variants that maximizes the product, across all positions n, of the values P(r n   v |r n-1   u , δ nv ) or, equivalently, maximizes the sum of the corresponding log probabilities. 
     In some embodiments, the probabilities P(r n   v |r n-1   u , δ nv ) may be calculated iteratively according to: 
         P ( r   n   v   |r   n-1   u , δ nv )≈ P ( r   n   v   |r   n-1   u )Π j   P (δ j   v   |v )/ P (δ j   v ),
 
     where the term P(r n   v |r n-1   u ) represents a statistical model of variant dynamics (obtained at act  402 ) that provides a probability that there is a variant v at position n given that there is a variant u at position n- 1 , and where the term P(δ j   v |v)/P(δ j   v ) (obtained at act  406 ), inside the product, represents either the true positive or the false negative rate of variant caller j for variant v. In this way, the determination of the most likely set of variants is accomplished by using the statistical model of variant dynamics obtained at act  402  and the performance characteristics obtained at act  406 . The computations may be guided using a grid of variants specified in the multiple sets of variants obtained at act  404 , since only these variants may be part of the set of reconciled variants. 
     In some embodiments, the above-described computations may be computed by using the Viterbi algorithm, using the forward-backward algorithm for hidden Markov models, or any other suitable Bayesian computation technique. Accordingly, in some embodiments, the reconciled set of variants may be determined by using such techniques to identify a most likely set of variants given the statistical model of statistical variation, the multiple sets of variants produced by respective variant identification techniques, and the performance characteristics of these variant identification techniques. 
     In some embodiments, the reconciled set of variants may be determined by using a forward-backward algorithm for hidden Markov models, which algorithm can fuse information from the statistical model of variant dynamics obtained at act  402 , the variants identified in the multiple sets obtained at act  404 , and the performance characteristics obtained at act  406 . After the reconciled set of variants is determined at act  408 , process  400  completes. 
     It should be appreciated that process  400  is illustrative and that there are variations of process  400 . For example, in some embodiments, the order of the acts  402 ,  404 , and  406  may be different than the order illustrated in  FIG. 4 . As another example, although in the illustrated embodiment, the reconciled set of variants is obtained using both a statistical model of variant dynamics and performance characteristics of the variant identification techniques being reconciled, in other embodiments the reconciled set of variants may be obtained by using a statistical model of variant dynamics or performance characteristics of the variant identification techniques being reconciled, but not both. 
       FIG. 5A  is a flow chart of illustrative process  500  for generating, from multiple sets of variants identified by respective variant identification techniques, a single reconciled set of variant calls specifying variants in sequence data relative to reference sequence data, in accordance with some embodiments of the technology described herein. The process  500  may be performed by any suitable number of computing devices of any suitable type, as aspects of the technology described herein are not limited in this respect. 
     Unlike the process  400  described above, which uses a statistical model of variant dynamics to identify the reconciled set of variants via probabilistic (e.g., Bayesian) techniques, the illustrative process  500  involves identifying the reconciled set of variants using alignment-based techniques, as described in more detail below. 
     Process  500  begins at act  502 , where information specifying multiple sets of variants in sequence data relative to reference sequence data is accessed. Each of the multiple sets of variants may be obtained using a respective variant identification technique. The information specifying multiple sets of variants may be obtained from any suitable source and in any suitable format, as aspects of the technology described herein are not limited in this respect. Any suitable number of sets of variants may be obtained at act  502 , as aspects of the technology described herein are not limited in this respect. 
     Next, process  500  proceeds to act  504 , where a graph of variant calls is generated. The generated graph may reflect all the variants in the multiple sets of variants obtained at act  502  relative to the reference sequence data. The graph includes nodes and edges and, in some embodiments, may be a directed acyclic graph. Nodes in the graph may correspond to nucleotides in the reference sequence data or in the variants specified in the multiple sets of variants obtained at act  502 . 
     In some embodiments, the nodes and the edges among them may encode some or all of the nucleotide sequences that may be obtained by modifying the reference sequence based on one or more of the variants in the multiple sets of variants. In such embodiments, an edge in the graph connecting two nodes representing first and second nucleotides may indicate that the first and second nucleotides appear one after the other in at least one nucleotide sequence that may be obtained by modifying the reference sequence based on one or more of the variants in the multiple sets of variants. In this way, the graph of variant calls generated at act  504  may encode (left-to-right) paths relative to the reference sequence. To the extent any left-to-right path deviates from the reference sequence, that deviation reflects a change according to some variant(s) in the multiple sets of variants obtained at act  502 . 
     An illustrative example of a graph of variant calls that may be constructed at act  504  is shown in  FIG. 5B . The graph in  FIG. 5B  was generated by using the reference sequence “CATAGGGTGTA” (SEQ ID NO: 1) (which is part of the reference sequence data  203  described with reference to  FIG. 2 ) and the results  206 - 1  and  206 - 2  obtained by applying variant identification techniques  204 - 1  and  204 - 2 , respectively, to the sequence data  202  in view of the reference sequence data  203 . Left-to-right paths in the graph of  FIG. 5B  indicate nucleotide sequences that may be obtained by modifying the reference sequence based on one or more of the variants in the multiple sets of variants. 
     For example, the feasible sequences that include the nucleotide “A” in the fourth position, include: (1) the sequence that reaches the “A” in the fourth position on the top line by going along the top (this sequence may be denoted as: C-A-T-A); (2) the sequence that reaches the “A” in the fourth position by starting at the top and going down to the “G” and back up to the “T” before reaching the “A” (this sequence may be denoted as: C\G/T-A); and (3) the sequence that follows the bottom nucleotides “GGC” before going up to the “A” in the fourth position (this sequence may be encoded as: G-G-C/A). 
     The inventors recognized that, since the graph of variant calls encodes all the variants identified by the multiple variant callers, each left-to-right path through the graph may correspond to a possible way of reconciling the results generated by the variant callers. Thus, a reconciled set of variants may be identified from the graph of variant calls by identifying a single left-to-right path in the graph of variant calls based on one or more criteria. The inventors have further recognized that one way to identify, in the graph, a left-to-right path that represents the reconciled set of variants is to penalize each candidate path based on the extent of its divergence from the reference sequence (different types of variants may be penalized differently or by the same amount), and identifying, from among the penalized candidate paths, a single left-to-right path in the graph that is: (1) everywhere coincident with at least one of the variant callers&#39; paths; and (2) minimizes the path penalty. 
     Accordingly, in the embodiment illustrated in  FIG. 5A , after a graph of variant calls is generated at act  504 , process  500  proceeds to act  506 , where a cost is assigned to each of one or more nodes in the graph, and subsequently to act  508 , where the assigned costs are used to identify a minimum cost path through the graph. 
     In some embodiments, the cost assigned to a node in the graph of variant calls may be determined based on penalties associated with one or more types of variants. In some instances, the penalties for different types of variants may be different, whereas, in other instances, two different types of variants may incur the same penalty. For example, the penalty for a polymorphism may be different from a penalty for an insertion or a deletion. As another example, the penalty for an insertion may be different from a penalty for a deletion. As yet another example, insertions of different lengths may be penalized differently. As yet another example, deletions of different lengths may be penalized differently. 
     In some embodiments, the penalties to use as part of process  500  may be obtained prior to the execution of process of process  500  and may be accessed as part of act  504 . In other embodiments, the penalties to use part of process  500  may be estimated from data, as part of process  500  (e.g., during act  504 ). Whether or not estimated as part of process  500 , the penalties may be estimated in any suitable way and, for example, may be estimated by counting the frequencies of different types of variations in a corpus of training data comprising variants identified by one or more variant callers on simulated and/or actual data. 
     After the costs are assigned to each of the nodes at act  506 , process  500  proceeds to act  508  where the minimum cost path through the graph is identified. The minimum cost path may be identified using any suitable (e.g., dynamic programming) technique for identifying minimum cost paths in a directed graph, as aspects of the technology described herein are not limited in this respect. In turn, the minimum cost path specifies the reconciled set of variants to output (e.g., as a VCF file or in any other suitable format). After the reconciled set of variants is identified at act  508 , process  500  completes. 
     In some embodiments, a minimum cost path may be identified using a two-part iterative process: (1) a forward pass in which the costs assigned to the nodes are used to compute scores for the nodes, a node&#39;s score representing a cumulative cost of a least-cost path through the graph up to and including the node; and (2) a backwards pass during which the computed scores are used to identify the minimum cost path. 
     In the forward pass, the scores for nodes may be calculated iteratively, left-to-right. A score for a first node (which may be at any position n relative to the reference sequence) may be computed based on penalties associated with different types of variants called (by the variant callers whose results are being combined) at position n and an already-computed score for a second node in the graph located to the left of the first node (at position n- 1  relative to the reference sequence). In some embodiments, this score for the first node may be calculated as a maximum of the following four quantities: 
     (1) the already-computed score for the second node plus a match bonus (a “negative” penalty), if the first and second nodes correspond to consecutive positions in the reference and the nucleotide at the first node matches the corresponding nucleotide in the reference; 
     (2) the already-computed score for the second node plus a mismatch penalty, if the first and second nodes correspond to consecutive positions in the reference and the nucleotide at the first node does not match the corresponding nucleotide in the reference; 
     (3) the already-computed score for the second node plus a deletion penalty, if the first and second nodes do not correspond to consecutive positions in the reference and the path between the first and second nodes implies a deletion; and 
     (4) the already-computed score for the second node plus an insertion penalty, if the two nodes do not correspond to consecutive positions in the reference and the path between the nodes implies an insertion. 
     In some instances, a node in a graph of variant calls may have more than one node to its left, in which case the maximum is taken over the set that includes each of the above-listed four quantities for all those nodes to the left that are consistent with a branch implied by a variant in one of the sets of variants obtained at act  502 . That is, a path may not include a path from node A to node B to node C if there is no single variant identified by one of the variant callers that implies a path from node A to node B to node C. In this sense, the technique may be considered a modified Smith-Waterman algorithm in that the maximum is not taken over all nodes in the graph as in the Smith Waterman algorithm. 
     As one illustrative example of assigning scores to vertices in a graph of variant calls, let the penalties associated with different types of variants be: 2 points for matches, −3 points for insertion and deletion beginnings, −1 point for insertion and deletion extensions, and −2 points for polymorphisms (i.e., mismatches). Applying the above-described score assignment scheme using these penalty values to the graph of variant calls shown in  FIG. 5B  results in the assigned scores shown in  FIG. 5C . A scoring system in which penalties are posited as the logarithm of the empirical frequency of various mutation types (e.g., match, mismatch, insertion, deletion) may be used to obtain the final score that corresponds to the logarithm of the probability of observing all of the variants together. Such a scoring scheme may lead to the discovery of the most likely sequence of variants. 
     After the forward pass is completed, the calculated scores may be used to identify the minimum cost path through the graph. This may be accomplished using any suitable technique (e.g., dynamic programming). Continuing the example of  FIGS. 5B and 5C ,  FIG. 5D  shows a minimum cost path (which scores  3 ), identified in the graph of variant calls of  FIG. 5B , indicating a reconciled set of variant calls, in accordance with some embodiments of the technology described herein. The identified path corresponds to the reconciled set of variants  212  shown in  FIG. 2 . 
     As may be appreciated from the foregoing, the process  500  may be considered a global optimization algorithm that identifies a reconciled set of variant calls as a sequence that minimizes the divergence of the sample genomic sequence from the reference sequence. The minimum cost path identified by process  500  will often be very different from a sequence of locally optimal variant calls, as may be determined by a myopic conventional technique for combining variant calls made by multiple variant callers because such techniques do not take into account the overall cost of all of the local calls made. The minimum cost path may be considered to represent the globally most likely sequence of edit operations needed to convert the reference genome into the sampled genome. The constraints ensure that there is prior evidence for each edit operation, and evidence is prioritized by likelihood of occurrence (e.g., if penalties are estimated as frequencies or log-frequencies on a large corpus of variant calls). 
     An illustrative implementation of a computer system  600  that may be used in connection with any of the embodiments of the disclosure provided herein is shown in  FIG. 6 . The computer system  600  may include one or more processors  610  and one or more articles of manufacture that comprise non-transitory computer-readable storage media (e.g., memory  620  and one or more non-volatile storage media  630 ). The processor  610  may control writing data to and reading data from the memory  620  and the non-volatile storage device  630  in any suitable manner, as the aspects of the disclosure provided herein are not limited in this respect. To perform any of the functionality described herein, the processor  610  may execute one or more processor-executable instructions stored in one or more non-transitory computer-readable storage media (e.g., the memory  620 ), which may serve as non-transitory computer-readable storage media storing processor-executable instructions for execution by the processor  610 . 
     The terms “program” or “software” are used herein in a generic sense to refer to any type of computer code or set of processor-executable instructions that can be employed to program a computer or other processor to implement various aspects of embodiments as discussed above. Additionally, it should be appreciated that according to one aspect, one or more computer programs that when executed perform methods of the disclosure provided herein need not reside on a single computer or processor, but may be distributed in a modular fashion among different computers or processors to implement various aspects of the disclosure provided herein. 
     Processor-executable instructions may be in many forms, such as program modules, executed by one or more computers or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Typically, the functionality of the program modules may be combined or distributed as desired in various embodiments. 
     Also, data structures may be stored in one or more non-transitory computer-readable storage media in any suitable form. For simplicity of illustration, data structures may be shown to have fields that are related through location in the data structure. Such relationships may likewise be achieved by assigning storage for the fields with locations in a non-transitory computer-readable medium that convey relationship between the fields. However, any suitable mechanism may be used to establish relationships among information in fields of a data structure, including through the use of pointers, tags or other mechanisms that establish relationships among data elements. 
     Also, various inventive concepts may be embodied as one or more processes, of which examples have been provided. The acts performed as part of each process may be ordered in any suitable way. Accordingly, embodiments may be constructed in which acts are performed in an order different than illustrated, which may include performing some acts simultaneously, even though shown as sequential acts in illustrative embodiments. 
     All definitions, as defined and used herein, should be understood to control over dictionary definitions, and/or ordinary meanings of the defined terms. 
     As used herein in the specification and in the claims, the phrase “at least one,” in reference to a list of one or more elements, should be understood to mean at least one element selected from any one or more of the elements in the list of elements, but not necessarily including at least one of each and every element specifically listed within the list of elements and not excluding any combinations of elements in the list of elements. This definition also allows that elements may optionally be present other than the elements specifically identified within the list of elements to which the phrase “at least one” refers, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, “at least one of A and B” (or, equivalently, “at least one of A or B,” or, equivalently “at least one of A and/or B”) can refer, in one embodiment, to at least one, optionally including more than one, A, with no B present (and optionally including elements other than B); in another embodiment, to at least one, optionally including more than one, B, with no A present (and optionally including elements other than A); in yet another embodiment, to at least one, optionally including more than one, A, and at least one, optionally including more than one, B (and optionally including other elements); etc. 
     The phrase “and/or,” as used herein in the specification and in the claims, should be understood to mean “either or both” of the elements so conjoined, i.e., elements that are conjunctively present in some cases and disjunctively present in other cases. Multiple elements listed with “and/or” should be construed in the same fashion, i.e., “one or more” of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the “and/or” clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, a reference to “A and/or B”, when used in conjunction with open-ended language such as “comprising” can refer, in one embodiment, to A only (optionally including elements other than B); in another embodiment, to B only (optionally including elements other than A); in yet another embodiment, to both A and B (optionally including other elements); etc. 
     Use of ordinal terms such as “first,” “second,” “third,” etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed. Such terms are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term). 
     The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” “having,” “containing”, “involving”, and variations thereof, is meant to encompass the items listed thereafter and additional items. 
     Having described several embodiments of the techniques described herein in detail, various modifications, and improvements will readily occur to those skilled in the art. Such modifications and improvements are intended to be within the spirit and scope of the disclosure. Accordingly, the foregoing description is by way of example only, and is not intended as limiting. The techniques are limited only as defined by the following claims and the equivalents thereto.