A method for performing trusted computations on sensitive data performed by a system comprising a processor and a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the system to perform the method, the method comprising: receiving, by an execution manager executing on the system, a request from a user to perform a computation using a genomic data set; loading a first program associated with the computation within a first virtualized execution environment executing on the system; generating, by the execution manager, first execution context for the first program; receiving, by a data access proxy module executing on the system, a first data request from the first program to use the genomic data set; generating, by the data access proxy module, a first secure data request, the first secure data request being generated by transforming the first data request in accordance with the first execution context; sending, by the data access proxy module to a data store managing the genomic data set, the first secure data request; wherein the method further comprises: receiving, by the data access proxy module from the data store, a first secure data response based on the first secure data request; generating, by the data access proxy module, a first response to the first data request, the first response being generated by transforming the first secure data response in accordance with the first execution context; sending, to the first program by the data access proxy module, the first response to the first data request; and sending, by the execution manager, a response to the request from the user generated based on the first response. receiving, by an execution manager executing on the system, a request from a user to perform a computation using a genomic data set; loading a first program associated with the computation within a first virtualized execution environment executing on the system; generating, by the execution manager, first execution context for the first program; receiving, by a data access proxy module executing on the system, a first data request from the first program to use the genomic data set; generating, by the data access proxy module, a first secure data request, the first secure data request being generated by transforming the first data request in accordance with the first execution context; sending, by the data access proxy module to a data store managing the genomic data set, the first secure data request; wherein the method further comprises: receiving, by the data access proxy module from the data store, a first secure data response based on the first secure data request; generating, by the data access proxy module, a first response to the first data request, the first response being generated by transforming the first secure data response in accordance with the first execution context; sending, to the first program by the data access proxy module, the first response to the first data request; and sending, by the execution manager, a response to the request from the user generated based on the first response. receiving, by the data access proxy module from the data store, a first secure data response based on the first secure data request; generating, by the data access proxy module, a first response to the first data request, the first response being generated by transforming the first secure data response in accordance with the first execution context; sending, to the first program by the data access proxy module, the first response to the first data request; and sending, by the execution manager, a response to the request from the user generated based on the first response.