{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Import all dependencies from the scVAR enviroment (see installation instructions)\n", "#from scVAR import *\n", "import sys\n", "import pickle\n", "import os\n", "import scanpy as sc\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#Check if all the arguments are in place \n", "if len(sys.argv) < 2:\n", " print(\"Errore: specify sample name as argument.\")\n", " sys.exit(1)\n", "\n", "sample = sys.argv[1]\n", "out_path = '/CNRITB/lcelli/SCVAR/BLL_August/output/' + sample + '/'\n", "in_path = '/CNRITB/lcelli/SCVAR/BLL_August/input/' + sample + '/'\n", "\n", "# Crea\n", "if not os.path.exists(out_path):\n", " os.makedirs(out_path, exist_ok=True)\n", "\n", "print('Start Analysis', sample)\n", "\n", "# Specify transcriptomics file path \n", "tra_mat = in_path + 'matrix.mtx'\n", "barcode_tra = in_path + 'clean_barcodes.txt'\n", "feature = in_path + 'features.tsv'\n", "# Specify genomic file path\n", "var_mat = in_path + 'consensus_filtered_markdup.mtx'\n", "barcode_var = in_path + 'barcodes_var.tsv'\n", "snv = in_path + 'variants_filtered_markdup.txt'" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Analize trascritomics and genomics separately\n", "adata = transcriptomicAnalysis(matrix_path=tra_mat, bcode_path=barcode_tra, feature_path=feature, bcode_variants=barcode_var)\n", "adata = variantAnalysis(adata, matrix_path=var_mat, bcode_path=barcode_var, variants_path=snv)\n", "\n", "#Perform data integration\n", "adata = omicsIntegration(adata)\n", " \n", "# Compute transcriptomics, genomics and integrated clusters at different resolutions\n", "for res in [0.01, 0.05, 0.5]:\n", " adata = calcOmicsClusters(adata, omic_key='variant', res=res)\n", " adata = calcOmicsClusters(adata, omic_key='trans', res=res)\n", " adata = calcOmicsClusters(adata, omic_key='int', res=res)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Optionally add metadata from other scRNA-seq analysis tools (i.e., Seurat)\n", "md = pd.read_csv('/CNRITB/lcelli/SCVAR/BLL_August/input/' + sample + '/metadata.csv', header=0, index_col=0)\n", "md = md.loc[list(adata.obs.index)]\n", "for metadata in ['SingleR_DatabaseImmuneCellExpressionData_labels', 'orig.ident', 'Phase', 'RNA_snn_res.0.6']:\n", " adata.obs[metadata] = md[metadata]\n", "adata.obs['RNA_snn_res.0.6'] = adata.obs['RNA_snn_res.0.6'].astype(str)\n", "\n", "# Save all data \n", "with open(out_path + sample + '_adata.pkl', 'wb') as f:\n", " pickle.dump(adata, f)\n", "\n", "#####Perform preliminary plotting#####\n", "\n", "sc.set_figure_params(scanpy=True, dpi=80, dpi_save=150, frameon=True, vector_friendly=True, fontsize=14, figsize=(12,8), color_map=None, format='png', facecolor='#FFFFFF', transparent=False, ipython_format='png2x')\n", "\n", "# Plotting\n", "for res in [0.01, 0.05, 0.5]:\n", " for omic in ['variant', 'trans', 'int']:\n", " p = sc.pl.embedding(adata, basis='int_umap', color=omic + '_clust_' + str(res), title=[sample + ' UMAP:' + 'int' + ' Cluster:' + omic + ' res' + str(res)], size=10, frameon=False, return_fig=True)\n", " p.savefig(out_path + sample + '_INT_umap_' + omic + '_cluster_res' + str(res) + '.png')\n", "\n", "for mtdt in ['SingleR_DatabaseImmuneCellExpressionData_labels', 'orig.ident', 'Phase', 'RNA_snn_res.0.6']:\n", " p = sc.pl.embedding(adata, basis='int_umap', color=mtdt, title=[sample + ' UMAP:' + 'int ' + mtdt], size=10, frameon=False, return_fig=True)\n", " p.savefig(out_path + sample + '_INT_umap_' + mtdt + '.png')\n" ] } ], "metadata": { "celltoolbar": "Edit Metadata", "kernelspec": { "display_name": "Python [conda env:smile]", "language": "python", "name": "conda-env-smile-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.2" } }, "nbformat": 4, "nbformat_minor": 4 }