Creating large genetic datasets is an expensive and timedemanding task in the case of most diseases, as it involves patient recruitment, laboratory work, sequencing equipment, and bioinformatics expertise. In many instances, data is classified as Protected Health Information (PHI) [1] , making it difficult to obtain and to handle. There is also a range of intrinsic characteristics within this domain that increase the complexity of archiving and handling this data. Firstly, it may be difficult to obtain patients from the right population to extract the genetic material from. Secondly, maintaining the quality of the analysis is not a trivial process due to biological and technical noise, which varies between laboratories and/or between batches.
With current advancements in Machine Learning algorithms applied to human genetics [2] - [4] , large datasets are increasingly needed in order to support the use and analysis of a variety of data-intensive algorithms. Therefore, new mechanisms that are capable of generating coherent synthetic genetic data would be a remarkable advancement within this field.
However, genetic data on neglected diseases is notoriously scarce. This is the case of Dengue disease, a viral disease most commonly found in tropical areas of under-developed and developing countries. Dengue is a global public health concern with an annual global incidence of 390 million cases [5] . There is evidence supporting that the disease progression is genetically influenced [6] - [9] , but, as mentioned previously, genetic data on Dengue is scarce.
Recently, we employed machine learning algorithms to find associations between profiles of single-nucleotide polymorphisms (SNPs) and disease severity using a small data set from a cohort of patients in Recife, Brazil [10] . In this paper, we propose gGAN, an innovative Generative Adversarial Network (GAN) architecture to create large synthetic genetic data starting with the small amount of labeled data used in the previous study and a large amount of unlabeled data from the human 1000 genome project. This leads to a semi-supervised classifier that is able to predict the genetic predisposition to severe dengue of a patient, even if their genetic profile is from a different population than the one originally used to train the classifier (in this case, a Brazilian population). The classifier is self-aware in that one of the outputs of the proposed GAN is able to discriminate whether a given test genetic profile is sufficiently compatible with the genetic profiles in the training population. Even though we use dengue to demonstrate our method, it is entirely general and can be applied to other diseases.
Genome-wide association studies (GWAS) are a powerful tool for identifying genetic influences in diseases, particularly for conditions influenced by a variety of genes and environmental factors at once [11] . These techniques are historically used for finding genetic differences in case-controlled studies for particular diseases.
One of the biggest concerns related to genetic studies is the size of the patient cohort used in the experiments. As mentioned previously, obtaining a patient cohort is a hard and expensive task. Moreover, the discrepancy between the size of the cohort and the number of features is a frequent burden. This occurs due to the large number of Single Nucleotide Polymorphisms (SNPs) in the human genome, which, on average, occur almost once in every 1,000 nucleotides. This means there are roughly 4 to 5 million SNPs in a person's genome. This factor can easily lead to overfitting due to the curse of dimensionality [12] . To overcome this, feature selection becomes necessary. Dengue disease is a global public health concern caused by the Dengue Virus (DENV), a positive-sense RNA virus from the Flaviviridae family. According to the 2009 World Health Organization (WHO) Dengue classification guideline [13] , symptomatic infection by DENV can range from a mild disease know as Dengue Fever (DF), to a more severe disease known as Severe Dengue (SD), which displays hemorrhagic complications that may eventually culminate in the death of the host individual.
There is evidence that some individuals may be genetically predisposed to some prognostic of the Dengue disease [6] , [7] . More specifically, studies have found associations between the genetic expression, mostly in the innate and in the adaptive response pathways, and the Dengue infection phenotype [14] - [18] . Also, there are efforts to use Machine Learning techniques to find associations between static genetic profiles and dengue severity [10] , [19] .
Generative Adversarial Networks (GAN) [20] are a promising ML approach to generate synthetic data. GANs are commonly used to generate synthetic images from a known training set. However, there are applications of GANs in other domains [21] , including genetics [22] . There is also a report of a semi-supervised approach to GANs [23] , for classification of the MNIST dataset [24] .
This section describes the steps performed to create the model. We begin with pre-processing of our datasets, then describe the model itself, and finally how it was trained. The tests and results are described in the next section.
We used two primary datasets from real genetic data available to the research community. The first is a dataset labeled with the Dengue Infection phenotype in human subjects. Patients with dengue-related symptoms were screened from three hospitals in the city of Recife, Brazil; this population constitutes the domain D l . The first dataset, denoted as X l , was extracted from this population, and it consists of 102 patient genotypes measured at 322 loci polymorphisms. The methods of extraction and genotyping and cohort description for the labeled dataset can be found in [25] .
The second dataset contains unlabeled genetic data from Phase 3 of the 1000 Genomes Project [26] (which consists of 2504 individuals genotyped for more than 84 million variants). The 1000 Genomes Project maps genetic information from populations around the world; we call this population D u . The unlabeled dataset X u consists of the same set of 322 loci in the labeled dataset, extracted from the 1000 Genomes Collection. An important step in the manipulation of this kind of data is that we estimated each of the allelic frequencies [27] . Different populations tend to have different frequencies due to their diverse genomic background [28] . These differences may affect the performance of the discriminator network, which would try to learn from two datasets with different frequency distributions. With this in mind, we compared these frequencies between the labeled dataset and the unlabeled dataset. We measured the frequencies for each allele of each variant in both datasets and assume the largest difference between them as their frequency proximity. The Allelic Frequency Distance (AFD) between two domains is defined as
In equation (1), f i is the frequency of a specific allele i within the n i possible values for each nucleotide in population X . After this, we established certain thresholds to sampling the data and used them to create different INPUT configurations to Fig. 2 . Model architecture. The discriminator network is fed two datasets (labeled dataset (n=102), unlabeled dataset (n=2504)) and the synthetic genetic profiles from the generator network. The discriminator training consists of two phases, the first using real unlabeled data and synthetic data, and the second using labeled data. the network. We used thresholds of 0.7, 0.1, and 0.21 resulting in subsets of 12, 25, and 96 SNPs, as shown in Figure 1 . Those subsets were used to build the models M 1 , M 2 and M 3 , respectively.
We also used a subset of SNPs chosen in [10] . In that paper, a Support Vector Machine was used to find the best SNPs to discriminate Severe Dengue. As a result, 13 SNPs were found as the most adequate ones to be used to classify the severe form of the disease. One of those SNPs was not genotyped in the 1000 Genome Project, so it was removed from this set, resulting in 12 SNPs for model M 4 .
We modified the traditional GAN architecture to work with both labeled and unlabeled data. In the traditional GAN model, the discriminator has only one output, which classifies the input as real or fake (synthetic). In our case, we want to predict the label of a test genetic profile ("Dengue Fever" or "Severe Dengue") in addition to classifying between real or fake. In order to archive this, we added a new output to the discriminator network. This is illustrated in Figure 2 . Tables I and II give a detailed overview of the layers of the discriminator and generator networks in the implementation of the proposed paradigm. All layers and operators in these tables are described in Tensorflow API notation. Notice that all generators have inputs of the same length. The generators are always fed with random noise, and in this case, we opted to keep the same size for all the models. The Upsample layer simply increases the size of the layer by duplicating it.
During training, the discriminator network weights are updated using the labeled and unlabeled data. This update occurs in turns (labeled and then unlabeled) for each epoch of training. First the network M m,disc , for m = 1, . . . , 4, is Output l (2, 1) Output l (2, 1) Output l (2, 1) Outputu(2, 1)
Outputu(2, 1) Outputu(2, 1) Outputu(2, 1) exposed to the labeled samples in D l , and a loss L(D l ) is calculated using the binary cross-entropy [29] :
where N is the batch size, (y i0 , y i1 ) is a one-hot encoding for the training label ("Dengue Fever" or "Severe Dengue"), and (ŷ i0 ,ŷ i1 ) is the softmax output of the discriminator corresponding to training profile x i , for i = 1, . . . , N . Next, the weights are updated using profiles in D u using the loss function:
where M is the batch size, (y i0 , y i1 ) is a one-hot encoding for the training label ("fake" or "real"), and (ŷ i0 ,ŷ i1 ) is the softmax output of the discriminator corresponding to training profile x i , for i = 1, . . . , M . The training batch is composed by unlabeled real samples (D u ) and synthetic samples (D g ) created by the generator model. On the other hand, the weights of the generator network are updated using random noise as the input data set, denoted by D r . A synthetic sample will be produced using this random input and then the discriminator will classify it as real or fake data. Based on this answer, the binary cross-entropy is used to calculate the loss:
where P is the batch size, (y i0 , y i1 ) = (0, 1) is a one-hot encoding for the training label (all profiles are "fake"), and (ŷ i0 ,ŷ i1 ) is the softmax output of the discriminator corresponding to the random genetic profile x i , for i = 1, . . . , P .
The dataset from the labeled domain D l was split into training and testing following a proportion of 80% for training and the remaining 20% for testing. This resulted in a training dataset X ltrain containing 72 labeled genetic profiles, and testing dataset X ltest with the remaining 20 labeled profiles. We used the whole unlabeled dataset to train during the unlabeled step and selected 20% as a testing dataset X utest , for a total of 502 unlabeled testing profiles.
In our implementation, the batch size for training the supervised discriminator was N = 10, selected randomly from the labeled dataset each time. Also, 50 randomly selected profiles from the unlabeled dataset with an additional 50 profiles created by the generator network were used to train the unsupervised discriminator, for a batch size M = 100. Finally, P = 100 random genetic profiles were used to train the generator model.
We followed two testing procedures to perform accuracy estimation. The first, denoted by T 1 , simply measures the accuracy of each of the discriminator outputs, independently. The second, denoted by T 2 , aggregates both of the discriminator outputs. Testing procedure T 1 calculates the labeled accuracy Acc (D l ) and unlabeled accuracy Acc (Du) on the testing data sets X ltest and X utest , respectively. Testing procedure T 2 uses the testing dataset X ltest to simulate a deployment scenario. It is a two-step procedure: first, it checks if the discriminator is able to recognize the test profile as a real profile, and calculates the accuracy Acc 1(D l ) on the testing dataset. After that, it verifies if the labeled output matches the actual data label, producing an accuracy estimate Acc 2(D l ) using only the correctly predicted profiles in the first step. The accuracy rates obtained in our experiments according to testing procedures T 1 and T 2 are displayed in Table III .
The first two columns in Table III from testing procedure T 1 show good results for the unlabeled output for all models, meaning that gGAN has good performance when differentiating between real and synthetic data. Models M 2 , and M 3 correctly classified almost all of the test profiles in the X utest dataset (n=500). Model M 4 , using the SNPs obtained by the SVM-RFE method, showed superior results, obtaining 94.3% accuracy when discriminating test profiles in X utest as real or synthetic, and nearly 93.75% accuracy on the labeled testing profiles in X ltest (these results are similar to the ones obtained in [10] ). The next two columns in Table III from testing procedure T 2 show that all models built with AFD SNPs display high accuracy on testing profiles in X ltest , which reinforces the AFD hypothesis for selecting the best SNPs. On the other hand, AFD ignores the relationship between the SNPs and the dengue phenotype, as it only considers the similarity between SNPs. This can be noticed in the results for Acc 2(D l ) . Model M 4 is far more accurate in this respect, which confirms that the SNPs used by M 4 have information on the Dengue phenotype.
In this paper, we introduced a novel approach to train GANs, which is capable of generating labeled genetic datasets using a small labeled dataset and a larger unlabeled dataset, exploiting concepts of semi-supervised learning and data augmentation to create a new approach to deal with the limited labeled data available to researchers.
The proposed gGAN architecture modifies the usual perspective on GANs: instead of a tool solely designed to generate labeled genetic profiles, it also provides a classifier with a level of confidence. Previous ML methods to classify diseases based on genetic information are not aware of data coming from new populations. With gGAN, one may see the unlabeled output as a self-aware output. While the labeled output of the discriminator predicts whether the individual with the corresponding genetic profile is likely to develop Severe Dengue, the unlabeled output predicts whether the genetic profile is real or synthetic. Given a real genetic profile, if the gGAN classifies it as not real (i.e., synthetic), we can infer that it was most likely never seen before and thus is not appropriate for prediction by the model.
The differences within the allelic frequencies between populations is a challenge when one is using multiples datasets from different populations. Indeed, even the 1000 Genome Dataset [26] is composed of different populations and is therefore subject to a variety of allelic frequencies itself. Due to limitations on the size of our datasets, we opted to filter the datasets using the AFD, but other approaches would have also been possible if a good sample of both labeled and unlabeled data were available for a population. Since we utilized the labeled dataset from Recife, Brazil [25] , and there is no large unlabeled dataset for this specific population, we had to construct our own AFD thresholds. Another possible approach to this issue would be to use Style Transfer to somehow make the synthetic data with frequencies between those of the two datasets.
Nevertheless, our methods produced good results using the SNPs selected by [10] using the same labeled dataset we are using here. In their work, they chose the 13 most representative SNPs to classify Severe Dengue. Indeed, we had good results using those SNPs in the labeled phase of the training and test. However, we also had surprisingly good results using the unlabeled output of the discriminator network, which lead us to believe that the discriminator was able to generalize well, even with the allelic frequencies discrepancies.
As expected, the results of the model M 4 in the tests using X ltest were far better than the models trained using the AFD method to select SNPs. Also, the model M 2 had a fair accuracy (almost 70%) if we think of it as a triage tool for prognosis. Those results are even more acceptable during disease outbreaks, when more specific tests are commonly scarce and expensive. Another important aspect is that it can be applied at any stage of the disease, or even before infection, and can use a broad choice of human sample tissue, since it is only based on genetic profiles.
The COVID-19 pandemic is a good example of a scenario where the method described here could bring great benefits to society. Our approach could be used to help triage patients with a level of confidence. It could also be used to avoid exposure of healthcare professionals who are sensitive to the disease. The proposed method could be a powerful tool to help public health efforts against a new outbreak.