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. <EOS>