Predicting gene expression from heterogeneous data