def plot_by_genes(rdata, tenx_analysis, genes, prefix, rep, pcs): tenx = TenxAnalysis(tenx_analysis) tenx.load() sce = SingleCellExperiment.fromRData(rdata) tsne_dims = sce.getReducedDims(rep) barcodes = sce.colData["Barcode"] transcripts = sce.rowData["Symbol"] adata = tenx.create_scanpy_adata(barcodes=barcodes, transcripts=transcripts) x_coded = dict(zip(barcodes, tsne_dims[0])) y_coded = dict(zip(barcodes, tsne_dims[1])) if not os.path.exists("figures/expression"): os.makedirs("figures/expression") x = [] y = [] for barcode in barcodes: x.append(x_coded[barcode]) y.append(y_coded[barcode]) for gene in genes: expression = [] for barcode in barcodes: val = adata[barcode, gene].X expression.append(float(val)) f, ax = plt.subplots(figsize=(10, 8)) sns.scatterplot(x=x, y=y, hue=expression, alpha=0.85) ax.set_title("{} Counts".format(gene)) ax.legend() plt.tight_layout() plt.savefig("figures/expression/expression_{}.png".format(gene))
def umap_by_gene(rdata, gene, prefix, pcs): tenx = TenxAnalysis(tenx_analysis) tenx.load() sce = SingleCellExperiment.fromRData(rdata) tsne_dims = sce.reducedDims["UMAP"] barcodes = sce.colData["Barcode"] transcripts = sce.rowData["Symbol"] adata = tenx.create_scanpy_adata(barcodes=barcodes, transcripts=symbols) assert len(barcodes) == len(adata[:, gene]) expression = dict(zip(barcodes, adata[:, gene])) tsne_dims = numpy.array(tsne_dims).reshape(2, len(barcodes)) x_coded = dict(zip(barcodes, tsne_dims[0])) y_coded = dict(zip(barcodes, tsne_dims[1])) x = [] y = [] clusters = [] for barcode in barcodes: clusters.append(float(expression[barcode])) x.append(x_coded[barcode]) y.append(y_coded[barcode]) f, ax = plt.subplots(figsize=(10, 8)) sns.scatterplot(x=x, y=y, hue=clusters, alpha=0.85) ax.set_title("PCA - Clusters - {}".format(prefix)) ax.legend() plt.tight_layout() plt.savefig("figures/umap_by_{}.png".format(gene))