1. A method of identifying an isoform, the method comprising: representing, using a computer system comprising a processor coupled to a non-transitory memory, each of a plurality of exons and introns from a genome as a node; using the processor to create, for each pair of the plurality of exons and introns, an edge connecting the two members of the pair by their proximal ends, thereby creating a directed acyclic data structure representing substantially all possible splice variants of the plurality of exons and introns wherein each pair of nodes is directly connected by at least one edge with no intervening nodes between that pair of nodes along that edge; storing the nodes and the edges as the directed acyclic data structure in the memory obtaining a plurality of sequence reads from a transcriptome; and using the processor to align the plurality of sequence reads from the transcriptome to a path comprising a subset of the exons and introns connected by a subset of the edges, thereby identifying an isoform corresponding to the path.