1. A computer implemented method for further approximating multiple allele vectors of a Genome-Wide-Association Study (GWAS) dataset, the multiple allele vectors being initially approximated by one or more principle components stored on computer memory, the method comprising: receiving the GWAS dataset from a genome sequence; storing the multiple allele vectors of the GWAS dataset in a discrete and sparse form by storing only locations of non-zero elements in computer memory, the non-zero elements indicative of differences to majority alleles and the discrete form comprises a selection of elements from an alphabet; performing by a computer processor multiple iterations of determining an updated estimate of a further principle component based on the multiple allele vectors in the discrete and sparse form that are initially approximated by the one or more stored principle components, and storing the updated estimate on computer memory such that the updated estimate of the further principal component further approximates the GWAS dataset, wherein in each iteration determining the updated estimate of the further principle component comprises constraining the updated estimate of the further principal component to be orthogonal to each of the one or more stored principal components, wherein the method further comprises determining a first linear combination of the multiple allele vectors in the discrete and sparse form, wherein determining the updated estimate of the further principle component based on the multiple allele vectors in the discrete and sparse form is based on the first linear combination of the multiple allele vectors, wherein the method further comprises determining a score based on a second linear combination of the multiple allele vectors in the discrete and sparse form, wherein the first linear combination is based on the score and the second linear combination is based on the updated estimate of the further principal component, and wherein performing multiple iterations of determining the updated estimate of the further principle component comprises repeating the steps of determining the updated estimate of the further principal component based on the score and of determining the score based on the updated estimate of the further principal component to iteratively update the score and the estimate of the further principal component until a convergence criterion is met and then storing the updated estimate of the further principle component by adding the updated estimate of the further principal component to the one or more principal components stored on the computer memory.