A computer-implemented method of identifying a compound for targeting one or more target genes, the method comprising: searching a database for first candidate compounds that each target one or more first target genes; generating a first fingerprint for each first candidate compound by: searching the database for genes associated with the first candidate compound, predicting genes associated with the first candidate compound using a machine learning model trained to predict a gene interaction profile for a range of compounds, and building the first fingerprint using the genes returned by the search and the predicted genes; and filtering the first candidate compounds using the first fingerprints to identify a first optimum compound for targeting the one or more first target genes, wherein filtering the first candidate compounds comprises: combining filtering by comparing each of the first fingerprints to an ideal fingerprint of a theoretical tool compound and filtering by using metrics generated from the first fingerprints, wherein the metrics comprise one or more of: molar weight, the logarithm of the partition coefficient (logP), the number of hydrogen bond acceptors or donors, enzyme activity such as values of the half maximal inhibitory concentration of the compound or the half maximal effective concentration of the compound in assay, selectivity of a compound for a target gene, number of unwanted genes that the compound affects, potency of the compound for a gene, solubility, and cell data providing an indication of the activity of a compound in a cellular assay, where each fingerprint comprises a polypharmacology fingerprint that describes which genes the compound is associated with. searching a database for first candidate compounds that each target one or more first target genes; generating a first fingerprint for each first candidate compound by: searching the database for genes associated with the first candidate compound, predicting genes associated with the first candidate compound using a machine learning model trained to predict a gene interaction profile for a range of compounds, and building the first fingerprint using the genes returned by the search and the predicted genes; and searching the database for genes associated with the first candidate compound, predicting genes associated with the first candidate compound using a machine learning model trained to predict a gene interaction profile for a range of compounds, and building the first fingerprint using the genes returned by the search and the predicted genes; and filtering the first candidate compounds using the first fingerprints to identify a first optimum compound for targeting the one or more first target genes, wherein filtering the first candidate compounds comprises: combining filtering by comparing each of the first fingerprints to an ideal fingerprint of a theoretical tool compound and filtering by using metrics generated from the first fingerprints, wherein the metrics comprise one or more of: molar weight, the logarithm of the partition coefficient (logP), the number of hydrogen bond acceptors or donors, enzyme activity such as values of the half maximal inhibitory concentration of the compound or the half maximal effective concentration of the compound in assay, selectivity of a compound for a target gene, number of unwanted genes that the compound affects, potency of the compound for a gene, solubility, and cell data providing an indication of the activity of a compound in a cellular assay, where each fingerprint comprises a polypharmacology fingerprint that describes which genes the compound is associated with. combining filtering by comparing each of the first fingerprints to an ideal fingerprint of a theoretical tool compound and filtering by using metrics generated from the first fingerprints, wherein the metrics comprise one or more of: molar weight, the logarithm of the partition coefficient (logP), the number of hydrogen bond acceptors or donors, enzyme activity such as values of the half maximal inhibitory concentration of the compound or the half maximal effective concentration of the compound in assay, selectivity of a compound for a target gene, number of unwanted genes that the compound affects, potency of the compound for a gene, solubility, and cell data providing an indication of the activity of a compound in a cellular assay, where each fingerprint comprises a polypharmacology fingerprint that describes which genes the compound is associated with.