1. A computer-implemented method for generating a database of pharmacophores for use in classifying one or more query molecules for drug discovery and repurposing, comprising the steps of: (a) defining, in one or more computers, a joint pharmacophore space comprising a plurality of pharmacophores, each of the plurality of pharmacophores comprising a geometric arrangement of at least three pharmacophoric features, and the defining step comprising the steps of: (i) providing a dataset comprising a plurality of molecules, wherein each of the molecules is identified as active or inactive towards a biological activity; (ii) identifying the pharmacophoric features for each of the molecules; (iii) defining three-dimensional coordinates for the pharmacophoric features; and (iv) extracting the geometric arrangement from a triplet of the three-dimensional coordinates, wherein the triplet defines a triangle type and the triangle type is determined from an order of the pharmacophoric features; (b) converting, in one or more computers, molecules into feature vectors by identifying subspaces within the joint pharmacophore space, each subspace having an associated subset of the pharmacophores with similar geometric arrangements, and the identifying step comprising the steps of: (i) grouping the geometric arrangements according to the triangle type, wherein the geometric arrangements with similar triangle types are grouped as a triangle group; and (ii) clustering the geometric arrangements in each triangle group into the subspaces according to distances between the geometric arrangements; (c) assigning, in one or more computers, a biological activity property and a representative geometric arrangement for each subspace identified to correlate with a targeted biological activity; and (d) storing, in one or more computers, the joint pharmacophore space, subspaces, biological activity properties, and representative geometric arrangements in the database of pharmacophores.