A method of predicting the phenotypic characteristics for an individual organism, comprising: accessing, by a processor, genomic data of a number of individual organisms comprising at least one subject and a background population; identifying, by the processor, a number of variant sites in the genomic data for the at least one subject in view of the background population; for each identified variant site: retrieving, by the processor, from a first data repository by the processor, a strength-of-effect on at least one phenotype associated with the identified variant site; retrieving, by the processor, from a second data repository by the processor, a degree of association with an ontological term associated with the identified variant site; and determining, by the processor, that the identified variant site is relevant when a weighted sum of a score for the strength-of-effect and a score for the degree of association with the ontological term is above a threshold amount; for each relevant variant site: forming, by the processor, a matrix for the at least one phenotype, the matrix having a plurality of cells with each cell scored to indicate a distance comparing the degree of match between the at least one subject and each individual organism in the number of individual organisms to determine distances between the at least one subject and the background population for the at least one phenotype; and generating, by the processor, a report for the at least one subject which includes relevant variants which have statistical differences from the background population by generating, by the processor, a spectral clustering score by transforming the matrix into a similarity matrix using a Gaussian kernel G determined by the formula: G x σ = exp − x 2 σ 2 where σ = max x 2; from the similarity matrix, solving an eigenproblem by obtaining the Laplacian to generate a plurality of eigenvectors; selecting the first N smallest eigenvectors; and using the selected eigenvectors to partition into clusters via standard K-means clustering. accessing, by a processor, genomic data of a number of individual organisms comprising at least one subject and a background population; identifying, by the processor, a number of variant sites in the genomic data for the at least one subject in view of the background population; retrieving, by the processor, from a first data repository by the processor, a strength-of-effect on at least one phenotype associated with the identified variant site; retrieving, by the processor, from a second data repository by the processor, a degree of association with an ontological term associated with the identified variant site; and determining, by the processor, that the identified variant site is relevant when a weighted sum of a score for the strength-of-effect and a score for the degree of association with the ontological term is above a threshold amount; forming, by the processor, a matrix for the at least one phenotype, the matrix having a plurality of cells with each cell scored to indicate a distance comparing the degree of match between the at least one subject and each individual organism in the number of individual organisms to determine distances between the at least one subject and the background population for the at least one phenotype; and generating, by the processor, a report for the at least one subject which includes relevant variants which have statistical differences from the background population by generating, by the processor, a spectral clustering score by transforming the matrix into a similarity matrix using a Gaussian kernel G determined by the formula: G x σ = exp − x 2 σ 2 where σ = max x 2; from the similarity matrix, solving an eigenproblem by obtaining the Laplacian to generate a plurality of eigenvectors; selecting the first N smallest eigenvectors; and using the selected eigenvectors to partition into clusters via standard K-means clustering. transforming the matrix into a similarity matrix using a Gaussian kernel G determined by the formula: G x σ = exp − x 2 σ 2 where σ = max x 2; from the similarity matrix, solving an eigenproblem by obtaining the Laplacian to generate a plurality of eigenvectors; selecting the first N smallest eigenvectors; and using the selected eigenvectors to partition into clusters via standard K-means clustering.