GENETIC FILTRATION NETWORKS TO DISCOVER POPULATIONS OF INTEREST

MX434597BActive Publication Date: 2026-06-12ANCESTRY COM DNA LLC

Patent Information

Authority / Receiving Office
MX · MX
Patent Type
Patents
Current Assignee / Owner
ANCESTRY COM DNA LLC
Filing Date
2020-12-18
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

Existing technologies struggle to efficiently discover and analyze genetic communities and admixed populations based on genetic relationships, particularly in identifying and classifying individuals with mixed ethnic origins.

Method used

A computer server generates a graph representing individuals and their genetic relationships, filters the data based on edge and node features, and applies community detection algorithms to identify and classify individuals into genetic communities and sub-communities using IBD networks and machine learning models.

Benefits of technology

The system effectively discovers and classifies genetic communities, refining population structures by identifying previously undetectable populations and accurately assigning mixed individuals to multiple ethnic communities, enhancing the precision of genetic community detection.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

The present invention relates to a computer-implemented method for discovering and filtering genetic communities with respect to a target time frame from biological samples using a machine learning model, characterized in that it comprises: retrieving a plurality of genetic datasets corresponding to a plurality of individuals; generating a complete graph, wherein the complete graph comprises a plurality of nodes, each node representing one of the individuals, wherein two or more nodes are connected via edges, each edge connecting two nodes and associated with a weight derived from the affinity between the genetic datasets of the two individuals represented by the two nodes; determining the target time frame by means of the machine learning model and using the length of genetic segments shared by identity by descent (IBD) of the two individuals;filtering the entire graph based on the target timeframe to generate a filtered graph comprising a subset of nodes; and dividing the subset of nodes in the filtered graph into a plurality of clusters based on the weights of the edges connecting the nodes in the subset, wherein each cluster represents a genetic community with respect to the target timeframe, wherein dividing the subset of nodes comprises: defining a plurality of partitions in the filtered graph, wherein each partition represents a candidate genetic community; determining a measure for the plurality of partitions, wherein the measure is a value that is increased by the weights of the edges connecting two nodes that are classified into the same partition and decreased by the weights of the edges connecting nodes in one partition to nodes in another partition;and adjust the plurality of partitions to increase the value of the measure, wherein the adjusted partitions are the groupings in the plurality of groupings, wherein each grouping represents a genetic community with respect to the target time frame.;
Need to check novelty before this filing date? Find Prior Art

Description

GENETIC FILTRATION NETWORKS TO DISCOVER POPULATIONS OF INTEREST CROSS REFERENCE TO RELATED APPLICATION This application claims the benefit of U.S. Provisional Patent Application 62 / 687,177 filed on June 19, 2018, which is incorporated herein by reference in its entirety. BACKGROUND OF THE INVENTION The methods described refer to the evaluation of populations in which variants of interest may have arisen and spread, and the discovery of historical populations based on the pattern of genetic relationships between people. Although humans are, genetically speaking, almost completely identical, small differences in human DNA are responsible for some of the variations observed between individuals. The mutation rate of the human genome is estimated to be 1.10Λ-8 per site per generation. This leads to approximately one variant every 300 base pairs. Most mutations that are passed on to offspring are related to single nucleotide polymorphisms (SNPs). An SNP is a single nucleotide substitution that occurs at a specific position in the genome. Understanding population structure from genetic polymorphism data is an important topic in genetics. BRIEF DESCRIPTION OF THE INVENTION The process described herein involves generating a graph that represents individuals and their genetic relationships to discover new genetic communities among different populations and to assign admixed individuals to more than one genetic community. In one embodiment, a computer server performs a method that includes retrieving multiple sets of genetic data corresponding to multiple individuals. The computer server generates data representing a complete graph. The complete graph includes multiple nodes. Each node represents one of the individuals and the corresponding set of genetic data. Two or more nodes are connected by edges. An edge connects two nodes if it is associated with a weight derived from the affinity between the genetic data sets of the two individuals represented by the two nodes.The computer server filters the data representing the complete graph based on one or more features associated with the edges or nodes. The filtered data represents a filtered graph comprising a subset of nodes. The computer server divides the subset of nodes in the filtered graph into a plurality of groups based on the weights of the edges connecting the nodes in the subset. Each group represents a genetic community. In another approach, a computer server retrieves multiple sets of genetic data corresponding to multiple individuals. One of the individuals is a hybrid. The computer server generates data that represents a graph. The graph also includes multiple nodes representing the individuals. Two or more nodes are connected by edges that are associated with weights derived from the affinity between the genetic data sets of the two individuals represented by the two nodes. The plurality of nodes includes a target node representing the hybrid individual and other target nodes representing other individuals. The computer server divides the nodes in the graph into multiple clusters based on the weights of the edges that connect the nodes. The plurality of clusters represents multiple genetic communities.The computer server includes the target node in one or more clusters representing one or more genetic communities. For at least one of the clusters in which the target node is included, the computer server divides the cluster into multiple sub-clusters. The target node can be classified into one or more sub-clusters within each of the one or more clusters. This means that the mixed-race individual is classified into one or more different genetic sub-communities from one or more ethnic backgrounds. In another approach, a computer server retrieves a genetic dataset for a target individual. The computer server retrieves a plurality of reference panel samples. Each reference panel sample represents a reference panel individual. At least some of the reference panel individuals are generated from a filtered IBD network, which is filtered from a full IBD network. The filtered IBD network includes a subset of filtered nodes based on one or more edge or node features. The computer server generates a plurality of IBD affinities associated with the target individual. Each IBD affinity is determined by comparing the target individual's genetic dataset to one of the reference panel samples. The computer server retrieves one or more community classifiers. Each community classifier is a model configured to determine whether an individual belongs to a genetic community.The computer server generates a feature set for each community classifier. This feature set can be generated based on multiple IBD affinities. For each community classifier, the computer server inputs this feature set into the community classifier to determine if the target individual belongs to that genetic community. The computer server then generates a report summarizing one or more genetic communities to which the target individual belongs. BRIEF DESCRIPTION OF THE DRAWINGS FIGURE 1 illustrates a diagram of a system environment of an exemplary computer system, according to a modality. FIGURE 2 is a block diagram of an exemplary computer system architecture, according to a modality. FIGURES 3A and 3B illustrate exemplary Identity by Descendant (IBD) networks, according to a modality. FIGURE 4 illustrates a flowchart representing an exemplary process for filtering an IBD network, according to a modality. FIGURE 5 illustrates an exemplary filtered IBD network, according to a modality. FIGURE 6 is a block diagram illustrating an exemplary process for classifying a birth year of a common ancestor of two individuals to a time frame, according to a modality. FIGURE 7A illustrates a tree diagram for a single-path community detection process. FIGURE 7B illustrates a tree diagram for a multi-path community detection process, according to a modality. FIGURE 8 is a flowchart that represents an exemplary process for carrying out multi-path community detection, according to a modality. FIGURE 9 illustrates a multi-path hierarchy community detection procedure, according to a modality. FIGURE 10 is a flowchart that represents an exemplary process for detecting an individual's ancestral composition, according to a modality. FIGURE 11 is a block diagram of an exemplary computer device, according to one modality. The figures represent various modalities for illustrative purposes only. A person skilled in the art will readily recognize from the following statement that alternative modalities of the structures and methods illustrated herein may be employed without departing from the principles described herein. DETAILED DESCRIPTION OF THE INVENTION Exemplary System Environment Figure 1 illustrates a diagram of a system environment 100 of an exemplary computer server 130, according to one modality. The system environment 100 shown in Figure 1 includes one or more client devices 110, a network 120, a genetic data extraction service server 125, and a computer server 130. In various modalities, the system environment 100 may include fewer components or additional components. The system environment 100 may also include different components. Client devices are one or more computing devices capable of receiving user input as well as transmitting and / or receiving data over a network. Examples of such computing devices include desktop computers, laptops, personal digital assistants (PDAs), smartphones, tablets, wearable electronics (e.g., smartwatches), smart appliances (e.g., smart TVs, smart speakers, smart home hubs), Internet of Things (IoT) devices, or other suitable electronic devices. A client device communicates with other components over the network.In one mode, a client device 110 runs an application that launches a graphical user interface (GUI) for a user of the client device 110 to interact with the computing server 130 through a user interface 115 on the client device. For example, a client device 110 might run a network browser application to enable interactions between the client device 110 and the computing server 130 over the network 120. In another mode, the user interface 115 might take the form of a software application published by the computing server 130 and installed on the user device 110. In yet another mode, a client device 110 interacts with the computing server 130 through an application programming interface (API) running on the client device 110's native operating system, such as iOS or Android. Network 120 provides connections to the components of System 100 through one or more subnetworks, which may include any combination of local and / or wide area networks, using both wired and / or wireless communication systems. In one mode, Network 120 uses standard communication technologies and / or protocols. For example, Network 120 may include communication links using technologies such as Ethernet, 802.11, Worldwide Interoperability for Microwave Access (WiMAX), 3G, 4G, Long-Term Evolution (LTE), 5G, Code Division Multiple Access (CDMA), Digital Subscriber Line (DSL), etc.Examples of network protocols used to communicate over a 120 network include Multiprotocol Label Switching (MPLS), Transmission Control Protocol / Internet Protocol (TCP / IP), Hypertext Transport Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), and File Transfer Protocol (FTP). Data exchanged over a 120 network can be represented using any suitable format, such as Hypertext Markup Language (HTML) or Extensible Markup Language (XML). In some configurations, all or some of the communication links in a 120 network can be encrypted using any suitable technique or techniques, such as Secure Sockets Layer (SSL), Transport Layer Security (TLS), Virtual Private Networks (VPNs), Internet Protocol Security (IPsec), etc. The 130 network also includes packet-switching links and networks such as the Internet. Individuals who may be clients of a company operating computer server 130 provide biological samples for analysis of their genetic data. In one modality, an individual uses a sample collection kit to provide a biological sample (e.g., saliva, blood, hair, tissue) from which the data is extracted. Genetic C / 7R7n / L7nZ / q / YIAI samples are analyzed using nucleotide processing techniques such as amplification and sequencing. Amplification may include polymerase chain reaction (PCR), which can amplify segments of nucleotide samples. Sequencing may include deoxyribonucleic acid (DNA) sequencing, ribonucleic acid (RNA) sequencing, etc. Nucleotide sample sequencing may include Sanger sequencing and massively parallel sequencing, such as various next-generation sequencing (NGS) techniques, including whole-genome sequencing, pyrosequencing, sequencing by synthesis, sequencing by ligation, and semiconductor ion sequencing. The Genetic Data Extraction Service Server 125 receives biological samples from users of the computer server 130.The Genetic Data Extraction Service Server 125 performs sequencing of biological samples and determines the base pair sequences of individuals. Based on the sequencing results, the Genetic Data Extraction Service Server 125 generates genetic data for individuals. This genetic data may include sequenced DNA or RNA data and may include base pairs from both expressive and non-expressed regions of DNA. Genetic data can take different forms. For example, in one mode, genetic data can be the base pair sequence of an individual. The base pair sequence can include the entire genome or parts of the genome, such as genetic sites of interest. In another mode, the Genetic Data Extraction Service Server 125 can determine the genotypes from sequencing results, for example, to identify the genotype values ​​of single nucleotide polymorphisms (SNPs) present within the DNA. The results in this example might include a sequence of genotypes corresponding to various SNP sites. In one mode, the Genetic Data Extraction Service Server 125 can perform data preprocessing on the genetic data to convert raw base pair sequences into genotype sequences at the target SNP sites.Since a typical human genome may differ from a reference human genome in only several million SNP sites (as opposed to the billions of base pairs in the entire genome), the genetic data extraction service server 125 can extract only the genotypes at a target SNP site set and transmit the extracted data to the computer server 130 as an individual's genetic data set. Computer server 130 performs various analyses of genetic data and generates results regarding the genetics and genealogy of its users. Depending on the configuration, computer server 130 may also be referred to as an online server, a personal genetic service server, a genealogy server, a family tree building server, and / or a social networking system. Computer server 130 receives genetic data from the genetic data extraction service server 125 and stores the genetic data in the data store of computer service 130.The results regarding users' genetics and genealogy may include users' ethnic compositions, genetic or paternal and maternal analyses, potential family descendants, ancestral information, DNA data analysis, potential or identified user phenotypes (e.g., diseases, attributes, and other characteristics), etc. The computer server 130 may present or cause the user interface 115 to present the results to users through a GUI displayed on the client device 110. The results may include graphical elements, textual information, data, and other elements such as family trees including lineages. In one mode, the computer server 130 also allows multiple users to create one or more user genealogical profiles. The genealogical profile can include a list of individuals (e.g., ancestors, relatives, friends, and other persons of interest) who are added or selected by the user and who are suggested by the computer server 130 based on genealogical and / or genetic records. The user interface 115, controlled by or in communication with the computer server 130, can display the individuals in a list or as a family tree, such as in the form of a lineage. In one mode, subject to the user's configuration, authorization, and privacy settings, the computer server 130 can allow the user's genetic dataset to be linked to the user's profile and one or more family trees. The user can also authorize the computer server 130 to analyze the user's genetic dataset. Example Computer Server Architecture Figure 2 is a block diagram of an exemplary computer server 130 architecture, according to one modality. In the modality shown in Figure 2, the computer server 130 includes a genealogical data store 205, a genetic data store 210, a sample preprocessing engine 215, a phase engine 220, an IBD estimation engine 225, a community assignment engine 230, an IBD network data store 235, a reference panel sample store 240, an ethnicity estimation engine 245, and a front-end interface 250. The functions of the computer server 130 can be distributed among the elements in a manner different from that described. In various modalities, the computer server 130 may include different components and few or additional components.Each of the various data stores can be a single storage device, a server that controls multiple storage devices, or a distributed network that is accessible through multiple nodes (e.g., a cloud storage system). Computer server 130 processes the user's genetic data to identify IBD segments shared between individuals. Computer server 130 stores several C / 7R7n / L7n7 / q / YIAI data from different individuals, including genetic and genealogical data. The computer server 130 maintains genealogical data, including user profile data, in the genealogical data store 205. The amount and type of user profile data stored for each user in the genealogical data store 205 may vary depending on the information provided by the individual user. Users can provide data through the user interface 115 of a client device 110. For example, a user may be prompted in a graphical user interface element to answer questions related to user information and basic data, which can then be used to obtain further genealogical and survey data.Examples of genealogical data include names (first, last, middle, suffixes), gender, birth ambitions, dates of birth, date of death, marriage information, spouse's belonging information, family history, dates and locations for life events (e.g., birth and death), other vital data, and the like. In some cases, family history may take the form of that individual's lineage (e.g., the relationships recorded in the family). The lineage information associated with a user includes one or more specified nodes. Each node in the lineage represents the individual, an ancestor of the individual who may have passed genetic material to the individual, and the individual's other relatives, such as descendants in some cases. Genealogical data may also include genetic connections between users of computer server 130. In addition to user-entered data, genealogical data can also take other forms obtained from various sources, such as public records and third-party data collectors. For example, genealogical records from public sources include birth records, marriage records, death records, census records, court records, probate records, adoption records, obituaries, and so on.Genealogical data in the form of survey data includes information about a person's phenotypes, such as physical attributes (e.g., height, hair, skin pigmentation, freckles, bitter taste, earlobe type, iris patterns, male pattern baldness, hair curl), wellness phenotypes (e.g., lactose tolerance, caffeine consumption, malaria resistance, norovirus resistance, muscle performance, alcohol flushing), and personal preferences (e.g., likes and dislikes). In addition, the genealogy data store 205 may also include information inferred from genetic samples stored in the genetic data store 210 and information received from individuals.For example, information regarding which individual is genetically related, how they are related, how many generations back they share common ancestors, lengths and locations of two shared IBD segments, which genetic communities an individual is part of, variants carried by the individual, and the like. Additionally, genealogical data may include data from one or more of an individual's lineages, the Ancestry World Tree system, a Social Security Death Index database, the World Family Tree system, a database of birth certificates, a database of death certificates, a database of marriage certificates, an adoption database, a preliminary registration database, a veterans database, a military database, a property records database, a census database, a voter registration database, a telephone database, an address database, a newspaper database, an immigration database, a family history record database, a local history record database, a business registration database, a motor vehicle database, and the like. The computer server 130 maintains the genetic datasets of individuals in the genetic data store 210. A genetic dataset for an individual can be a digital dataset of nucleotide data and corresponding metadata. The data can contain the entirety or portions of the individual's genome. The genetic data store 210 can also store a pointer to a location associated with the genealogy data store 205 for the individual. A genetic dataset can take different forms. In one modality, a genetic dataset can take the form of a base-pair sequence resulting from the sequencing of an individual. In another modality, a base-pair sequence dataset can include the individual's entire genome (e.g., obtained from whole-genome sequencing) or some parts of the genome (e.g., genetic sites of interest). In another form, a genetic dataset can take the form of target SNP site sequences (e.g., allele sites) filtered from sequencing results. A target SNP site can also be referred to as a genetic marker, which can be associated with a unique identifier. The genetic dataset can be in the form of diploid data, which includes genotype sequencing, such as genotypes at target SNP sites, or the complete base-pair sequence, which includes genotypes at SNP sites and other base-pair sites not commonly associated with SNPs. Diploid datasets can be referred to as a genotype dataset. An individual's genotype can refer to a collection of diploid allele sequences for that individual. In other contexts, a genotype can be a pair of alleles present on two chromosomes for an individual at a given genetic marker, such as an SNP site. As such, each genotype at a SNP site can include a pair of alleles. The allele pair can be homozygous (e.g., AA or GG) or heterozygous (e.g., AT, CT). Instead of storing the actual nucleotides, the 210 genetic data store can store genetic data that is converted to bits. For many SNP sites, only two nucleotide alleles are observed (instead of all four). As such, a 2-bit number can represent an SNP site. For example, 00 can represent the first homozygous alleles, 11 can represent the second homozygous alleles, and 01 or 10 can represent heterozygous alleles. A separate library can store the nucleotide corresponding to the first allele and the nucleotide corresponding to the second allele at a given SNP site. A diploid dataset can also be scaled into two haploid datasets, one corresponding to a first precursor side and the other to a second precursor side. Scaled datasets can be referred to as haplotype datasets. In one configuration, the genetic data store 210 may additionally contain information about known variants that individuals carry (e.g., variant type, variant location, phenotypes associated with the variant). This information may be obtained from the computer server 130, a third-party database, or using third-party software. The sample preprocessing engine 215 receives and preprocesses data from various sources, converting it into a format used by the computer server 130. For genealogical data, the sample preprocessing engine 215 receives data from an individual via the user interface 115 of the client device 110. To collect user data (e.g., genealogical and survey data), the computer server 130 can trigger an interactive user interface on the client device 110, displaying interface elements where users can provide genealogical and survey data. This data can be provided manually or extracted automatically, for example, through optical character recognition (OCR) performed on census records, municipal or government records, or any other printed or online material.Some records can be obtained by digitizing written records such as old census records, birth certificates, death certificates, and so on. Sample preprocessing engine 215 can also receive raw data from genetic data extraction service server 125. Genetic data extraction service server 125 can perform laboratory analysis of users' biological samples and generate sequencing results in the form of digital data. Sample preprocessing engine 215 can receive raw genetic datasets from genetic data extraction service server 125. Sample preprocessing engine 215 can convert the raw base pair sequence into a genotype sequence of target SNP sites. Alternatively, preprocessing of this conversion can be performed by genetic data extraction service server 125. Sample preprocessing engine 215 identifies Autosomal SNPs in an individual's genetic dataset. For example, 700,000 autosomal SNPs can be identified in an individual's data and stored in the genetic data store 210. Alternatively, in one mode, a genetic dataset can include at least 10,000 SNP sites. In another mode, a genetic dataset can include at least 100,000 SNP sites. In yet another mode, a genetic dataset can include at least 500,000 SNP sites. In yet another mode, a genetic dataset can include at least 1,000,000 SNP sites. The sample preprocessing engine 215 can also convert the nucleotides into bits. The identified SNPs, in bits or other suitable formats, can be provided to the phase engine 220, which stages the individual diploid genotypes to generate a haplotype pair for each user. The 220-phase motor steps down diploid genetic datasets into a pair of haploid genetic datasets. An individual's haplotype can refer to a collection of alleles (e.g., an allele sequence) inherited from a parent. In one context, a haplotype can also refer to a collection of alleles corresponding to a specific mutation in a genetic segment. In other contexts, a haplotype can further refer to a specific allele at a SNP site. For example, a haplotype sequence can refer to an individual's sequence of allele base pairs inherited from a parent. Stepping may include a process for determining the assignment of alleles (particularly heterozygous alleles) to chromosomes. Due to sequencing conditions and other limitations, a sequencing result often includes data regarding a pair of alleles at a given SNP site on a chromosome pair but may not be able to distinguish which allele belongs to which specific chromosome. The 220 phase engine uses a genotype-phase algorithm to assign one allele to a first chromosome and another allele to a second chromosome. The genotype-phase algorithm can be developed based on a linkage disequilibrium (LD) assumption, which states that the haplotype, in the form of an allele sequence, tends to cluster together. The 220 phase engine is configured to generate phase sequences that are also commonly observed in many other samples.Put another way, the haplotype sequences of different individuals tend to cluster together. A haplotype clustering model can be generated to determine the probability distribution of a haplotype that includes a sequence of alleles. The haplotype clustering model can be trained based on labeled data that includes known phase haplotypes from a trio of parents and a child, since the correct phase of the child is almost certain when comparing the child's genotypes with the parent's genetic datasets. The haplotype clustering model can also be generated iteratively along with the phasing process. C / 7R7n / l 7Π7 / 3 / YILI large number of non-phased genotype datasets. By way of example, the 220 phase engine can use a directed acyclic graph model, such as a hidden Markov model (HMM), to phase a target genotype dataset. The directed acyclic graph can include multiple levels, each level having multiple nodes that represent different possibilities for haplotype clustering. A node's emission probability, which can represent the probability of having a particular haplotype cluster given a genotype observation, can be determined based on the probability distribution of the haplotype clustering model. A transition probability from one node to another can be initially assigned a non-zero value and adjusted as the directed acyclic graph model and the haplotype clustering model are trained. Several paths are possible through different levels of the directed acyclic graph model.The phasing engine 220 determines a statistically probable path, such as the most probable path or a probable path that is at least more probable than 95% of other possible paths, based on transition probabilities and emission probabilities. A suitable dynamic programming algorithm, such as the Viterbi algorithm, can be used to determine the path. The determined path can represent the phasing outcome. U.S. Patent Application No. 15 / 591,099, entitled “Haplotype Phasing Models,” filed October 19, 2015, describes a possible modality of haplotype phasing. The IBD 225 estimation engine estimates the number of shared genetic segments between a pair of individuals based on phase genotype data (e.g., haplotype datasets) stored in the genetic data store 210. IBD segments are chromosome segments identified in a pair of individuals that are putatively inherited from a common ancestor. The IBD 225 estimation engine retrieves a pair of haplotype datasets for each individual. The IBD 225 estimation engine can divide each haplotype dataset into a plurality of windows. Each window includes a fixed number of SNP sites (e.g., approximately 100 SNP sites). The IBD 225 estimation engine identifies one or more seed windows in which the alleles at all SNP sites in at least one of the phase haplotypes between two individuals are identical.The IBD 225 estimation engine can expand the seed window matching area until the matching windows reach the end of a chromosome or until a homozygous mismatch is encountered, indicating that the mismatch is not attributable to potential errors in the phase. The IBD 225 estimation engine determines the total length of the matching segments, which can also be referred to as IBD segments. The length is measured in centimorgans (cM), the genetic distance. The computer server 130 can store data regarding pairs of individuals. C / 7R7n / L7nZ / q / YIAI share an IBD segment length that exceeds a predetermined threshold (e.g., 6 cM), such as in genealogy data store 205. U.S. Patent Application No. 14 / 029,765, entitled “Identifying Ancestral Relationships Using a Continuous stream of Input”, filed September 17, 2013, describes an exemplary modality of IBD estimation. Typically, closely related individuals share a relatively large number of IBD segments, and these IBD segments tend to be longer (individually or collectively on one or more chromosomes). In contrast, distantly related individuals share relatively few IBD segments, and these segments tend to be shorter (individually or collectively on one or more chromosomes). For example, while close family members frequently share more than 71 cM of IBD (e.g., third cousins), more distantly related individuals may share less than 12 cM of IBD. The degree of relatedness in terms of IBD segments between two individuals can be referred to as IBD affinity. For example, IBD affinity can be measured in terms of the length of the IBD segments shared between two individuals. The Community Assignment Engine 230 assigns individuals to one or more genetic communities. A genetic community can be an ethnic origin. The granularity of the genetic community classification can vary depending on the modalities and methods used in community assignment. For example, in one modality, communities might be African, Asian, European, and so on. In another modality, the European community might be divided into Irish, German, Swedish, and so on. In yet another modality, the Irish might be divided into the Irish in Ireland, the Irish who emigrated to America in the 1800s, the Irish who emigrated to America in the 1900s, and so on. Community classification can also depend on whether a population is admixed or not. For an admixed population, classification can be further divided based on different ethnic origins within a geographic region. The Community Assignment Engine 230 can assign individuals to one or more genetic communities based on their genetic datasets using machine learning models trained by unsupervised or supervised learning. In an unsupervised procedure, the Community Assignment Engine 230 can generate data representing a partially connected, undirected graph. In this procedure, the Community Assignment Engine 230 represents individuals as nodes. Some nodes are connected by edges whose weights are based on the IBD affinity between two individuals represented by the nodes. For example, if the total length of the shared IBD segments of two individuals does not exceed a predetermined threshold, the nodes are not connected. The edges connecting two nodes are associated with the measured weights. C / 7R7n / L7nZ / q / YIAI based on IBD affinities. The undirected graph can be referred to as an IBD network. The community assignment engine 230 uses clustering techniques such as medullary measurement to classify nodes into different clusters in the IBD network. Each cluster can represent a community. The community assignment engine 230 can also determine sub-clusters, which represent sub-communities. The computing server 130 stores the data representing the IBD network and the clusters in the IBD network data store 235. U.S. Patent Application No. 15 / 168,011, entitled “Discovering Population Structure from Patterns of Identity-By-Descent,” filed May 28, 2016, describes a possible modality for community detection and assignment. The Community 230 assignment engine can also assign communities using supervised techniques. For example, genetic datasets of known genetic communities (e.g., individuals who have confirmed their ethnic origins) can be used as training sets labeled with the genetic communities. Supervised machine learning classifiers, such as logistic regressors, support vector machines, random predictor classifiers, and neural networks, can be trained using the labeled training set. The trained classifiers can distinguish between binary and multiple classes. For example, a binary classifier can be trained for each community of interest to determine whether a target individual's genetic dataset belongs to that community.A multi-class classifier such as a neural network can also be trained to determine whether the target individual's genetic dataset is likely to belong to one of several possible genetic communities. The Reference Panel Sample Store 240 stores reference panel samples for different genetic communities. Some of an individual's genetic data may be the most representative of a genetic community. Their genetic datasets can serve as reference panel samples. For example, some gene alleles may be overrepresented (e.g., highly common) in a genetic community. Some genetic datasets include alleles that are commonly present among members of the community. Reference panel samples can be used to train various machine learning models to classify whether a target genetic dataset belongs to a community, to determine an individual's ethnic composition, and to determine the accuracy of any genetic data analysis, such as calculating a posterior probability of a classifier's classification result. A reference panel sample can be identified in several ways. In one approach, an unsupervised community detection procedure can recursively apply the clustering algorithm to each identified cluster until the sub-clusters contain a number of nodes smaller than a threshold (e.g., slightly less than 1000 nodes). For example, the Community Assignment Engine 230 can construct a complete IBD network comprising a set of individuals represented by nodes and generate communities using clustering techniques. Alternatively, the Community Assignment Engine 230 can randomly sample a subset of nodes to generate a sampled IBD network. Finally, the Community Assignment Engine 230 can recursively apply clustering techniques to generate the communities within the sampled IBD network.Sampling and clustering can be repeated for different randomly generated sampled IBD networks across multiple runs. Nodes that consistently assign to a genetic community when sampled across multiple runs can be classified as a reference panel sample. The Community Assignment Engine 230 can measure consistency in terms of a predetermined threshold. For example, if a node is classified to the same community 95% (or another suitable threshold) of the time when sampled, the genetic dataset corresponding to the individual represented by the node can be considered a reference panel sample. Alternatively, the Community Assignment Engine 230 can select the most consistently assigned nodes (N) as a reference panel for the community. Other methods for generating reference panel samples are also possible. For example, computer server 130 can collect a set of samples and gradually filter and refine them until high-quality reference panel samples are selected. The Ethnicity Estimation Engine 245 estimates the ancestral composition of a target individual's genetic dataset. The genetic datasets used can be either genotype datasets or haplotype datasets. For example, the Ethnicity Estimation Engine 245 estimates ancestral origins (e.g., ethnicity) based on the individual's SNP genotypes or haplotypes. To take a sample example of three ancestral populations corresponding to African, European, and Native American, a mixed-race user might have non-zero estimated ethnicity proportions for all three ancestral populations, with an estimate such as [0.05, 0.65, 0.30], indicating that the user's genome is 5% attributable to African ancestry, 65% attributable to European ancestry, and 30% attributable to Native American ancestry.The ethnicity estimation engine 245 generates the ethnic composition estimate and stores the estimated ethnicities in the computer server data store 130 with a pointer in association with a particular user. In one mode, the 245 ethnicity estimation engine divides a target genetic dataset into a plurality of windows (e.g., approximately 1000 windows). Each window includes a small number of SNP sites (e.g., 300 SNP sites). The 245 ethnicity estimation engine can use a directed acyclic graph model to determine the ethnic composition of the target genetic dataset. The directed acyclic graph can represent a lattice of a hidden interventan Markov model (HMM). The graph includes a sequence of a plurality of levels. Each level, representing a window, includes a plurality of nodes. The nodes represent different possible genetic community labels (e.g., ethnicities) for the window. A node can be labeled with one or more ethnic labels.For example, a level includes a first node with a first label representing the probability that the window of SNP sites belongs to a first ethnicity and a second node with a second label representing the probability that the window of SNP sites belongs to a second ethnicity. Each level includes multiple nodes, so there are many possible paths through the directed acyclic graph. The directed acyclic graph includes emission probabilities and transition probabilities. An emission probability associated with a node represents the probability that the window belongs to the ethnicity labeled by the node, given the observation of SNP sites in the window. The ethnicity estimation engine 245 determines the emission probabilities by comparing the SNP sites in the window corresponding to the target genetic dataset with the corresponding SNP sites in the windows across several reference panel samples from different genetic communities stored in the reference panel sample store 240. The transition probability between two nodes represents the probability of transitioning from one node to another across two levels.The 245 ethnicity estimation engine determines a statistically probable path, such as the most probable path or a probable path that is at least more probable than 95% of the other possible paths, based on transition probabilities and emission probabilities. A suitable dynamic programming algorithm, such as the Viterbi algorithm or the forward-backward algorithm, can be used to determine the path. After the path is determined, the 245 ethnicity estimation engine determines the ethnic composition of the target genetic dataset by determining the label compositions of the nodes included in the determined path. U.S. Patent Application No. 15 / 209,458, entitled “Local Genetic Ethnicity Determination System,” filed July 13, 2016, describes an exemplary modality of ethnicity estimation. The front-side interface 250 can display various results determined by the computer server 130. These results and data may include IBD affinity between a user and another individual, the user's community assignment, the user's ethnicity estimation, phenotype prediction and evaluation, genealogical c / zRzn / Lznz / q / YiAi data search, family tree and lineage, relative profile, and other information. The front-side interface 250 can be a graphical user interface (GUI) that displays various information elements and graphics. The front-side interface 250 can take different forms. In one instance, the front-side interface 250 can be a software application that can be displayed on an electronic device such as a computer or smartphone. The software application can be developed by the entity that controls the computer server 130 and is downloaded and installed on the client device 110.In another case, the front-end interface 250 can take the form of a computer server network page interface 130, allowing a user to access their family tree and genetic analysis results through network buffers. In yet another case, the front-end interface 250 can provide an application programming interface (API). Exemplary IBP Network Figures 3A and 3B illustrate exemplary identity downstream networks (IDB networks), according to one modality. With reference to Figure 3A, an exemplary IDB network can be a partially connected undirected graph 300. The graph 300 includes a plurality of nodes 302. Each node represents one of the individuals who have genetic data stored in the genetic data store 210. Each node 302 can correspond to the individual's genetic data set. For example, based on their data, the genetic data set can be converted into a number of features that can be represented as a feature vector. Node 302 can correspond to the feature vector based on the coordinates of the vector. Some 302 nodes are connected through 304 edges. In an IBD network, two or more 302 nodes are connected through 304 edges, but not all 302 nodes are necessarily directly connected to each other.Therefore, graph 300 may be a partially connected graph. For example, a particular node 306 is connected to another node 308, but node 306 is not directly connected to node 310. Graph 300 is for illustrative purposes only. A real IBD network graph could include tens of thousands or even millions of nodes. For connected nodes, an edge 304 is associated with a weight, the value of which is derived from the affinity between the genetic datasets of the two individuals represented by the two nodes. For example, the affinity between the genetic datasets of the two individuals might be the IBD affinity, which corresponds to the length of the shared IBD genetic segments of the two individuals as determined by comparing the phase haplotype datasets of the two individuals. For example, a particular edge 312 represents the two individuals represented by nodes 308 and 310 who are related by IBD. The weight associated with edge 312 corresponds to the length of the shared IBD genetic segments of the two individuals. Other ways to compare the affinity between two genetic datasets may also be possible. Edges 304 can be associated with different weights and are illustrated by having different thicknesses in graph 300. For example, edge 314 is stickier than edge 316, indicating that the two individuals connected by edge 314 have a higher IBD affinity than the two individuals connected by edge 316. Computer server 130 can derive the exact affinity weight values. In one mode, the weight values ​​can be the IBD affinity measured in centimorgans. In another mode, the weight values ​​can be mapped or transformed from the IBD affinity. For example, computer server 130 can normalize the weights between 0 and 1. The mapping function between IBD affinity and edge weights can be either continuous or discontinuous, with the function domain defined by the set of possible total IBD segment lengths. In one embodiment, computer server 130 maps total IBD segment lengths to edge weights by: (1) choosing a target generation interval; (2) empirically evaluating, using a reasonably realistic simulation, the distribution of total IBD lengths among pairs of individuals sharing common ancestors within the generation interval; and (3) defining affinity such that high weights are placed on total IBD lengths arising from familial relationships sharing common ancestors that correspond to the chosen generation interval. This has the effect of more heavily weighting edges among relatives sharing common ancestors within the target generation interval.For example, for a generation interval of 0-4 generations, more weight is assigned to edges between relatives separated by eight meiosis events or less, and less weight is placed on nine meiosis events and more distantly related relatives, where one meiosis event corresponds to a parent-child relationship, two meiosis events correspond to siblings or a grandparent-child relationship, and so on. In one approach, the IBD-to-edge weight mapping function was chosen based on a cumulative density function (CDF) Beta (e.g., Probability(X < x), where x is the IBD affinity between any pair of individuals) with scaling parameters a = 1.1 and β = 10, which defines the weights for edges in an IBD network. Other selections for mapping total IBD length to edge weight can result in the generation of an IBD network with different characteristics. For example, placing greater weight on more distant family relationships could reveal the structure that emerges from population events at different time periods. A module for the computer system 130, such as the community allocation engine 230, generates data that represents the graph 300. The data can be in any of the appropriate formats, including a key-value pair format, a vector format, a matrix format, a tensor format, or one or more combinations thereof. For example, a node can be associated with an identifier as a key that identifies the individual represented by the node and with a value that is a feature vector generated from generic datasets. For N individuals, the data representing the edges can be in an NxN matrix format that records the weight value in cell (i, j) for the edge connection node iy at node j.For two individuals, which are not related IBD (or which have a shared IBD length below a threshold), the cell (i, j) could have the value 0 or nil to indicate that there is no edge connected to the two nodes representing the two individuals. Genetic Inference Committees Figure 3B illustrates an IBD network and an exemplary procedure in inference communities, according to a modality. The computer system 130 divides the nodes 302 in graph 300 into a plurality of clusters based on the edge weights 304 connecting the nodes 302. For example, for illustration, graph 300 can be divided into two clusters 320 and 330 enclosed by two dashed lines. Each given cluster can represent a genetic community such as an ethnicity. Several algorithms can be used to cluster an IBD network. Examples include any of the suitable unsupervised algorithms in machine learning that can be used to identify connected subsets of a network, where the density of edges within each subset is higher than expected. One suitable method for identifying clusters in an IBD network is described below. Examples of alternative network clustering algorithms include spectral graph clustering methods. Other unsupervised or supervised community detection algorithms can also be used, such as the label propagation algorithm, the connected components algorithm, the triangle count coefficient algorithm, the balanced triads algorithm, and so on. In one mode, computer server 130 identifies communities through a recursive application of a multi-level Louvain method, which is a modularity-based community detection algorithm. In other modes, communities can be identified through the recursive application of another modularity-based community detection algorithm. Exemplary modularity-based community detection algorithms include the Fast-Greedy algorithm, the eigenvector-based algorithm, the semidefine program (SDP)-based algorithm, and others. In a modularity-based community detection algorithm, computer server 130 identifies high-modularity partitions from graph 300. Modularity is a measure of how partitions are defined based on the weights of the edges connecting nodes within each partition. In an IBD network S that includes nodes L connected to each other via edges M, each having a weight, modularity can be defined in any way that measures the weights of edges connecting two specified nodes in the same partition against the weights of edges connecting nodes in one partition to nodes in another partition. For example, in one case, the degree of modularity, Q, of a network partitioning is defined according to: where k is the community index, Sk is the set of edges, among all the nodes assigned to community k, a, is the edge weight (i, J), d¡ is the “degree” of node i, defined as being the sum of all edge weights for the edges that connect node i, and m is the sum of all “degrees”. In general, modularity can have a value that increases with the weights of edges connecting two nodes classified within the same partition and decreases with the weights of edges connecting nodes in one partition to nodes in another. For example, in Figure 3B, a candidate partition 320, as defined by the dashed line representing a candidate genetic community, can be considered a well-defined partition. This is because most of the edges connect to nodes classified within partition 320. Only a few edges, such as edge 322 and nearby edges, connect a node within partition 320 to a node outside of partition 320. Furthermore, these edges, including edge 322, lie within the lines, meaning their weight values ​​are low. Therefore, based on equation (1) or another suitable definition of modularity, partition 320 has a high modularity value.In contrast, partition 340, which may represent another candidate genetic community, has a low modularity value, indicating that the candidate genetic community is also poorly defined. This is because there are many edges connecting a node within partition 340 to another node outside of partition 340. For example, node 342 has a degree of five (5 edges), but each edge connects to another node that is outside partition 340. Computing server 130 uses an algorithm to adjust the partitions in graph 300 to increase the modularity value. The algorithm heuristically increases or maximizes the modality associated with an IBD network. The adjusted partitions may be the final clusters of the IBD network.The algorithm can stop when it completes a predetermined number of iterations (e.g., a certain number of times) or until the total modularity values ​​of all partitions no longer increase (e.g., achieving convergence). The computation time associated with a community detection algorithm can grow linearly with the number of edges, M (e.g., complexity = O(M)). The community detection algorithm divides the network S comprising the nodes N into communities C. The partitioning of the network into communities is indicated (A^ A2, A3, ..., After the community detection algorithm is completed, communities (Ai, A2, A3, Aq) are labeled as “valid” if each includes at least a given threshold number of nodes t. In one modality, a community A with fewer than the threshold number of nodes is not considered a valid community (i.e., an “invalid” community) and is thus omitted from subsequent steps of community detection analysis and model training (its constituent nodes can be disregarded without being labeled as a community). In one modality, the threshold number of nodes t is 1,000. However, in other modalities, the threshold number is any integer number of nodes greater than 0. The set of communities labeled as valid is denoted by (Aj, A'2, A'3, A'c), where C is less than or equal to C. This threshold cutoff for a minimum community size can help ensure that any detected communities will contain a sufficiently large number of nodes to be interpreted as a group of historical or geographical significance. If a community has fewer than the threshold number of nodes t, any additional general sub-communities resulting from applying an additional round of the community detection algorithm would likely overfit or overanalyze the data. This could suggest a subpopulation that might not have an analogue that experts in the field would recognize. The threshold number of nodes can be anywhere between 1,000 and 10,000, depending on the exact implementation of the system and the number of samples in the IBD 300 network. In one mode, the community detection algorithm can be applied recursively. After applying an initial round of community detection, computer server 130 can continue applying the community detection algorithm against an identified cluster to generate sub-clusters. Computer server 130 can continue repeating this process until all sub-clusters no longer have enough members (fewer than the threshold number of nodes). Repeating the community detection algorithm can be referred to as a hierarchical community detection procedure, which will be discussed in further detail in conjunction with Figures 7A to 9. In one mode, after genetic communities and sub-communities are identified, computer server 130 can annotate communities based on genealogical data associated with individuals. For example, for a community, at least some of the individuals represented by nodes 302 have genealogical data such as profile data, geographic data, and ancestral data stored in the genealogical data store 205 of computer server 130. Computer server 130 can also use the ethnicity estimation engine 245 to analyze the genetic datasets of community members. Based on ethnicity and geographic origin data determined from various sources, computer server 130 can determine that members in a community commonly share an ethnicity and / or geographic origin. Computer server 130 can then annotate the community by ethnicity and / or geographic origin. IBP Network Filtration Figure 4 is a graph representing an exemplary process for filtering an IBD network according to a modality. Figure 5 illustrates an exemplary filtered graph, according to a modality. With reference to Figure 4, computer server 130 retrieves 410, a plurality of genetic datasets corresponding to a plurality of individuals. The genetic datasets can be genotype datasets or phase haplotype datasets of the individuals. Various numbers of genetic datasets can be retrieved. In one case, computer server 130 can retrieve more than 1,000 genetic datasets. In another case, computer server 130 can retrieve more than 10,000 genetic datasets. In yet another case, computer server 130 can retrieve hundreds of thousands or even millions of genetic datasets.The IBD affinity, which can represent the affinity between the genetic datasets of a given pair of individuals based on the length of the shared IBD genetic segments of the pair of individuals, can also be determined or may have been predetermined and stored by the computer server 130. The computer server 130 generates data 420, which represents a complete graph. The complete graph can be an IBD network. The complete graph can include a plurality of nodes. Each node represents one of the individuals. Two or more nodes are connected by edges. Each edge connects to two nodes and is associated with a weight derived from the affinity between the genetic datasets of the two individuals represented by the two nodes. If the graph is an IBD network, the affinity can be the IBD affinity. If the graph uses other methods to measure the similarity between the genetic datasets of two individuals, other types of measurements can be used to represent the affinity used to generate the weight. A complete graph can represent a graph that has not yet been filtered.A complete graph does not require the computer server 130 to use all available genetic datasets to generate the data that the graph represents. The computer server 130 filters 430 the data representing the complete graph, based on one or more features of the edges or nodes. The filtered data represents a subset of nodes. For example, FIGURE 5 illustrates a filtered graph 500 that can be illustrated from a complete graph 300 shown in FIGURE 3A. Nodes on solid lines, such as nodes 510, are selected nodes. Nodes on dashed lines, such as nodes 520, are unselected nodes. The filtering can be based on one or more features associated with the edges and / or one or more features associated with the nodes. The features used to filter an entire graph can be of several types. Features can be data directly included in or used by the graph, or data that relates to the nodes or edges but is not used in the graph. Features directly included in the graph might be characteristics of the affinity between two sets of genetic data. For example, edge strength (e.g., weight values) could be used to filter the entire graph. In contrast, features not used in the graph might be other characteristics of things or people that relate to what the edges or nodes represent. For example, since edges represent the connection or relationship between two individuals, the features of an edge might be the characteristics of the people or things that are commonly shared by two individuals connected by the edge.In one scenario, an exemplary spectrum might be the characteristics of the ancestors commonly shared by the two individuals whose nodes are connected by an edge. Since the ancestors are shared by the two individuals, the ancestor characteristic can be a feature of the edge, representing the connection between the two individuals. An example of an ancestor characteristic is the birth year of an ancestor. If two individuals share more than one ancestor, the average birth year can be used. The average birth year is the birth year if there is only one common ancestor. Computer server 130 can filter the data representing the complete graph based on a timeframe (e.g., 1800-1850) of the birth years of the common ancestors. Other ancestor characteristics include the geographic origin of a common ancestor, the ancestor's ethnicity, the common ancestor's surnames, and so on.They can also be used to filter the graph. Exemplary characteristics can also include node characteristics. Since nodes represent individuals, node characteristics can be characteristics of individuals. Exemplary characteristics of individuals include the ethnicity composition of individuals, an individual's phenotype (e.g., a physical attribute, a disease), geographic regions in which individuals were born, and so on. In one case, the genetic dataset of an individual represented by a node may indicate that the length of the individual's genetic segments inherited from a target ethnicity exceeds a threshold (e.g., 20% of the entire genetic dataset is attributable to the target ethnicity). The computer server 130 can filter the data representing the entire graph by requiring that selected nodes have at least 20% of their genetic data attributable to the target ethnicity. The computer server 130 can use one or more features to filter the C / 7R7n / L7n7 / q / YIAI data represents the entire graph when a subset of nodes is selected, representing a filtered graph. Compute Server 130 can also combine one or more edge features and / or one or more node features to filter the entire graph. Computer server 130 divides the subset of nodes in the filtered graph into a plurality of clusters based on the weights of the edges connecting the nodes in the subset. Each cluster can represent a genetic community. For example, computer server 130 uses a community detection algorithm described above to divide the nodes of the subset in the filtered graph into a plurality of clusters. In one mode, computer server 130 defines a plurality of partitions in the filtered graph. Each partition can represent a candidate genetic community. Initially, the defined partitions may be suboptimal, meaning that the members in the candidate community may not share enough connections or similarity. Computer server 130 determines a measure (e.g., modularity) for the partitions.The measure has a value that increases with the weights of the edges connecting two nodes classified in the same partition and decreases with the weights of the edges connecting nodes in one partition to nodes in another partition. Computing server 130 adjusts the partition boundaries to increase the value of the measure. In some cases, computing server 130 uses multiple iterations to measure the measure and adjust the partition. The final adjusted partitions may be the clusters representing the genetic communities. Filtering the full graph to generate a filtered graph before applying a community detection algorithm allows the computer server 130 to discover additional communities that might not be discovered using the full graph. For example, with reference to FIGURE 5, the filtered graph 500 allows the computer server 130 to use the community detection algorithm to identify and separate two communities, 530 and 540, as units that are otherwise inseparable in a full graph. With reference to FIGURE 3B, the two communities 530 and 540 belong to cluster 320, but are not separable in the full graph 300. Using the filtering procedure, the computer server 130 is able to identify populations that are not previously identifiable using a full graph.In one mode, computer server 130 filters the entire graph based on the birth years of the common ancestors of the individuals represented by the nodes in the graph. Computer server 130 identifies clusters in a filtered graph that represent populations in different U.S. states, such as Michigan, Wisconsin, Minnesota, Iowa, Texas, Utah, etc. By including more recent relationships, recent population structures can be identified because older relationships may be obscured. C / 7R7n / l 7P7 / 3 / YILI covers the most recent structure when all edges are used in one graph. Using a similar procedure, communities representing populations in Australia and South Africa are also identified by several filtered graphs. Figure 6 is a block diagram illustrating an exemplary process for classifying the birth year of a common ancestor of two individuals within a time frame, according to a modality. In a graph such as an IBD 300 network, computer server 130 may not possess data on the birth year of all common ancestors corresponding to the edges of the graph. For example, although computer server 130 determines that two individuals are IBD related, it may not know the common ancestor, and therefore the birth year. However, since the length of IBD segments may be correlated with the number of generations that make the two individuals related, a model (e.g., a classifier) ​​can be trained to predict the birth year of the common ancestor or to assign the common ancestor to a time frame (e.g., 1700–1800, 1800–1900).For edges corresponding to unknown ancestors or ancestors with unknown birth years, the birth year can be estimated from the length of shared IBD genetic segments of two individuals using a model that takes the length of shared IBD genetic segments as input. After estimating or classifying the birth year within a timeframe, the computer server 130 can filter a complete graph and run the community detection algorithm. The computer server 130 can use data from its genealogy data store 205 to generate labeled training sets. For example, computer server 130 can retrieve the genetic data sets of individual A 602 and individual B 604 from the genetic data store 210. The IBD estimation engine 225 of computer server 130 can determine, based on the genetic data sets, that individuals A and B are related by an IBD distribution time. Computer server 130 retrieves genealogical data for individuals A and B, such as their family tree data. Individuals A and B may have separate family trees and may not know that they are related by an IBD distribution. From the family tree data and potentially with validation from other genealogical data, computer server 130 determines that the pair of individuals share a common ancestor 606.Common ancestor 606 has birth year data available on computer server 130. For example, one of individuals A or B can enter the birth year, or computer server 130 can locate the birth year of common ancestor 606 from a public record source, such as birth certificate data. Computer server 130 generates a training set 610 that includes the birth year of common ancestor 612 and the duration of the IBD exchange 614 as two features in training set 610. The birth year of common ancestor 612 can be used as a label for training set 610. Computer server 130 can repeatedly identify in its data stores more pairs of individuals related to the IBD who have a common ancestor whose birth year is known. A plurality of training sets can be generated. Computing server 130 trains model 620 using training sets 610. Model 620 can be a classifier that classifies the estimated birth year within one of the possible time frames or a regressor that predicts the birth year of the common ancestor. For example, a classifier could be a logistic regression classifier, a random forest classifier, a support vector machine (SVM), a neural network, and so on. The objective function of the classifier could be the errors in classifying the training sets within the correct time frame. During classifier training, computing server 130 adjusts the model weights to reduce or minimize errors using techniques such as coordinate descent or stochastic coordinate descent (SGD).In one modality, a logistic regression classifier using IBD 614 segment lengths can be used to predict the timeframe of the birth year of ancestors. Nonlinear models such as random forest and SVM can also be used. In some modalities, the Computing Server 130 can use additional features to predict the birth year. For example, various genealogical data can also be useful in predicting the birth year frame of a common ancestor. The Computing Server 130 can train a neural network that receives the IBD 614 segment length and other features to predict the timeframe. After model 620 is sufficiently trained, the trained model 630 can be used to predict the birth year 636 of the common ancestor. Since the weight of an edge in an IBD network is derived from the length of the IBD segment, the length of the IBD segment is known for a given edge. For a given edge, an input dataset 632 includes the length of the IBD segment 634, which can be entered into the trained model to generate the time frame 636. After the predicted time frames for the edges are generated in a full graph of an IBD network, the computer server 130 filters the full graph based on the estimated time frame to select the edges that represent the common ancestors estimated to have been born within the target time frame.The computer server 130 then applies the community detection algorithm to discover the genetic communities with respect to the target time frame. For example, the Connecticut population that existed in the 1700s migrated to western New York during the 1800s and mixed with other populations. Existing methods failed to identify a corresponding structure associated with this population migration when all matches were used. In contrast, by generating a filtered graph corresponding to common ancestors born in the 1700s, Computer Server 130 can identify a population structure in Connecticut from that time period that is associated with the migration to New York. Another example is Australia. Computer Server 130 might not be able to find any communities in Australia using a full graph. However, by using only those edges from the 1800s, Computer Server 130 identifies a population structure in Australia that is due to 19th-century mating patterns. Instead of using a machine learning model, the search for a common ancestor between two individuals can be approximated with a population genetics model. For example, the statistical distribution of the shared length of the IBD can be generated, and the generation of the common ancestor can be predicted. The generation can then be assigned to the years for which a population genetics model is available. As an alternative to, or in addition to, filtering an entire graph by an edge feature with the timeframe of the common ancestor's birth year, Compute Server 130 can filter the entire graph using a node feature such as the ethnic composition of the individuals represented by the nodes. This procedure allows for the smoothing out of noise from other groups that may be overrepresented in Compute Server 130's data store. In some cases, Compute Server 130 may be more popular with clients in one particular region but not as popular in another. As such, there may be biases in the constructed IBD network, and some population structures may be stronger than others. In some cases, this can make it difficult to discover structure in certain overrepresented populations.The computer server 130 can filter individuals to include only those of a particular ethnicity of interest. For example, better and more refined population structures can be found in Asia when an entire graph is filtered to include individuals of Asian descent. This procedure results in more refined community discovery for mixed populations. In one mode, the computer server 130 can filter nodes in a full graph by requiring that the selected subset of nodes include at least a certain percentage (for example, 20%) of genetic data attributable to a target ethnicity. The computer server 130 can determine the length of an individual's genetic segments inherited from the target ethnicity by comparing the individual's genetic dataset with one or more samples from the target ethnicity reference panel. For example, the computer server 130 can use an ethnicity estimation engine 245 to determine the individual's ethnic composition. For a mixed-race individual, the node representing the individual can be selected across multiple filtered graphs.For example, filtering the data representing the entire graph to generate a first filtered graph based on a first target ethnicity represented in the ethnic compositions of the individuals. Furthermore, filtering the data representing the entire graph to generate a second filtered graph can be based on a second target ethnicity represented in the ethnic compositions of the individuals. For example, the filtering criteria might require that each filtered graph include individuals who have at least 20% of the target ethnicity. As a result, a node representing a mixed-ethnicity individual could be present in both the first and second filtered graphs. Detection of Hierarchical Multipath Communities Figures 7A through 9 illustrate an example of a multi-path hierarchical community detection process, according to one modality. Figure 7A illustrates a 700 tree diagram for an ethnic-path hierarchical community detection process. The 700 tree diagram includes a plurality of branches and terminal leaves, each of which is indicated by a numerical identifier such as “1”, “2.1”, “5.2.5”, “6.3.4”, and so on. A branch represents a path to reach a leaf. The leaf represents a community or subcommunity that corresponds to a group in a graph, such as an IBD network in a community detection process. In a hierarchical community detection process, computer server 130 applies the community detection algorithm (e.g., Louvain's method) to a graph (either a full or filtered graph) to divide it into groups representing a set of communities. After the set of communities is determined, computer server 130 applies the community detection algorithm again to each group to identify subgroups within that group. Each subgroup can represent a more defined genetic community. To distinguish the initial set of communities from the subcommunities, the initial set of communities can be called "level 1" communities, and the subcommunities can be called "level 2" communities. The multiple levels of communities can be viewed as hierarchical sets of groupings. To identify a sub-community for each level 1 community A' (= 1, 2, ..., C), the computer server 130 generates data representing a sub-graph for each community A' in the set of communities A' (= 1, 2, 3, ..., C). The sub-graph g is defined by the subset of nodes n that are assigned to a community A' and the subset of edges m such that (i, j) is included in the subset if both i and j are assigned to community A'. The computer server 130 applies a clustering algorithm (e.g., core-based clustering) to the sub-graph g, associated with community A'. For example, if a level 1 community A' is associated with a sub-graph gi, the clustering algorithm is applied to the sub-graph gi. After applying the clustering algorithm to each sub-graph g, with g = 1, 2, C', the result is a set of sub-communities (8, 1, 2, 3, 4, 5, 6, 1, 1, 1, 1, 1, 1, 1, 2 ... B2, ... Bd), where D is the total number of sub-communities identified across all subgraphs. In one modality, only “valid” communities that exceed a previously specified size are retained (and this may be a different (second) threshold than the (first) threshold t used to determine the level 1 communities), resulting in a final set of level 2 communities, sub-communities (B' / , B'2<... B'd), in which D' is less than or equal to D. The process described above can be repeated for subsequent levels of communities as long as at least one community has more than the threshold number of nodes, as introduced above. For example, the communities at level 3 can be delineated once again to generate a sub-graph gi for each community at level 2, and the community detection algorithm can be applied to each sub-graph gi. Following this description, an example pseudocode for the computer server 130 for a hierarchical community detection algorithm is as follows: community procedure(s) C fe Louvain(S) H Identifies the set of communities associated with network S for each A in C does so if(Size(A) > N && Stability(A) > M) then / / N is a threshold, such as N=1,000, and M is a stability threshold g¡ fe Construction Sub-graph(SA) O fe concatenated(C, community(g / )) return C / / C is an array of community and sub-communities associated with the network S, which can be interpreted in a hierarchy of clusters. In one embodiment, the procedure outlined in the preceding example pseudocode results in a hierarchy of communities by recursively sharding or splitting groups of connected nodes. The algorithm illustrated by the preceding pseudocode automatically stops further subdivision when the size of the subnetwork defined by a community contains slightly less than a threshold number of nodes N, which can be a user-specified variable such as 1,000 nodes. Furthermore, to create a subgraph, the stability of a subnetwork must exceed a threshold M. In a single-path hierarchical community detection procedure, a node at each level of community detection is assigned to one and only one cluster. Therefore, in a single-path procedure, a node representing an individual can traverse the tree diagram 700 only by a single path to a leaf. For example, FIGURE 7A illustrates an exemplary path that reaches a leaf. At level 1 (e.g., the first round of the community detection algorithm), the node is assigned to the sixth cluster. In the single-path procedure, the node cannot be assigned simultaneously to the sixth cluster and another cluster. Therefore, the path takes the branch representing the sixth cluster but no other clusters. At level 2 (e.g., the second round of the community detection algorithm), the node is assigned to the third sub-cluster of the sixth cluster (6.3).At level 3 (for example, the third round of the community detection algorithm), the node is assigned to the first sub-cluster of sub-cluster 6.3, reaching leaf 6.3.1. Figure 7B illustrates a 700 tree diagram for a multi-path community discovery process, according to one modality. In this multi-path procedure, a node in a graph at each level of community discovery is allowed to be assigned to multiple clusters. Therefore, in addition to the path reaching leaf 6.3.1 at level 1, the node is also assigned to the 3rd and 4th clusters. At level 2, the node is also simultaneously assigned to the 1st and 4th sub-clusters of the 4th cluster. After multiple rounds of the community discovery algorithm, the computer server 130 assigns the node to communities 6.3.1, 3.1, 4.1, and 4.4.5. In other words, the node can take multiple paths to reach different communities and sub-communities.In one mode, at each level, the computing server 130 can first use a clustering algorithm to divide the nodes in the graph into multiple clusters and assign the target node to the individual cluster. The target node is assigned to only one cluster because methods such as the Louvain method can assign a node to only one cluster. Computing server 130 can then add the target node to additional clusters based on one or more criteria. For example, the criteria can be based on filtering criteria, as discussed above. In another mode, a criterion is based on a stability measure, which will be discussed in more detail below. Figure 8 is a flowchart representing an exemplary process for performing multipath community detection, according to a modality. The process can be used to classify a mixed individual into more than one genetic community. Computer server 130 retrieves a plurality of genetic datasets corresponding to a plurality of individuals. At least one of the individuals is a mixed individual. Computer server 130 generates data representing a graph, which may be a partially connected, undirected graph. Similar to other graphs discussed in this description, this graph may include a plurality of nodes. Each node represents one of the individuals. Two or more nodes are connected by edges. Each edge connects two nodes and is associated with a weight derived from the affinity between the genetic datasets of the two individuals represented by the two nodes.The plurality of nodes includes a target node that represents the mixed individual. The computing server 130 can apply a community detection algorithm to divide the 830 nodes in the graph into a plurality of clusters based on the weights of the edges connecting the nodes. The plurality of clusters represents a plurality of genetic communities. The computing server 130 includes the 840 target node in one or more clusters representing one or more different genetic communities. In one case, the target node is included in two or more genetic communities. For example, computing server 130 might initially use a community detection algorithm to assign the target node to a cluster. Computing server 130 then adds the target node to additional clusters based on one or more criteria, such as a stability measure. For at least one of the clusters in which the target node is included, the computer server 130 divides the cluster into a plurality of sub-clusters. For example, the computer server 130 can apply the same community detection algorithm in steps 830 and 850 when dividing the graph, the clusters, or any of the sub-clusters into additional defined sub-clusters. The computer server 130 can classify the target node into one of the sub-clusters. The target node is grouped into one or more different sub-clusters, representing that mixed individual who is classified into one or more different genetic sub-communities of one or more ethnic origins. As indicated by arrow 860, the computer server 130 can repeat steps 840 and 850 to further assign the target node into more sub-clusters under different paths using the hierarchical procedure. At a particular level of the hierarchical community detection process, whether a target node should be added to additional groups may depend on a stability analysis of the target node to assess how stable the association is between the target node and a group. For example, corresponding to step 820 in FIGURE 8, computer server 130 determines whether the target node's stability with respect to a particular group exceeds a certain threshold. Computer server 130 will then include the target node in the particular group in response to this stability exceeding the threshold. Stability can take the form of a stability measure that quantifies the connection between a target node and a target cluster. Computing server 130 can perform step 830 on a given graph to generate a set of clusters that includes the target cluster. For the same graph, computing server 130 randomly samples a subset of nodes from a plurality of nodes in the graph. The subset of nodes represents a sampled graph, which frequently includes approximately a certain percentage (e.g., 60–80%) of the nodes in the given graph. Computing server 130 repeats the sampling process to generate a plurality of node subsets. Several subsets are generated, representing different sampled graphs. Computing server 130 divides each of the sampled graphs into a plurality of clusters. The result of the division may include the target cluster. It is important to note that the target cluster cannot be completely identical for each sampled graph and may not be identical to the target cluster generated using the unsampled graph because applying the community detection algorithm to a randomly sampled graph can produce different numbers and partitions of communities. Computing server 130 may treat a cluster that has a threshold degree of overlap in terms of the nodes assigned to it with the target cluster generated on the unsampled graph as the same target cluster.Since a certain percentage (e.g., 60-80%) of the nodes can be sampled, the target node can be sampled and selected from some of the sampled graphs. For those sampled graphs in which the target node is sampled, the computer server 130 determines the number of times the target node is classified in the target cluster. For example, the sampling and community detection process can be repeated 20 to 100 times. If the target node appears in, for example, every 14 different sampled graphs, the number of times the target node is classified in the target cluster could be from 0 to 14. The computer server 130 derives the value of the stability measure of the target node with respect to the target cluster.The stability measure can be the ratio of the number of times the target node is classified in the target cluster to the number of times the target node appears in the sampled graphs. If the stability measure exceeds a threshold (for example, 25%), the compute server 130 adds the target node to the target cluster in step 840 for another round of community discovery in the multipath hierarchical procedure. A relatively low threshold (for example, less than 50%) can be set so that the target node can be added to more than one cluster. The 130 computer server can also use stability analysis to determine the reference panel samples for a community. For example, the same stability analysis can be performed for a target community to identify the nodes that most consistently assign to that community. A higher threshold (e.g., 80%, 90%) can be used for the stability measure when selecting reference panel samples. A node that consistently assigns to the target community is selected if the sampling indicates that the node can serve as a representative genetic dataset for the target community. This node can then be selected as the reference panel sample. Figure 9 illustrates an exemplary clustering process in a multi-path community detection procedure, according to one modality. Node 910 is a target node. For the first level of community detection, target node 910 is included in two clusters. For the second path, the target node is also included in two sub-clusters. As such, Figure 9 illustrates at least three paths for assigning target node 910 to three different communities or sub-communities. Community Classification Figure 10 illustrates a flowchart representing a process for detecting a target individual's community, according to a modality. The computer server 130 uses one or more machine learning models trained to calculate, for a given target individual, a score (e.g., a probability) for assigning the target individual to a community. The model can be used to classify existing individuals, for example, some present in the genetic data store 210, or new users who have submitted their DNA samples for inclusion in the computer server 130. Computer server 130 retrieves a genetic dataset from a target individual. Computer server 130 also retrieves a plurality of reference panel samples from the reference panel sample store. Each reference panel sample represents a reference panel individual. At least one of the reference individuals is generated from a filtered IBD network, which is filtered from a full IBD network. The filtered IBD network includes a subset of filtered nodes based on one or more edge or node features, as outlined in Figures 4 through 9. The computer server 130 generates 1030 IBD affinities associated with the target individual. Each IBD affinity is determined by comparing the target individual's genetic dataset to one of the reference panel samples, such as by comparing the phase genetic datasets of the target individual and the reference panel sample. The computer server 130 retrieves 1040 one or more community classifiers. Each community classifier can be a model trained to determine whether an individual belongs to a genetic community. The computer server 130 generates 1050 a feature set for each community classifier. In some modalities, some classifiers can receive either the IBD affinities or the target individual's genetic datasets as features.In other modes, the 130 computer server can convert IBD affinities (and, in some cases, estimate ethnicity) and genetic datasets into a feature vector according to the features selected for each model. Each model receives a different feature vector depending on which features were selected and used to train that particular model. For an identified community or sub-community, the computer server 130 can use training sets with selected features to train a classifier model for that community. For example, the computer server 130 can select features estimated to have high predictive power as the features used in the classification. The features can be extracted from genetic datasets, IBD affinity values, ethnicity estimates, etc. A feature set can be different for various communities. Examples of algorithms that can be used to implement feature selection include, but are not limited to, sparse penalized regression (e.g., Lasso), a forward and / or stepwise regression mode, recursive feature removal, and regularized trees.Computer server 130 uses the selected feature set for this community to train a corresponding model. Once training is complete, the model can generate, for a target individual, either a score or a plurality to predict that individual's assignment to the community. In one mode, the model generates a probability (a real number between 0 and 1), where a number close to 1 indicates that the individual is classified in the community with high confidence, and a number close to 0 indicates with high confidence that the individual is not a member of the community. The training sets include characteristics of known individuals who have been classified into one or more communities. Individuals belonging to the model's target community are assigned training labels of "Ί", indicating that they should be classified into that community. Individuals belonging to any other community are assigned a training label of "0", indicating that they should not be classified into that community. In one case, the classification of training labels may be based on the individual's stability score associated with a particular community. For example, in one modality, individuals with stability scores for a community that are larger than a first threshold are assigned training labels of "Ί", while individuals with stability scores that are smaller than a second threshold are assigned training labels of "2".In one case, individuals with stability scores between the first and second thresholds are not used for training. In another approach, individuals are randomly drawn from an IBD network (filtered or full) and / or reference panel samples to construct the training set provided as input to the model training algorithm and for use in training the model. In other approaches, the input data may be selected differently. The data related to the individuals become features for the model. A suitable machine learning model structure, either supervised or unsupervised, can be used to train the models. Exemplary structures include, but are not limited to, random forests, support vector machines (SVMs), logistic regression, and neural networks. Each model can be associated with a set of weights. The training process involves determining classification results using the training sets and adjusting the model weights to reduce or minimize model errors according to the training labels. Weight adjustment can include one or more techniques such as coordinate descent, stochastic coordinate descent, etc. Training can be considered complete after a specified number of iterations (e.g., number of epochs) or after the error rate no longer improves (e.g., the model has converged).A classification model can be trained and specialized for a single community, although a multi-class classifier for multiple communities is also possible. Multiple models can be trained for a community of pluralities. Computing server 130 stores the models, including the weights of the trained models, as classifiers for the community. After the community classifiers have been trained 540 times, the computer server inputs 1060, for each community classifier, the set of features associated with the target individual to determine whether the target individual belongs to the genetic community. This may include calculating a score, such as a probability, for each model. In one implementation, an individual is classified as belonging to a given community if the probability calculated by the trained model exceeds a numerical threshold value. The threshold for classifying individuals into communities may be the same or different for each model. The output of the community prediction module may include both the classification and the posterior probability for each community (e.g., the confidence level that the classification is correct). The computer server 130 generates a report summarizing one or more genetic communities to which the target individual belongs. Due to a variety of factors, such as the broad genetic diversity of the user base, the varying quality of IBD affinities for different users, and the heterogeneity in the composition of the communities identified in the IBD network, it is possible to predict that an individual is a member of zero, one, or more communities. In one modality, the output of the community prediction module can be reported to a user via a document generated in a GUI. The data reported in the document or GUI can also be based on annotations associated with the community, as well as historical or geographical interpretations extracted from summaries of the annotations associated with the community.This may include geographic features or regions that distinguish the community, and other historical, associated, or economic characteristics of the community that may or may not be reported in the annotations. The computer server 130 can additionally produce reports summarizing IBD connections and other genetic estimates relevant to each community. For example, you can report an estimate of the number of second cousins ​​that are classified as belonging to the same community as the user. Computer Machine Architecture Figure 11 is a block diagram illustrating the components of a computer machine capable of reading instructions from a computer-readable medium and executing them on a processor (or controller). A computer described herein may include a single computer machine shown in Figure 11, a virtual machine, a distributed computer system comprising multiple computer machine nodes as shown in Figure 11, or any other suitable arrangement of computing devices. As an example, FIGURE 11 shows a schematic representation of a computer machine in the exemplary form of a computer system 1100 within which instructions 1124 (e.g., software, program code, or machine code), which may be stored on a computer-readable medium, cause the machine to perform one or more of the processes described herein. In some embodiments, the computer machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked implementation, the machine may operate as a server or client machine in a client-server network environment, or as a machine for a peer-to-peer (or distributed) network environment. The structure of a computer machine described in FIGURE 11 may correspond to any software, hardware, or combined components shown in FIGURES 1 and 2, which include, but are not limited to, the client device 110, the computer server 130, and various engines, interfaces, terminals, and machines shown in FIGURE 2. Although FIGURE 11 shows several hardware and software elements, each of the components described in FIGURES 1 and 2 may include additional or fewer elements. For example, a computing machine can be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a cell phone, a smartphone, a network device, a network router, an internet of things (IoT) device, a switch or bridge, or any machine that is capable of executing 1124 instructions that specify the actions that that machine must carry out. In addition, although only a single machine is illustrated, the term "machine" and "computer" can also be considered to include any collection of machines that individually or jointly execute 1124 instructions to carry out one or more of the methodologies set out herein. The exemplary computer system 1100 includes one or more processors 1102 such as a CPU (central processing unit), a GPU (graphics processing unit), a TPU (tensor processing unit), a DSP (digital signal processor), a system-on-a-chip (SoC), a controller, a status equipment, an application-specific integrated circuit (ASIO), a field-programmable gate array (FPGA), or any combination thereof. Parts of the computer system 1100 may also include a memory 1104 that stores computer code, including instructions 1124 that can cause the processors 1102 to perform certain actions when the instructions are executed, directly or indirectly, by the processors 1102.Instructions can be any address, command, or request that can be stored in different forms, such as machine-readable instructions, programming instructions including source code, and other communication signals and requests. The term "instructions" can be used in a general sense and is not limited to machine-readable code. One or more methods described herein improve the operating speed of processors 1102 and reduce the space required for the improvement 1104. For example, the machine learning methods described herein reduce the computational complexity of processors 1102 by applying one or more novel techniques that simplify the training steps, achieve convergence, and generate results for processors 1102. The algorithms described herein also reduce the size of models and datasets to lower the storage space requirement for memory 1104. The performance of some operations may be distributed among the other processors, not only within a single machine, but deployed across multiple machines. In some exemplary embodiments, the one or more processors or modules implemented by the processor may be located in a single geographical location (e.g., within a home environment, an office environment, or a server farm). In other exemplary embodiments, the one or more processors or modules implemented by the processor may be distributed across multiple geographical locations. Although the specification or claims may refer to some processes being carried out by a processor, this should be construed as including the joint operation of multiple distributed processors. The computer system 1100 may include a main memory 1104 and a static memory 1106, which are configured to communicate with each other via a bus 1108. The computer system 1100 may further include a graphics display unit 1110 (for example, a plasma display panel (PDP), a liquid crystal display (LCD), a projector, or a cathode ray tube (CRT)). The graphics display unit 1110, controlled by the processors 1102, displays a graphical user interface (GUI) for visualizing one or more results and data generated by the processes described herein. c / zRzn / Lznz / q / YiAi The computer system 1100 may also include an alphanumeric input device 1112 (for example, a keyboard), a cursor control device 1114 (for example, a mouse, trackball, joystick, motion sensor, or other pointing instrument), a storage unit 1116 (a hard disk, solid-state disk, hybrid disk, memory disk, etc.), a signal-generating device 1118 (for example, a loudspeaker), and a network interface device 1120, which are also configured to communicate via bus 1108. The storage unit 1116 includes a computer-readable medium 1122 in which instructions 1124 are stored, incorporating one or more of the methodologies or functions described herein. Instructions 1124 may also reside, wholly or at least partially, within main memory 1104 or within the processor 1102 (for example, within a processor's cache) during their execution by the computer system 1100. Main memory 1104 and the processor 1102 also constitute the computer-readable medium. Instructions 1124 may be transmitted or received over a network 1126 through the network interface device 1120. Although computer-readable medium 1122 is shown in an exemplary form, as a single medium, the term “computer-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions (e.g., instructions 1124). Computer-readable medium may include any medium capable of storing instructions (e.g., instructions 1124) for execution by processors (e.g., processors 1102) and causing the processors to perform one or more of the methodologies described herein. Computer-readable medium may include, among others, data repositories in the form of solid-state memories, optical media, and magnetic media. Computer-readable medium does not include a transient medium, such as a propagating signal or carrier wave. Additional Considerations The foregoing description of the forms has been presented for illustrative purposes; it is not intended to be exhaustive and does not limit patent rights to the precise forms described. Those skilled in the relevant art may appreciate that many modifications and variations are possible in light of the foregoing description. The embodiments according to the invention are described in particular in the attached claims relating to a method and a software product, wherein any feature mentioned in one claim category, for example, software product, system, or storage medium, may also be claimed in another claim category, for example, software product, system, or storage medium. The dependencies or references in the attached claims are chosen for formal reasons. However, any subject matter resulting from a deliberate reference to any preceding claim (in particular, multiple dependencies) may also be claimed so that any combination of a claim and its features is described and may be claimed independently of the dependencies chosen in the attached claims.The subject matter that may be claimed comprises not only the combinations of features set forth in the described embodiments, but also any other combination of features from different embodiments. Several features mentioned in the different embodiments may be combined with explicit mention of such combination or arrangement in an exemplary embodiment. Furthermore, any of the embodiments and features described or depicted herein may be claimed in a separate claim and / or in any combination with any embodiment or feature described or depicted herein or with any of the features. Some parts of this description describe the modalities in terms of algorithms and symbolic representations of operations on information. These operations and algorithmic descriptions, as described functionally, computationally, or logically, are understood to be implemented simply through computer programs or equivalent electrical circuits, microcode, or similar. Furthermore, it has sometimes been convenient to refer to these operating arrangements as engines, without loss of generality. The operations described and their associated engines can be incorporated into software, firmware, hardware, or any combination thereof. Any of the steps, operations, or processes described herein may be carried out or implemented using one or more hardware or software engines, alone or in combination with other devices. In one embodiment, a software engine is implemented with a computer program product comprising a computer-readable medium containing computer program code, which can be executed by a computer processor to carry out any or all of the steps, operations, or processes described. The term “steps” does not require or imply any particular order. For example, while this description may depict a process that includes multiple steps sequentially, indicated by arrows in a flowchart, the steps in the process need not be performed in the specific order claimed in the description. Some steps may be performed before others, even though the other steps are claimed or described first in this description. Throughout this specification, plural cases can implement components, operations, or structures described as a single case. Although the individual operations of one or more methods are illustrated and described as separate operations, one or more of the individual operations can be performed concurrently, and nothing requires that the operations be performed in the illustrated order. Structures and functionalities The elements presented as separate components in the exemplary configurations in C / 7R7n / l 7P7 / 3 / YILI may be implemented as a combined structure or component. Similarly, the structures and functionalities presented as an individual component may be implemented as separate components. These and other variations, modifications, additions, and improvements are within the scope of this specification. Furthermore, the term “each” used in the specification and claims does not imply that each or all elements in a group need conform to the description associated with the term “each.” For example, “each member is associated with element A” does not imply that all members are associated with element A. Instead, the term “each” only implies that one member (of some of the members), in a singular way, is associated with element A. Finally, the language used in the specification has been selected primarily for readability and instructional purposes, and may not have been chosen to delineate or circumscribe the patent rights. Therefore, it is proposed that the scope of the patent rights be limited not by this detailed description, but rather by any of the claims that form part of an application based on it. Accordingly, the description of the modalities is intended to be illustrative, but not limiting, of the scope of the patent rights. The following applications are incorporated by reference in their entirety for all purposes: (1) U.S. Patent Application No. 15 / 591,099, entitled “Haplotype Phasing Models”, filed October 19, 2015, (2) U.S. Patent Application No. 15 / 168,011, entitled “Discovering Population Structure from Patterns of Identity-By-Descent”, filed May 28, 2016, (3) U.S. Patent Application No. 15 / 209,458, entitled “Local Genetic Ethnicity Determination System”, filed July 13, 2016, and (4) U.S. Patent Application No. 14 / 029,765, entitled “Identifying Ancestral Relationships Using a Continuous Stream of Input”, filed September 17, 2013. C / 7R7n / L7n7 / q / YIAI NOVELTY OF THE INVENTION Having described the present invention, the following is considered novel and is therefore claimed as property:

Claims

1. A computer-implemented method, characterized in that it comprises: retrieving a plurality of genetic datasets corresponding to a plurality of individuals; generating a full graph, the full graph comprising a plurality of nodes, each node representing one of the individuals, two or more nodes being connected via edges, each edge connecting the nodes and being associated with a weight derived from the affinity between the genetic datasets of the two individuals represented by the two nodes; filtering the full graph based on one or more features associated with the edges or nodes to generate a filtered graph comprising a subset of nodes; and dividing the subset of nodes in the filtered graph into a plurality of clusters based on the weights of the edges connecting the nodes in the subset, each cluster representing a genetic community.

2. The computer-implemented method according to claim 1, characterized in that the affinity between the genetic data sets of the two individuals corresponds to a length of shared identity per offspring (IBD) genetic segments of the two individuals as determined by comparing the genetic data sets of the two individuals.

3. The computer-implemented method according to claim 1, characterized in that the filtering of the entire graph is based on a feature of the edges, and wherein the feature, for each edge, corresponds to a time frame assigned an estimated average birth years of the common ancestors of the two individuals represented by the two nodes connected by the edge.

4. The computer-implemented method according to claim 3, characterized in that the time frame, by at least one edge, is determined from a length of shared identity per offspring (IBD) genetic segments of the two individuals as determined by comparing the genetic datasets of the two individuals.

5. The computer-implemented method according to claim 3, characterized in that the time frame, by at least one boundary, is determined by a machine learning model that uses a shared identity per offspring (IBD) genetic segment length of the two individuals as an input.

6. The computer-implemented method according to claim 5, characterized in that the machine learning model training comprises: identifying, based on the users' genetic dataset, a plurality of user pairs that are related by an IBD sharing length; retrieving family tree data from the user pairs; determining that each user pair shares one or more common ancestors; identifying the common ancestors who have available birth year data; generating training sets comprising the common ancestor's birth year timeframe and the IBD sharing length; and training the machine learning model using the training sets.

7. The computer-implemented method according to claim 1, characterized in that the filtering of the entire graph is based on a feature of the nodes, wherein the feature, for each node, corresponds to the genetic dataset of the individual represented by the node, the genetic dataset indicating that a length of the genetic segments of the individual that are inherited from a target ethnicity exceeds a threshold.

8. The computer-implemented method according to claim 7, characterized in that the length of the genetic segments of the individual that are inherited from the target ethnicity is determined by comparing the genetic dataset with one or more reference panel samples of the target ethnicity.

9. The computer-implemented method according to claim 1, characterized in that the filtered graph is a first filtered graph, and wherein the filtering of the complete graph is based on the first target ethnicity presented in the ethnic compositions of the individuals, and wherein the computer-implemented method further comprises: filtering the complete graph based on a second target ethnicity presented in the ethnic compositions of the individuals to generate a second filtered graph, wherein at least one node in the second filtered graph is also present in the first filtered graph.

10. The computer-implemented method according to claim 1, characterized in that the division of the subset of nodes in the filtered graph into a plurality of clusters comprises: defining a plurality of partitions in the filtered graph, each partition representing a candidate genetic community; determining a measure for the partitions, the measure being a value that is increased by the weights of the edges connecting two nodes that are classified into the same partition and decreased by the weights of the edges connecting the nodes in one partition to the nodes in another partition; and adjusting the plurality of partitions to increase the value of the measure, the adjusted partitions being the clusters.

11. A computer-implemented method, characterized in that it comprises: retrieving a plurality of genetic datasets corresponding to a plurality of individuals, the plurality of individuals including a hybrid individual; generating a graph, the graph comprising a plurality of nodes, each node representing one of the individuals, two or more nodes being connected via edges, each edge connecting two nodes and associated with a weight derived from an affinity between the genetic datasets of the two individuals represented by the two nodes, the plurality of nodes including a target node representing the hybrid individual; dividing the nodes in the graph into a plurality of clusters based on the weights of the edges connecting the nodes, the plurality of clusters representing a plurality of genetic communities; and including the target node in one or more clusters representing one or more genetic communities.to divide, by at least one of the groupings in which the target node is included, the at least one of the groupings into a plurality of sub-groupings, the target node is classified into one or more sub-groupings, wherein the target node is classified into one or more different sub-groupings representing the mixed individual who is classified into one or more different genetic sub-communities of one or more ethnic origins.; 12. The computer-implemented method according to claim 11, characterized in that the inclusion of the target node in one or more groupings comprises: determining whether the target node has stability with respect to a target grouping that exceeds a threshold, and including the target node in the target grouping that responds to the stability exceeding the threshold.

13. The computer-implemented method according to claim 12, characterized in that the determination of whether the target node has stability with respect to the target cluster exceeding the threshold comprises: generating a plurality of node subsets, each node subset sampled from the plurality of nodes in the graph, each node subset representing a sampled graph; dividing each of the sampled graphs into a second plurality of clusters, one of the second plurality of clusters corresponding to the target cluster; determining, for the sampled graphs in which the target node is sampled, a number of times the target node is classified into the target cluster; deriving the stability of the target node with respect to the target cluster from the number of times; and comparing the stability of the target node with the threshold.

14. The computer-implemented method according to claim 11, characterized in that the division of the nodes in the graph into a plurality of clusters comprises: defining a plurality of partitions in the graph, each partition representing a candidate genetic community; determining a measure for the partitions, the measure being a value that is increased by the weights of the edges connecting two nodes that are classified into the same partition and decreased by the weights of the edges connecting nodes in one partition to nodes in another partition; and adjusting the plurality of partitions to implement the value of the measure, the adjusted partitions being the clusters.

15. The computer-implemented method according to claim 11, characterized in that the division of the nodes in the graph into a plurality of clusters uses a clustering algorithm that is the same as that for dividing, for each cluster in which the target node is included, the cluster into a plurality of sub-clusters.

16. The computer-implemented method according to claim 11, characterized in that the affinity between the genetic data sets of the two individuals corresponds to a length of shared identity per offspring (IBD) genetic segments of the two individuals as determined by comparing the genetic data sets of the two individuals.

17. The computer-implemented method according to claim 11, characterized in that the graph is a partially connected undirected graph.

18. A computer-implemented method, characterized in that it comprises: retrieving a set of genetic data from a target individual; retrieving a plurality of reference panel samples, each reference panel sample representing a reference panel individual, at least some of the reference individuals being generated from a filtered identity by descent (IBD) network that is filtered from a full IBD network, the full IBD network comprising a plurality of nodes, each node representing an individual, two or more nodes connecting via edges, each edge connecting two nodes and being associated with a weight derived from the IBD affinity between the two individuals represented by the two nodes, the filtered IBD network including a subset of filtered nodes based on one or more features of the edges or nodes;generate a plurality of IBD affinities associated with the target individual, each IBD affinity being determined by comparing the target individual's genetic dataset to one of the reference panel samples; retrieve a community classifier, the community classifier comprising a machine learning model configured to determine whether an individual belongs to a genetic community; generate a feature set associated with the target individual, the feature set being generated based on a plurality of IBD affinities; input the feature set into the community classifier to determine whether the target individual belongs to the genetic community; and generate a report summarizing one or more genetic communities to which the target individual belongs.

19. The computer-implemented method according to claim 18, characterized in that the filtered IBD network is filtered based on a feature of the edges, and the feature, for each edge, corresponds to a time frame assigned to an estimated average birth years of the common ancestors of the two individuals represented by the two nodes connected by the edge.

20. The computer-implemented method according to claim 18, characterized in that the filtered IBD network is filtered based on a feature of the nodes, and the feature, for each node, corresponds to the genetic dataset of the individuals represented by the node, the genetic dataset indicating that a length of the genetic segments of the individual that are inherited from a target ethnicity exceeds a threshold.