A method of identifying cancer-induced genetic mutations, comprising: using a processor coupled to a non-transitory computer-readable medium to perform: obtaining a first nucleic acid sequence corresponding to a nucleic acid in a non-cancerous sample from a subject; identifying differences between the first nucleic acid sequence and a selected reference sequence; representing, in the non-transitory computer-readable medium, the identified differences between the first nucleic acid sequence and the selected reference sequence as two or more alternative paths in a first reference directed acyclic graph comprising nodes, each node representing one or more characters, wherein each alternative path is placed at a position in the first reference DAG where there is a difference between the first nucleic acid sequence and the reference sequence, wherein each alternative path is created by breaking the reference sequence into nodes before and after the identified difference, and creating a path between the nodes that represents the reference sequence and another path between the nodes representing the identified difference, thereby creating a DAG against which nucleic acid reads can be aligned; aligning one or more sequence reads from a second sequence corresponding to a cancerous sample from the subject to the first reference DAG, wherein the aligning considers the two or more alternative paths by looking backward to any prior nodes on the first reference DAG to find a maximum score for the one or more sequence reads; and identifying, based on the aligned one or more sequence reads to the first reference DAG, differences between the second sequence and the first reference DAG as new mutations correlated with the cancer. obtaining a first nucleic acid sequence corresponding to a nucleic acid in a non-cancerous sample from a subject; identifying differences between the first nucleic acid sequence and a selected reference sequence; representing, in the non-transitory computer-readable medium, the identified differences between the first nucleic acid sequence and the selected reference sequence as two or more alternative paths in a first reference directed acyclic graph comprising nodes, each node representing one or more characters, wherein each alternative path is placed at a position in the first reference DAG where there is a difference between the first nucleic acid sequence and the reference sequence, wherein each alternative path is created by breaking the reference sequence into nodes before and after the identified difference, and creating a path between the nodes that represents the reference sequence and another path between the nodes representing the identified difference, thereby creating a DAG against which nucleic acid reads can be aligned; aligning one or more sequence reads from a second sequence corresponding to a cancerous sample from the subject to the first reference DAG, wherein the aligning considers the two or more alternative paths by looking backward to any prior nodes on the first reference DAG to find a maximum score for the one or more sequence reads; and identifying, based on the aligned one or more sequence reads to the first reference DAG, differences between the second sequence and the first reference DAG as new mutations correlated with the cancer.