1. A computer-based recommendation system comprising: a user interface connected to at least one processor; and at least one set of memory for storing data element information, user information, and computer readable instructions that, when executed by the processor, cause the processor to perform the steps of: a. receiving a user input query from the user interface; b. calculating a distance between each data element and user based on; i. similarity of structural data associated with each data element, ii. similarity of annotation information associated with each data element, and iii. usage information associated with data elements, wherein at least some of the structural data is selected from a list comprising: type of data, domain relationships between data items, experimental subject, subject species, parameters of acquisition, sequence or timing, wherein at least some of the annotation information is selected from a list comprising: keyword tags, key-value metadata, region-of-interest annotations in time and/or space, or user-inputted information, and wherein at least some of the usage information is selected from a list comprising: order of interaction, views, incorporation in analysis, sharing with others, publishing, recommending to the user, or user interaction with the data elements; c. inputting the calculated distances between each data element into a recommendation algorithm to identify data elements or users based on the query input, wherein the recommendation algorithm is based in part on the magnitude of the calculated distances; and d. outputting a list of recommended data elements or users based on the query input.