Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
custom
Scarfo HEC2023
Commits
7dcd8057
Commit
7dcd8057
authored
Dec 12, 2023
by
Monah Abou Alezz
Browse files
revisions_update_v1
parent
839b34cc
Changes
8
Hide whitespace changes
Inline
Side-by-side
BulkRNAseq_2/ED_Figure5_plots.R
→
BulkRNAseq_2/ED_Figure5
A
_plots.R
View file @
7dcd8057
...
...
@@ -73,6 +73,7 @@ DGE.results.sig <- subset(DGE.results.sorted,
FDR
<
adj.pval.thr
&
abs
(
logFC
)
>
logfc.thr
)
DGEgenes
<-
rownames
(
DGE.results.sig
)
# ED_Fig5A -----------------------------------------------------------------
## scorecard
...
...
BulkRNAseq_2/featureCounts_results_tpm.txt
0 → 100644
View file @
7dcd8057
This source diff could not be displayed because it is too large. You can
view the blob
instead.
scRNAseq/.ipynb_checkpoints/CellOracle-checkpoint.ipynb
0 → 100644
View file @
7dcd8057
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import libraries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import celloracle as co\n",
"from celloracle.applications import Pseudotime_calculator\n",
"from celloracle.applications import Gradient_calculator\n",
"from celloracle.applications import Oracle_development_module\n",
"import anndata2ri\n",
"import os\n",
"import sys\n",
"import time\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import scanpy as sc\n",
"import seaborn as sns\n",
"import copy\n",
"import glob\n",
"import time\n",
"import shutil\n",
"from tqdm.auto import tqdm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plotting parameters settings"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# visualization settings\n",
"%config InlineBackend.figure_format = 'retina'\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = [6, 4.5]\n",
"plt.rcParams[\"savefig.dpi\"] = 300"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"save_folder = \"Scarfo_HEC2023/scRNAseq\"\n",
"os.makedirs(save_folder, exist_ok=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Seurat object in Python"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Activate the anndata2ri conversion between SingleCellExperiment and AnnData\n",
"anndata2ri.activate()\n",
"#Loading the rpy2 extension\n",
"%load_ext rpy2.ipython\n",
"sc.settings.verbosity = 3\n",
"sc.logging.print_versions()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%R\n",
"suppressPackageStartupMessages(library(Seurat))\n",
"runx1_obj <- readRDS(\"Scarfo_HEC2023/scRNAseq/RUNX1_clusters.rds\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%R -o runx1_obj_sce\n",
"#convert the Seurat object to a SingleCellExperiment object\n",
"runx1_obj_sce <- as.SingleCellExperiment(runx1_obj)\n",
"runx1_obj_sce"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"adata = runx1_obj_sce\n",
"adata"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(f\"Cell number is :{adata.shape[0]}\")\n",
"print(f\"Gene number is :{adata.shape[1]}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sc.pl.umap(adata, color='RNA_snn_new_res.0.6')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Constructing GRN"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Select top 3000 highly-variable genes\n",
"filter_result = sc.pp.filter_genes_dispersion(adata.X,flavor='cell_ranger',n_top_genes=3000,log=False)\n",
"# Subset the genes\n",
"adata = adata[:, filter_result.gene_subset]\n",
"print(f\"Cell number is :{adata.shape[0]}\")\n",
"print(f\"Gene number is :{adata.shape[1]}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Load data from CellTalkDB\n",
"ligand_receptor = pd.read_csv(\"Scarfo_HEC2023/scRNAseq/CellTalkDB_modified.txt\", sep='\\t')\n",
"ligand_receptor.columns = ['Ligand','Receptor']\n",
"ligand_receptor\n",
"print('FCGR2B' in ligand_receptor['Ligand'].unique())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Make dictionary: dictionary key is Ligand and dictionary value is list of target genes.\n",
"LR_to_TG_dictionary = {}\n",
"for LR, TGs in zip(ligand_receptor.Ligand, ligand_receptor.Receptor):\n",
" TG_list = TGs.replace(\" \", \"\").split(\",\")\n",
" LR_to_TG_dictionary[LR] = TG_list\n",
"TG_to_LR_dictionary = co.utility.inverse_dictionary(LR_to_TG_dictionary)\n",
"TG_to_LR_dictionary"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate Oracle object\n",
"oracle = co.Oracle()\n",
"oracle.import_anndata_as_raw_count(adata=adata,cluster_column_name=\"RNA_snn_new_res.0.6\",embedding_name=\"X_umap\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Add LR information \n",
"oracle.addTFinfo_dictionary(TG_to_LR_dictionary)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Perform PCA\n",
"oracle.perform_PCA()\n",
"# Select important PCs\n",
"plt.plot(np.cumsum(oracle.pca.explained_variance_ratio_)[:100])\n",
"n_comps = np.where(np.diff(np.diff(np.cumsum(oracle.pca.explained_variance_ratio_))>0.002))[0][0]\n",
"plt.axvline(n_comps, c=\"k\")\n",
"plt.show()\n",
"print(n_comps)\n",
"n_comps = min(n_comps, 50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Estimate the optimal number of nearest neighbors for KNN imputation\n",
"n_cell = oracle.adata.shape[0]\n",
"print(f\"cell number is :{n_cell}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"k = int(0.025*n_cell)\n",
"print(f\"Auto-selected k is :{k}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# perform KNN imputation\n",
"oracle.knn_imputation(n_pca_dims=n_comps,k=k, balanced=True,b_sight=k*8,b_maxl=k*4,n_jobs=4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# GRN calculation\n",
"%time\n",
"links = oracle.get_links(cluster_name_for_GRN_unit=\"RNA_snn_new_res.0.6\", alpha=10,verbose_level=10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"links.links_dict.keys()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# filter weak edges\n",
"links.filter_links(p=0.001, weight=\"coef_abs\", threshold_number=2000)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# network degree distribution\n",
"links.plot_degree_distributions(plot_model=True,\n",
" save=f\"{save_folder}/degree_distribution/\",)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate network scores.\n",
"links.get_network_score()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Adding pseudotime to oracle object"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate pseudotime object using oracle object.\n",
"pt = Pseudotime_calculator(oracle_object=oracle)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"clusters_in_RUNX1_lineage = ['0','1','2','11','16','17']\n",
"# Make a dictionary\n",
"lineage_dictionary = {\"Lineage_RUNX1\": clusters_in_RUNX1_lineage}\n",
"# Input lineage information into pseudotime object\n",
"pt.set_lineage(lineage_dictionary=lineage_dictionary)\n",
"# Visualize lineage information\n",
"pt.plot_lineages()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# add root cell information\n",
"# plotly is required\n",
"try:\n",
" import plotly.express as px\n",
" def plot(adata, embedding_key, cluster_column_name):\n",
" embedding = adata.obsm[embedding_key]\n",
" df = pd.DataFrame(embedding, columns=[\"x\", \"y\"])\n",
" df[\"cluster\"] = adata.obs[cluster_column_name].values\n",
" df[\"label\"] = adata.obs.index.values\n",
" fig = px.scatter(df, x=\"x\", y=\"y\", hover_name=df[\"label\"], color=\"cluster\")\n",
" fig.show()\n",
" plot(adata=pt.adata,\n",
" embedding_key=pt.obsm_key,\n",
" cluster_column_name=pt.cluster_column_name)\n",
"except:\n",
" print(\"Plotly not found in your environment. Did you install plotly?\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Estimated root cell name for each lineage\n",
"root_cells = {\"Lineage_RUNX1\": \"Sample1_GGAGAACTCGCGGTAC-1\"}\n",
"pt.set_root_cells(root_cells=root_cells)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Check diffusion map data.\n",
"\"X_diffmap\" in pt.adata.obsm"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# calculate diffusion map\n",
"sc.pp.neighbors(pt.adata, n_neighbors=30)\n",
"sc.tl.diffmap(pt.adata)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate pseudotime\n",
"pt.get_pseudotime_per_each_lineage()\n",
"# Check results\n",
"pt.plot_pseudotime(cmap=\"rainbow\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Add calculated pseudotime data to the oracle object\n",
"oracle.adata.obs = pt.adata.obs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## In silico perturbation analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# make pridictive models for simulation and fit the ridge regression models again\n",
"links.filter_links()\n",
"oracle.get_cluster_specific_TFdict_from_Links(links_object=links)\n",
"oracle.fit_GRN_for_simulation(alpha=10, use_cluster_specific_TFdict=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"goi = \"FCGR2B\"\n",
"# Enter perturbation conditions to simulate signal propagation after the perturbation.\n",
"oracle.simulate_shift(perturb_condition={goi: 0.0}, n_propagation=3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Get transition probability\n",
"oracle.estimate_transition_prob(n_neighbors=200,knn_random=True,sampled_fraction=1)\n",
"# Calculate embedding\n",
"oracle.calculate_embedding_shift(sigma_corr=0.05)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# quiver plots\n",
"fig, ax = plt.subplots(1, 2, figsize=[13, 6])\n",
"scale = 25\n",
"# Show quiver plot\n",
"oracle.plot_quiver(scale=scale, ax=ax[0])\n",
"ax[0].set_title(f\"Simulated cell identity shift vector: {goi} KO\")\n",
"# Show quiver plot that was calculated with randomized graph.\n",
"oracle.plot_quiver_random(scale=scale, ax=ax[1])\n",
"ax[1].set_title(f\"Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# establishing digitalized grids\n",
"n_grid = 40\n",
"oracle.calculate_p_mass(smooth=0.8, n_grid=n_grid, n_neighbors=200)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Search for best min_mass.\n",
"oracle.suggest_mass_thresholds(n_suggestion=12)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"min_mass = 19\n",
"oracle.calculate_mass_filter(min_mass=min_mass, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# shift vector plots\n",
"fig, ax = plt.subplots(1, 2, figsize=[13, 5])\n",
"scale_simulation = 2\n",
"# Show quiver plot\n",
"oracle.plot_simulation_flow_on_grid(scale=scale_simulation, ax=ax[0])\n",
"ax[0].set_title(f\"Simulated cell identity shift vector: {goi} KO\")\n",
"# Show quiver plot that was calculated with randomized graph.\n",
"oracle.plot_simulation_flow_random_on_grid(scale=scale_simulation, ax=ax[1])\n",
"ax[1].set_title(f\"Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Plot vector field with cell cluster\n",
"fig, ax = plt.subplots(figsize=[8, 8])\n",
"oracle.plot_cluster_whole(ax=ax, s=10)\n",
"oracle.plot_simulation_flow_on_grid(scale=scale_simulation, ax=ax, show_background=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Visualize pseudotime\n",
"fig, ax = plt.subplots(figsize=[6,6])\n",
"sc.pl.embedding(adata=oracle.adata, basis=oracle.embedding_name, ax=ax, cmap=\"viridis\",\n",
" color=[\"Pseudotime\"], save=\"pseudotime.pdf\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate Gradient calculator object\n",
"gradient = Gradient_calculator(oracle_object=oracle, pseudotime_key=\"Pseudotime\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"gradient.calculate_p_mass(smooth=0.8, n_grid=n_grid, n_neighbors=200)\n",
"gradient.calculate_mass_filter(min_mass=min_mass, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# convert pseudotime intop grid points\n",
"gradient.transfer_data_into_grid(args={\"method\": \"polynomial\", \"n_poly\":5}, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate graddient\n",
"gradient.calculate_gradient()\n",
"# Show results\n",
"scale_dev = 20\n",
"gradient.visualize_results(scale=scale_dev, s=5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Visualize results\n",
"fig, ax = plt.subplots(figsize=[6, 6])\n",
"gradient.plot_dev_flow_on_grid(scale=scale_dev, ax=ax)\n",
"ax.set_title(f\"Normal Developmental flow\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# quantitatively compare the directionality and size of vectors between perturbation simulation and natural differentiation using inner product\n",
"# Make Oracle_development_module to compare two vector field\n",
"dev = Oracle_development_module()\n",
"# Load development flow\n",
"dev.load_differentiation_reference_data(gradient_object=gradient)\n",
"# Load simulation result\n",
"dev.load_perturb_simulation_data(oracle_object=oracle)\n",
"# Calculate inner produc scores\n",
"dev.calculate_inner_product()\n",
"dev.calculate_digitized_ip(n_bins=10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Show perturbation scores\n",
"vm = 0.2\n",
"fig, ax = plt.subplots(1, 2, figsize=[12, 5])\n",
"dev.plot_inner_product_on_grid(vm=0.02, s=50, ax=ax[0])\n",
"ax[0].set_title(f\"PS calculated with FCGR2B KO\")\n",
"dev.plot_inner_product_random_on_grid(vm=vm, s=50, ax=ax[1])\n",
"ax[1].set_title(f\"PS calculated with Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Show perturbation scores with perturbation simulation vector field\n",
"fig, ax = plt.subplots(figsize=[6, 6])\n",
"dev.plot_inner_product_on_grid(vm=0.05, s=50, ax=ax)\n",
"dev.plot_simulation_flow_on_grid(scale=scale_simulation, show_background=False, ax=ax)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# summary plots\n",
"# visualize the results\n",
"dev.visualize_development_module_layout_0(s=5, scale_for_simulation=scale_simulation, s_grid=50, scale_for_pseudotime=scale_dev, vm=0.05)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:postsc]",
"language": "python",
"name": "conda-env-postsc-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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
scRNAseq/CellTalkDB_modified.txt
0 → 100644
View file @
7dcd8057
Ligand Receptor
A2M LRP1
AANAT MTNR1B,MTNR1A
ACE BDKRB2,AGTR2
ACE2 SLC6A19
ACTR2 LDLR,LRP2,ADRB2
ADA DPP4
ADAM10 GPNMB,TSPAN5,TSPAN15,CD44,TSPAN10,CADM1,TSPAN14,NOTCH1,IL6R,MET,TSPAN17,EPHA3,TREM2,AXL,NRCAM,TSPAN12,NOTCH2
ADAM12 ITGB1,SDC4,ITGA9
ADAM15 ITGB1,ITGB3,ITGAV,ITGA9,ITGA5
ADAM17 MUC1,ITGB1,RHBDF2,IL6R,MET,ERBB4,NOTCH1,ITGA5
ADAM2 ITGB1,CD9,ITGA6,ITGB7,ITGA9
ADAM28 ITGA4
ADAM9 ITGA3,ITGAV,ITGB5,ITGB1,ITGA6
ADAMTS3 CCBE1
ADCYAP1 ADCYAP1R1,SCTR,RAMP3,RAMP2,VIPR2,ADRB2,PTH1R,VIPR1,ADRB3,DPP4,GPR20,TSHR,GPR84
ADIPOQ GPR42,ADIPOR1,ADIPOR2,CNR2
ADM ADCYAP1R1,TSHR,GPR84,RAMP3,RAMP2,RAMP1,GPR182,ADRB2,PTH1R,VIPR1,ADRB3,CALCR,GPR20,CALCRL
ADM2 ADCYAP1R1,CALCRL,TSHR,GPR84,RAMP3,RAMP2,RAMP1,ADRB2,PTH1R,VIPR1,ADRB3,CALCR,GPR20
AFDN EPHB6,NRXN3,NECTIN3,NECTIN2,NECTIN1,NRXN2,EPHB3,NECTIN4,F11R,EPHA7,EPHB2
AGRN ITGB1,ATP1A3,LRP1,LRP2,MUSK,LRP4
AGRP MC4R,MC5R,SDC3,MC3R
AGT AGTR1,AGTR2,MAS1,LRP2,ENPEP,ADRA2A,MTNR1A,GRM7
AGTRAP RACK1
AHSG INSR
ALB LRP2
ALKAL1 ALK
ALKAL2 ALK
ALOX5AP ALOX5
AMELX LAMP1
AMH ACVR1,EGFR,AMHR2
ANG EGFR
ANGPT1 ITGA5,TIE1,TEK,ITGB1
ANGPT2 TIE1,TEK
ANGPT4 TIE1,TEK
ANGPTL1 TEK
ANGPTL2 LILRB2,TIE1
ANGPTL3 ITGB3,ITGAV,ITGA5
ANGPTL4 GPIHBP1,TIE1
ANOS1 SDC2,FGFR1
ANXA1 FPR2,FPR1,DYSF,EGFR,ADRA2A,MTNR1A,FPR3,GRM7
APELA APLNR
APLN APLNR,ADRA2A,MTNR1A,GRM7
APOA1 ABCA1,LRP2,LDLR,LRP1
APOA2 LDLR,LRP1,LRP2
APOA4 LDLR,LRP1,LRP2
APOB ITGAM,LRP6,OLR1,LRP2,VLDLR,LDLR,CALCR,MTTP,LSR,ADRB2,TLR6,LRP1,ITGB2,TLR4,LRP8
APOC1 VLDLR
APOC2 LDLR,LRP1,LRP2
APOC3 LRP2,LDLR,LRP1,SDC2,TLR2
APOC4 VLDLR
APOD LEPR
APOE LRP6,LRP2,VLDLR,LDLR,LRP5,CHRNA4,TREM2,LSR,SORL1,ABCA1,SCARB1,SDC2,LRP8,LRP4,LRP1
APP VLDLR,MTNR1A,FPR2,GRM7,LRP10,PLD1,TSPAN15,DCC,CAV1,RPSA,TNFRSF21,NCSTN,AGER,CD74,NGFR,APLP1,TSPAN12,LRP1,PTGER2,NOTCH2,SORL1,LRP6,APLP2,GPC1,ADRA2A
AREG ERBB3,EGFR
ARF1 CHRM3,PLD2,INSR
ARF4 EGFR
ARF6 PLD1,SMAP1
ARPC5 ADRB2,LDLR,LRP2
ARTN GFRA2,GFRA3,GFRA1,RET
ASIP MC3R,MGRN1,ATRN,MC4R,MC5R,MC2R,F11R,MC1R
AVP ADCYAP1R1,LDLR,GPR84,TSHR,RAMP3,RAMP2,LRP2,AVPR1A,ADRB2,PTH1R,OXTR,VIPR1,ADRB3,AVPR2,AVPR1B,GPR20
AZGP1 ITGAV
B2M HLA-F,CD1A,CD3D,LILRB1,KIR2DL1,KIR2DL3,TFRC,CD247,CD1B,KLRC2,KLRD1,KIR3DL1,LILRB2,HFE,CD3G,KLRC1
BCAN NRCAM,EGFR
BDNF NGFR,DRD4,SORT1,NTRK2,BEX3
BGN TLR4,TLR1,TLR2,LY96
BMP1 BMPR2,BMPR1A,BMPR1B
BMP10 ENG,ACVRL1,BMPR2,BMPR1A,BMPR1B,ACVR2A
BMP15 BMPR2,BMPR1A,BMPR1B,ACVR2A
BMP2 BMPR1B,ACVR2A,SMO,ACVR1,GPC1,HJV,ACVR2B,BMPR1A,ENG,BMPR2
BMP3 ACVR2B,BMPR2,BMPR1A,BMPR1B
BMP4 LRP6,BMPR2,BMPR1A,HJV,BMPR1B
BMP5 BMPR2,BMPR1A,BMPR1B,HJV
BMP6 HJV,BMPR2,BMPR1A,BMPR1B,ACVR2A,ACVR1
BMP7 BMPR1B,ACVR2A,ACVR1,ACVR2B,BMPR1A,ENG,BMPR2
BMP8A BMPR2,BMPR1A,BMPR1B
BMP8B BMPR2,BMPR1B,PLAUR,BMPR1A
BSG SELE
BST1 CAV1
BST2 LILRA4
BTC ERBB3,ERBB2,EGFR,ERBB4
BTLA VTCN1,TNFRSF14,CD247,CD79A
C1QA CD93,CSPG4,CR1
C1QB C1QBP,LRP1
C1QTNF1 AVPR2
C1QTNF5 MFRP
C3 ITGAM,CD19,CD46,MTNR1A,C5AR2,CR2,GRM7,ITGAX,C3AR1,ADRA2A,IFITM1,CR1,ITGB2,CD81,LRP1
C4A C5AR2,C3AR1,CR1
C4B CD46,CR1
C4BPA BMPR2,CD40,LRP1
C5 ADRA2A,MTNR1A,C5AR2,C5AR1,GRM7
CALCA ADCYAP1R1,CALCRL,GPR84,CALCR,GPR20,ADRB3,TSHR,RAMP3,RAMP2,RAMP1,ADRB2,PTH1R,VIPR1
CALCB ADCYAP1R1,TSHR,GPR84,RAMP3,RAMP2,RAMP1,ADRB2,PTH1R,VIPR1,ADRB3,CALCR,GPR20,CALCRL
CALM1 KCNQ3,GRM3,CALCR,GRM4,CRHR1,GRM7,MYLK,PDE1A,HMMR,ADCYAP1R1,OPRM1,RYR2,GLP1R,PDE1C,TRPC3,SCN10A,AQP6,PTPRA,MYLK2,SCN4A,SCTR,KCNQ1,SELL,PDE1B,MIP,GLP2R,TRPC5,KCNN4,CACNA1C,PTH2R,EGFR,HTR2C,ADCY8,INSR,GRM5,GP6,AQP1,VIPR1,CNGA2,KCNQ5,FAS
CALM2 KCNQ3,EGFR,KCNQ5,GRM7,MYLK,PDE1A,INSR,ADCY8,PDE1C,GP6,SCN10A,PLPP6,AQP6,GRM5,MYLK2,AQP1,SCN4A,KCNQ1,SELL,PDE1B,TRPC5,CACNA1C
CALM3 KCNQ3,KCNQ5,ESR1,GRM7,MYLK,PDE1A,INSR,RYR2,PDE1C,GP6,SCN10A,AQP6,GRM5,MYLK2,AR,AQP1,SCN4A,KCNQ1,SELL,PDE1B,TRPC5,CACNA1C,EGFR,ADCY8
CALML3 KCNQ1
CALR MPL,TSHR,ITGA3,LRP1,HLA-F,ITGAV,ITGA2B,SCARF1,MTNR1A
CAMP P2RX7,FPR2,IGF1R,EGFR
CCK CCKAR,CCKBR
CCL1 CCR8
CCL11 CXCR3,CCR3,DPP4,ACKR1,ACKR2,ACKR4,CCR2,CCR5
CCL13 CXCR3,CCR3,ACKR1,CCR1,ACKR2,CCR2,CCR5,ACKR4,CCR9
CCL14 CCR5,CCR1,ACKR1,ACKR2,CCR3
CCL15 CCR1,CCR3
CCL16 HRH4,ADRA2A,CCR2,CCR5,CCR1,MTNR1A,CCR8,GRM7
CCL17 CCR4,ACKR1,ACKR2,CCR8
CCL18 CCR1,CCR8,CCR3
CCL19 CCR10,CXCR3,GRM7,ACKR2,CCRL2,CCR7,ACKR4,ADRA2A,MTNR1A
CCL2 CCR4,CCR1,CCR2,CCR5,CCR10,CCR3,ACKR1,ACKR2,ACKR4
CCL20 CXCR3,CCR6,ADRA2A,MTNR1A,GRM7
CCL21 ADRA2A,MTNR1A,CXCR3,GRM7,ACKR2,CCR7,ACKR4
CCL22 CCR4,DPP4,ACKR2
CCL23 CCR1,ACKR2
CCL24 CCR3,ACKR2,CCR2
CCL25 ACKR2,ACKR4,ADRA2A,MTNR1A,CCR10,CCR9,GRM7
CCL26 CCR3,CCR2,CCR1
CCL27 CCR10,ADRA2A,GRM7,ACKR2,MTNR1A
CCL28 ACKR2,CCR3,ADRA2A,MTNR1A,CCR10,GRM7
CCL3 CCR5,CCR1,CCR4,ACKR2,CCR3
CCL3L3 CCR5,ACKR2
CCL4 CCR5,CCR1,CCR8,CNR2,ACKR2,CCR3
CCL5 ACKR4,ADRA2A,CCR5,CCR1,MTNR1A,CCR4,CCRL2,GRM7,ACKR1,SDC4,CXCR3,SDC1,GPR75,ACKR2,CCR3
CCL7 CCR3,ACKR2,ACKR4,CCR2,CCR5,CCR1,CCR10,ACKR1,CXCR3
CCL8 CCR3,ACKR2,ACKR4,CCR2,CCR5,CCR1,ACKR1
CCN1 ITGAM,ITGB3,TLR2,ITGAV,ITGA5,ITGB5,CAV1,TLR4,ITGB2
CCN2 ITGAM,NTRK1,ITGB2,LRP1,LRP6,EGFR,ITGA5,ERBB4
CCN3 PLXNA1,NOTCH1
CCN6 SORL1
CD14 ITGA4,ITGB1,TLR6,TLR9,ITGB2,TLR4,TLR1,RIPK1
CD160 TNFRSF14
CD200 CD200R1
CD24 SELP,SIGLEC10
CD274 CD80,PDCD1
CD34 SELL,SELP
CD40LG ITGAM,CD40,ITGB2,TRAF3
CD55 ADGRE5,ADGRE2,CR1
CD58 CD2
CD59 CD2
CD5L CD5
CD6 ALCAM
CD70 TNFRSF13B,CD27,TNFRSF17
CD86 CTLA4,CD28
CD99 PILRA,CD81
CDH1 EGFR,LRP5,IGF1R,ITGB7,ERBB3,KLRG1,CDH2,ITGAE,PTPRM,PTPRF
CEACAM1 EGFR,SELE,CD209
CEACAM16 TECTB,TECTA
CEACAM5 CD1D
CEACAM6 EGFR
CEL CXCR4
CER1 MRC2
CFC1 SMAD3,ACVR1B,ACVR2A
CFH ITGAM,SELL
CGA ADCYAP1R1,RAMP3,RAMP2,LHCGR,ADRB2,PTH1R,VIPR1,ADRB3,GPR20,FSHR,TSHR,GPR84
CGB3 LHCGR
CGB5 LHCGR
CGN F11R,TGFBR2,OCLN,TGFBR1
CHAD ITGA2,ITGB1
CKLF CCR4,LRP6
CLCF1 CNTFR,CRLF1,IL6ST,LIFR
CLEC2A KLRF2
CLEC2B KLRF1
CLEC2D KLRB1
CLEC3A CLEC10A
CNTF CNTFR,IL6R,IL6ST,LIFR,EGFR
CNTN2 CNTNAP2,CNTN1,NRCAM,NRP1
CNTN3 PTPRG
CNTN4 PTPRG
COL11A1 ITGB1,DDR1,ITGA2
COL14A1 CD44
COL16A1 ITGB1
COL18A1 ITGB1,ITGB3,GPC4,ITGA3,KDR,GPC1,ITGA5,ITGB5
COL1A1 ITGA5,CD93,FLT4,CD36,ITGA1,DDR2,CD44,ITGAV,ITGB1,ITGA11,TMPRSS6,ITGA2,DDR1
COL1A2 CD44,ITGB1,ITGA11,ITGB3,CD36,CD93,ITGAV,FLT4,ITGA2B,ITGA1,ITGA2
COL2A1 ITGB1,MAG,DDR1,TNFRSF10A,ITGA2B,ITGA1,ITGA2,ITGA10
COL3A1 DDR2,ITGB1,MAG,DDR1,ITGA2
COL4A1 ITGB1,ITGB8,CD93,ITGAV,ITGA1,ITGA2,CD47
COL4A2 ITGB3,CD93,ITGB5
COL4A3 ITGB3,ITGA3,CD93,ITGAV,ITGA1,ITGA2,CD47,ITGB1
COL4A4 ITGB3,CD93,ITGAV,ITGA1,ITGA2,CD47,ITGB1
COL4A5 CD47,ITGB1,CD93,ITGAV,ITGA1,ITGA2
COL4A6 ITGB1,CD93,ITGAV,ITGA1,ITGA2,CD47
COL5A1 ITGB1,ITGA1,SDC3
COL5A2 ITGB1,DDR1,ITGA1
COL6A1 ITGB1,ITGA6,ITGA1,ITGA2
COL6A2 ITGB1,ITGA1,ITGA2
COL6A3 ITGB1,ITGA2,ITGA1
COL7A1 ITGB1,ITGA2
COL8A1 ITGA1,ITGA2
COL8A2 SLC4A11
COL9A1 ITGB1,MAG
COL9A2 ITGB1,MAG
COL9A3 ITGB1,MAG
COLQ MUSK
COMP ITGB1,ITGB3,CD36
CORT SSTR3,GHSR,SSTR4,SSTR1,ADRA2A,SSTR5,MTNR1A,MRGPRX2,SSTR2,GRM7
CP SLC40A1
CPAMD8 SCTR
CRH ADCYAP1R1,ADRB2,CRHR2,GPR84,PTH1R,VIPR1,GPR20,MC2R,CRHR1,ADRB3,TSHR,RAMP3,RAMP2
CRISP2 CATSPER1
CRISP3 A1BG
CRP OLR1,CR1
CSF1 SIRPA,CSF1R
CSF2 ITGB1,CSF2RB,CSF2RA,IL3RA,SDC2,CSF3R,ITGA9,CSF1R
CSF3 CSF1R,CSF3R
CSH1 PRLR
CSH2 PRLR
CSHL1 GHR
CTF1 IL6ST,LIFR
CTHRC1 FZD5,FZD6,FZD3
CUBN LRP2
CX3CL1 CX3CR1
CXCL1 ADRA2A,CXCR1,MTNR1A,CXCR2,GRM7,ACKR1
CXCL10 DPP4,SDC4,CXCR3,CCR3,GRM7,ADRA2A,MTNR1A
CXCL11 DPP4,CXCR3,CCR3,ACKR1,GRM7,ACKR3,ADRA2A,MTNR1A
CXCL12 ITGB1,CXCR4,CD4,ACKR3,ADRA2A,AVPR1A,MTNR1A,CCR4,GRM7,DPP4,SDC4,CXCR3
CXCL13 CCR10,CXCR3,GRM7,CXCR5,MTNR1A,OPRD1,ACKR4,ADRA2A
CXCL14 CXCR4
CXCL16 GRM7,MTNR1A,CXCR6,ADRA2A
CXCL17 GPR35
CXCL2 ADRA2A,CXCR1,MTNR1A,XCR1,CXCR2,GRM7,DPP4
CXCL3 MTNR1A,CXCR2,GRM7,ADRA2A,CXCR1
CXCL5 MTNR1A,ACKR1,CXCR2,GRM7,ADRA2A,CXCR1
CXCL6 ADRA2A,ACKR1,CXCR2,GRM7,CXCR1,MTNR1A
CXCL8 SDC1,SDC3,SDC2,ACKR1,CXCR2,GRM7,CD79A,KDR,ADRA2A,CXCR1,MTNR1A
CXCL9 CXCR3,CCR3,FCGR2A,ADRA2A,MTNR1A,KIR2DL3,GRM7,DPP4
DCN EGFR,MET,ERBB4
DEFB1 CCR6
DEFB103A CCR6,CCR2
DEFB103B CCR6,CCR2
DEFB106A CCR2
DEFB4A CCR6,TLR4
DEFB4B CCR6
DHH PTCH1,HHIP,BOC,CDON,PTCH2
DKK1 LRP6,LRP5,KREMEN2,KREMEN1
DKK2 KREMEN2,LRP6
DKK3 KREMEN1
DKK4 LRP6,LRP5
DLK1 NOTCH2,NOTCH3,NOTCH1
DLK2 NOTCH1
DLL1 NOTCH4,NOTCH2,NOTCH3,NOTCH1
DLL3 NOTCH1,NOTCH4,NOTCH2,NOTCH3
DLL4 NOTCH1,NOTCH4,NOTCH2,NOTCH3
DMP1 PHEX,ITGB3
DRAXIN DCC
DSC1 DSG2,DSG3,DSG1
DSC2 DSG1,DSG2
DSC3 DSG3,DSG1,DSG2
DSCAM DCC
DSPP ITGB1
EBI3 IL27RA,IL6ST
EDA EDA2R,EDAR
EDIL3 ITGAV,ITGB5
EDN1 EDNRA,KEL,ADGRL4,EDNRB
EDN2 EDNRB,EDNRA,KEL
EDN3 EDNRB,KEL,EDNRA
EFEMP1 EGFR
EFEMP2 AQP1,PLSCR4
EFNA1 EPHB6,EPHA7,EPHA10,EPHA5,EPHB1,EPHA6,EPHA8,EPHA1,EPHA4,EPHA3,EPHA2
EFNA2 EPHA7,EPHA10,EPHA3,EPHA1,EPHA5,EPHA4,EPHA6,EPHA2,EPHA8
EFNA3 EPHB6,EPHA7,EPHA10,EPHA5,EPHB1,EPHA6,EPHA8,EPHA1,EPHA4,EPHA3,EPHA2
EFNA4 EPHA5,EPHA8,EPHA1,EPHA4,EPHA3,EPHA2,EPHA7,EPHA10,EPHA6
EFNA5 EPHB6,EPHA7,EPHA10,EPHA3,EPHA5,EPHB1,EPHB2,EPHA6,EPHA2,EPHA8,EPHA1,EPHA4
EFNB1 EPHB6,EPHB4,ERBB2,EPHB1,EPHB3,EPHB2,EPHA4,EPHA6
EFNB2 EPHB6,PECAM1,EPHB4,RHBDL2,EPHA3,EPHB1,EPHB3,GRM5,EPHB2,EPHA4,EPHA6,GRM1
EFNB3 EPHB6,EPHB4,RHBDL2,EPHB1,EPHB3,EPHB2,EPHA4
EGF EGFR,LDLR,FSHR,ERBB3,ADRB2,CAV1,RHBDL2,ERBB2,ERBB4,NRP1,AXL,PLD2,LRP2
EPGN EGFR
EPO EPHB4,EPOR
EREG ERBB2,EGFR,ERBB4,ERBB3
F10 ITGAM,ITGB2,F3
F11 GP1BA
F12 GP1BA,CD93
F13A1 ITGA4,ITGB1,ITGA9
F2 GP1BB,F2R,THBD,GP1BA,F2RL3,ITGA2B,F2RL2,F2RL1,GP9
F7 F3
F8 LDLR,LRP1,ASGR2
F9 LRP1
FABP5 RXRA
FADD ABCA1,FAS,TRADD,TRAF2
FAM3C GLRA2,LAMP1
FARP2 PLXNA3,PLXNA1,PLXNA2,PLXNA4
FASLG TNFRSF6B,TNFRSF1A,TNFRSF10B,FAS
FAT4 DCHS1
FBLN1 ITGB1
FBLN2 ITGB3
FBN1 ITGB3,ITGB1,ITGAV,ITGB6,ITGA5
FCN2 LRP1
FGA ITGAM,ITGAX,ITGB1,PLAUR,ITGB3,CDH5,ITGB2,TLR4,ITGAD,ITGAV,ITGA2B,ITGA5
FGB ITGAM,ITGB1,ITGB3,ITGB2,TLR4,ITGAV,ITGA2B,ITGA5
FGF1 TGFBR3,NRP1,EGFR,FGFR4,FGFR3,FGFRL1,FGFR1,CD44,FGFR2
FGF10 FGFR2,FGFRL1,FGFR1
FGF11 FGFR2,FGFR1,FGFR3,FGFR4
FGF12 FGFR4,FGFR3,FGFR1,FGFR2
FGF13 FGFR1,SCN5A,FGFR2,FGFR3,SCN8A,EGFR,FGFR4
FGF14 FGFR2,FGFR1,FGFR4,FGFR3
FGF16 FGFR2,FGFR4,FGFR3,FGFR1
FGF17 FGFR2,FGFR1,FGFR4,FGFR3
FGF18 FGFR2,FGFR4,FGFR1,FGFR3
FGF19 FGFR2,FGFR1,FGFR3,KLB,FGFR4
FGF2 SDC1,FGFR1,FGFR2,CD44,SDC3,SDC4,GPC4,SDC2,FGFRL1,FGFR4,FGFR3,NRP1
FGF20 FGFR2,FGFR4,FGFR1,FGFR3
FGF21 KLB,FGFR4,FGFR3,FGFR1,FGFR2
FGF22 FGFR2,FGFR1
FGF23 FGFR2,PHEX,KL,FGFR4,FGFR1,FGFR3
FGF3 FGFR2,FGFR1,FGFR3,FGFR4
FGF4 FGFR2,FGFR4,FGFR1,FGFR3,NRP1
FGF5 FGFR2,FGFR1,FGFR3,FGFR4
FGF6 FGFR2,SDC4,FGFR4,FGFR1,FGFR3
FGF7 FGFR2,FGFR4,FGFR1,FGFR3,NRP1
FGF8 FGFR2,FGFRL1,FGFR1,FGFR3,FGFR4
FGF9 FGFR2,FGFR1,FGFR4,FGFR3
FGG ITGB1,ITGB3,ITGB2,TLR4,ITGAV,ITGA2B,ITGA5
FGL1 EGFR
FLT3LG FLT3
FN1 ITGA4,ITGB3,C5AR1,ITGA6,ITGA8,DPP4,CD44,ITGB1,TMPRSS6,COL13A1,TSHR,MAG,ITGA3,CD79A,ITGB8,NT5E,ITGAV,FLT4,ITGA2B,ITGA9,ITGB7,ITGB6,ITGA5,IL17RC,ITGA2,TNFRSF11B,ROBO4,SDC2,PLAUR
FSHB ADCYAP1R1,TSHR,GPR84,RAMP3,RAMP2,ADRB2,PTH1R,VIPR1,ADRB3,GPR20,FSHR
FST HJV,BMPR2,BMPR1B
FYN SPN,THY1
GAD1 GRM4
GAL ADRA2A,MTNR1A,GALR2,GRM7,GPR151,GALR1,GALR3
GALP GALR3,GALR1,GALR2
GAS6 TYRO3,MERTK,AXL
GAST CCKBR
GC LRP2
GCG ADCYAP1R1,GPR84,TSHR,RAMP3,RAMP2,GLP2R,ADRB2,PTH1R,VIPR1,ADRB3,DPP4,GLP1R,GPR20,GCGR
GDF1 ACVR2B,SMAD3,ACVR1B,ACVR2A
GDF10 ACVR1B
GDF11 ACVR2B,ACVR1B,BMPR2,BMPR1A,BMPR1B,ACVR2A
GDF15 GFRAL,RET
GDF2 ACVR2A,ACVR1,ACVR2B,ENG,BMPR2,ACVRL1
GDF5 ROR2,BMPR2,BMPR1B,ACVR2A,ACVR1,ACVR2B,BMPR1A
GDF6 BMPR2,BMPR1A,BMPR1B
GDF7 BMPR2,BMPR1A,ACVR2A
GDF9 BMPR1B,ACVR2A,BMPR1A,BMPR2,TGFBR1
GDNF GFRA2,GFRA3,GFRA1,RET,EDNRB
GH1 GHR,PRLR
GH2 GHR
GHRH ADCYAP1R1,GPR20,TSHR,GPR84,RAMP3,RAMP2,ADRB2,GHRHR,PTH1R,VIPR1,ADRB3
GHRL PTGER3,TBXA2R,MLNR,GHSR,PTGIR,GHRHR,GPR39
GIP ADCYAP1R1,GIPR,DPP4,TSHR,GPR20,GPR84,RAMP3,RAMP2,INSR,ADRB2,PTH1R,VIPR1,ADRB3
GNAI2 LPAR3,S1PR5,EDNRA,ADORA1,C5AR1,ADRA2B,F2R,FPR1,S1PR3,OPRM1,UNC5B,CAV1,PTPRU,TBXA2R,CXCR3,EDNRB,CXCR2,DRD2,ADCY7,TSHR,AGTR2,CNR1,OPRD1,S1PR4,MTNR1B,IGF1R,EGFR,ADRA2A,ADCY8,CCR5,ADCY9,LHCGR,CXCR1,ADCY1,MTNR1A,S1PR1,CHRM1,P2RY12
GNAS CRHR1,GLP1R,GCGR,ADCY7,TSHR,ADCY8,HTR6,PTGIR,ADCY9,LHCGR,ADCY1,PTGDR,VIPR1,ADRB3,AVPR2,ADORA1
GNB3 TGFBR1,GABBR2
GNRH1 GNRHR
GNRH2 GNRHR
GPC3 LRP1,CD81,LRP2,IGF1R
GPHA2 EPHA6,TSHR
GPI AMFR
GREM1 KDR
GRN TNFRSF1A,EGFR,SORT1,TNFRSF1B,CLEC4M
GRP GRPR,BRS3,NMBR
GSTM2 RYR2
GSTO1 RYR1
GSTP1 TRAF2,EGFR
GUCA2A GUCY2C
GUCA2B GUCY2D,GUCY2C
GZMB CHRM3,IGF2R
HAS2 HMMR,CD44
HBEGF CD44,EGFR,CD9,PRLR,ERBB2,ERBB4,CD82
HCRT HCRTR1,NPFFR2,HCRTR2
HDC HRH1,HRH2,HRH3,HRH4
HEBP1 ADRA2A,MTNR1A,FPR3,GRM7
HGF CD44,SDC1,ITGB1,MET,SDC2,NRP1,ST14
HLA-A CD3G,LILRA1,APLP2,ERBB2,CD3D,LILRB1,KIR3DL2,KIR2DL1,KIR2DL3,KIR3DL1,LILRB2
HLA-B CD3G,CANX,LILRA1,CD3D,LILRB1,KIR3DL2,KIR2DL3,KLRD1,KIR3DL1,LILRB2
HLA-C LILRB2,CD3G,KIR3DL1,LILRA1,CD3D,LILRB1,KIR2DL1,KIR2DL3,NOTCH4
HLA-E KLRC2,KLRD1,KIR3DL1,KLRC1,KLRK1
HLA-G KLRC1,CD4,LILRB1,KIR2DL4,KLRD1,KIR3DL1,LILRB2
HMGB1 SDC1,TLR9,THBD,TLR4,CXCR4,AGER,CD163,TLR2
HP ITGAM,ITGB2,TLR4,CD163,CD22,ASGR1,ASGR2
HPX LRP1
HRAS AGTR1,TLR2,GRIN2D,INSR,SDC2,CAV1,TLR9
HRG ERBB2,FCGR1A,ERBB3
HSP90AA1 ITGB3,FGFR3,CFTR,LRP1,ERBB2,EGFR
HSP90B1 TLR9,TLR7,TLR4,TLR1,LRP1,TLR2,ASGR1,ERBB2
HSPA1A GRIN2D,TLR4
HSPA4 TLR4
HSPA8 LDLR,LRP2,ADRB2
HSPG2 SDC1,ITGB1,COL13A1,FGFR1,LRP1,LRP2,ITGA2,PTPRS
IAPP PTH1R,ADCYAP1R1,RAMP2,VIPR1,CALCR,RAMP3,GPR20,ADRB2,RAMP1,ADRB3,TSHR,GPR84
IBSP ITGB3,ITGAV
ICAM1 ITGAM,ITGAL,ITGAX,MUC1,EGFR,CAV1,IL2RA,ITGB2,SPN,IL2RG
ICAM2 ITGAM,ITGAL,ITGB2
ICAM3 ITGAL,ITGB2,CLEC4M,CD209,ITGAD
ICAM4 ITGAM,ITGAL,ITGA4,ITGB3,ITGB2,ITGB1,RHAG,ITGAV,ITGA2B
ICAM5 ITGAL,ITGB2
ICOSLG ICOS
IFNA1 IFNAR2,CR2,IFNAR1
IFNA10 IFNAR1,IFNAR2
IFNA13 IFNAR1,IFNAR2
IFNA14 IFNAR1,IFNAR2
IFNA16 IFNAR1,IFNAR2
IFNA17 IFNAR1,IFNAR2
IFNA2 IFNAR1,IFNAR2
IFNA21 IFNAR1,IFNAR2
IFNA4 IFNAR1,IFNAR2
IFNA5 IFNAR1,IFNAR2
IFNA6 IFNAR1,IFNAR2
IFNA7 IFNAR2,IFNAR1
IFNA8 IFNAR1,IFNAR2
IFNB1 IFNAR1,IFNAR2
IFNE IFNAR1,IFNAR2,ADGRV1
IFNG IFNGR2,IFNGR1
IFNL1 IL10RB,IFNLR1
IFNL2 IL10RB,IFNLR1
IFNL3 IL10RB,IFNLR1
IFNW1 IFNAR1,IFNAR2
IGF1 INSR,IGF2R,IGF1R
IGF2 IGF1R,INSR,IGF2R
IGFBP4 FZD8,LRP6
IGFL1 IGFLR1
IGFL2 IGFLR1
IGFL3 IGFLR1
IHH PTCH1,HHIP,BOC,CDON,PTCH2
IL10 IL10RA,IL10RB
IL11 IL11RA,IL6ST
IL12A IL12RB1,CD28,IL12RB2
IL12B IL12RB1,IL23R,IL12RB2
IL13 IL13RA2,TMEM219,IL2RG,IL13RA1,IL4R
IL15 IL15RA,IL2RA,IL2RG,IL2RB
IL16 GRIN2B,KCNJ4,KCNJ15,KCNA3,KCNJ10,KCND2,GRIN2A,CD4,KCND1,GRIN2D,CCR5,GRIN2C
IL17A IL17RC,IL17RA
IL17B IL17RB
IL17C IL17RE
IL17F IL17RC,IL17RA
IL18 CD48,IL18R1,IL1RAPL1,IL18BP,IL1RL2,IL18RAP
IL19 IL20RA,IL20RB
IL1A IL1R1,IL1RAP,IL1R2
IL1B SIGIRR,IL1R1,ADRB2,IL1RAP,IL1R2
IL1F10 IL1R1,IL1RL2
IL1RN IL1R1,IL1RL2,IL1R2
IL2 IL2RA,IL2RG,CD53,NGFR,IL2RB
IL20 IL22RA1,IL20RA,IL20RB
IL21 IL21R,IL2RG
IL22 IL10RA,IL22RA1,IL10RB,IL22RA2,IL21R
IL23A IL12RB1,IL12RB2,IL23R
IL24 IL22RA1,IL10RB,IL20RA,IL20RB
IL25 IL17RB
IL26 IL10RB,IL20RA
IL27 IL27RA
IL3 CSF2RB,IL3RA
IL31 IL31RA,OSMR
IL33 IL1RL1
IL34 CSF1R
IL36A IL36RN,IL1RL2
IL36B IL36RN,IL1RL2
IL36G IL36RN,IL1RL2
IL37 IL1RAPL1
IL4 IL13RA2,IL2RG,CD53,IL13RA1,IL4R
IL5 CSF2RB,IL5RA
IL6 F3,IL6R,IL6ST,HRH1
IL7 IL7R,IL2RG
IL9 IL2RG,IL9R
INHA ACVR1,ACVR2B,TGFBR3,ACVR2A
INHBA ACVR1,ACVR2B,ENG,SMAD3,BAMBI,ACVR1B,TGFBR3,ACVR2A
INHBB ACVR2B,SMAD3,ACVR1B,ACVR2A,ACVR1C,ACVR1
INHBC ACVR2B,ACVR1B,ACVR2A,ACVR1
INHBE ACVR2B,ACVR2A
INS LRP2,IGF1R,INSR,LILRB1,LILRB2
INSL3 ADCYAP1R1,TSHR,GPR84,RXFP1,RAMP3,RAMP2,RXFP2,ADRB2,PTH1R,VIPR1,ADRB3,GPR20
INSL5 MTNR1A,RXFP4,RXFP3,GRM7,ADRA2A
IRAK4 TLR4,TLR7,TLR6
ITGB3BP ITGB3,ITGB5
ITIH2 FCER1A
IZUMO1 CD9,IZUMO1R
JAG1 CD46,NOTCH4,NOTCH1,NOTCH2,NOTCH3
JAG2 NOTCH4,NOTCH2,NOTCH3,NOTCH1
JAM3 ITGB1,ITGB2
KISS1 KISS1R,MMP24
KITLG KIT,EPOR
KLK3 EPOR
KNG1 ITGAM,ADRA2A,RXFP4,PLAUR,MTNR1A,ITGB2,SDC2,GRM7,BDKRB2,GP1BA,BDKRB1,CD93
L1CAM FGFR2,EPHB2,CNTN1,ITGAV,ERBB3,ERBB2,EGFR,ITGA5
LACRT SDC1
LAMA1 ITGA6,ITGA7,ITGB1,ITGA3,ITGB4,ITGB8,NT5E,GPC1,ITGA1,ITGA2,SDC2,RPSA,SDC4,TMPRSS6
LAMA2 ITGA7,ITGA3,ITGB4,ITGA1,ITGA2,RPSA,ITGB1,ITGA6
LAMA3 ITGB1,ITGA3,ITGB4,SDC2
LAMA4 ITGA6,ITGAV,ITGB1,ITGA3
LAMA5 SDC1,ITGA6,BCAM,ITGB1,ITGA2,ITGA3,ITGB4
LAMB1 ITGA7,ITGAV,ITGB1,ITGA6,ITGA1,ITGA2,ITGA3,ITGB4
LAMB2 ITGA3,ITGB4,RPSA,ITGB1
LAMB3 CD151,ITGB1,ITGA6,ITGA3,ITGB4,ITGA2,COL17A1
LAMC1 ITGA6,ITGA1,ITGA7,ITGAV,ITGB1,ITGA2,ITGA3,ITGB4
LAMC2 ITGA6,CD151,ITGB1,ITGA2,COL17A1,ITGA3,ITGB4
LAMC3 ITGA6,ITGB1,ITGA3,ITGB4,ITGA2
LCN1 LMBR1L
LCN2 LRP2
LEFTY1 ACVR2B,ACVR1B,ACVR2A
LEFTY2 ACVR1B,ACVR2A,ACVR2B
LEP LEPR,LRP2
LGALS1 ITGB1,PTPRC
LGALS3BP ITGB1,CD33
LGALS8 ITGA3
LGALS9 CD44,SLC1A5,MRC2,HAVCR2,CD47
LHB PTH1R,ADCYAP1R1,RAMP2,VIPR1,RAMP3,GPR20,ADRB2,ADRB3,TSHR,LHCGR,GPR84
LIF LIFR,IL6ST
LIN7C ABCA1,KCNJ4,HTR2C
LIPC LRP1
LIPH LPAR1,LPAR4,LPAR2
LMAN1 MCFD2
LPA ITGAM,LPAR3,ITGB2,LPAR1,LPAR4,LPAR2,LRP2
LPL GPIHBP1,CD44,SDC1,VLDLR,LRP1,LRP2
LRIG1 EGFR,MET
LRIG2 EGFR
LRPAP1 LDLR,LRP1,SORT1,SORL1,LRP2,LRP8,VLDLR
LTA TNFRSF1A,LTBR,RIPK1,TNFRSF14,TNFRSF1B
LTB TNFRSF1A,LTBR,CD40
LTBP1 ITGB5
LTBP3 ITGB5
LTF LRP1,TFRC
LUM ITGB1
LYPD3 AGR2
LYZ ITGAL
MADCAM1 ITGA4,CD44,ITGB7
MATN1 ITGA1
MBL2 CD93,CALCR
MDK ITGA6,LRP1,SORL1,LRP2,GPC2,SDC3,TSPAN1,SDC4,SDC1,ALK,PTPRZ1,ITGB1,ITGA4
MEGF10 ABCA1
MELTF TFRC
MEPE PHEX
MFAP2 NOTCH1
MFAP5 NOTCH1
MFGE8 ITGB3,ITGAV,PDGFRB
MFNG NOTCH2,NOTCH1
MIA CDH7
MICA KLRK1
MICB KLRK1
MIF CXCR4,CD44,EGFR,CXCR2,CD74
MLN MLNR
MMP1 CD44,ITGA2
MMP12 PLAUR
MMP13 LRP1
MMP2 PECAM1,CCR2,SDC2,FGFR1
MMP7 CD44,SDC1,CD151,ERBB4
MMP9 ITGAM,RECK,CD44,ITGB2,EPHB2,LRP1,IFNAR1,TLR9
MST1 MST1R
MSTN ACVR2B
MTMR4 SMAD3
MUC7 SELL
NAMPT ADORA2A
NCAM1 CACNA1C,GFRA1,PTPRA,FGFR1,FGFR2,ROBO1
NCAN CDH2,SDC3
NCR3LG1 NCR3
NDP FZD4,LGR4
NGF NTRK1,SORCS2,TRPV1,MAGED1,BEX3,SORCS3,NGFR,SORT1,KIDINS220
NID1 ITGB1,ITGB3,COL13A1,PTPRF,ITGA3,ITGAV
NID2 COL13A1
NLGN1 NRXN3,NRXN2,NRXN1
NLGN2 NRXN1,NRXN3,MDGA1,NRXN2
NLGN3 NRXN1,NRXN3,NRXN2
NMB NMBR,BRS3,GRPR
NMS NMUR2,ADRA2A,MTNR1A,NMUR1,GRM7
NMU ADRA2A,GRM7,NMUR1,MTNR1A,NMUR2
NODAL ACVR2B,SMAD3,ACVR1B,ACVR2A,ACVR1C
NPB NPBWR2,GRM7,ADRA2A,MTNR1A,NPBWR1
NPFF NPFFR1,NPFFR2
NPNT ITGA8,ITGB1
NPPA NPR3,NPR2,NPR1
NPPB NPR3,NPR2,DPP4,NPR1
NPPC NPR3,NPR2,NPR1
NPS ADCYAP1R1,GPR84,TSHR,RAMP3,RAMP2,ADRB2,PTH1R,VIPR1,ADRB3,GPR20,NPSR1
NPTX1 NPTXR
NPTX2 NPTXR
NPVF NPFFR1,NPFFR2
NPW NPBWR2,GRM7,NPBWR1,ADRA2A,MTNR1A
NPY NPY5R,FAP,PRLHR,ADRA2A,MC4R,MTNR1A,NPFFR2,NPY2R,GRM7,DPP4,NPY1R,NPY4R
NRG1 GPC1,ERBB3,ERBB2,EGFR,MS4A4A,ADGRL1,ERBB4,LGR4
NRG2 ERBB3,ERBB2,ERBB4
NRG3 ERBB3,ERBB2,ERBB4
NRG4 ERBB2,EGFR,ERBB4
NRTN RET,GFRA2,GFRA1,GFRA3
NTF3 NTRK1,NGFR,NTRK2,NTRK3
NTF4 NGFR,NTRK2,BEX3,NTRK1
NTN1 UNC5D,UNC5B,DCC,UNC5A,ADORA2B,UNC5C,NEO1
NTN3 NEO1,CDON
NTN4 DCC,UNC5A
NTNG1 LRRC4C
NTNG2 LRRC4,LRRC4C
NTS SORT1,NTSR1,NTSR2,NGFR
NUCB2 ERAP1
NXPH1 NRXN1,NRXN3,NRXN2
NXPH2 NRXN1
NXPH3 NRXN1,NRXN3,NRXN2
OBP2A OR1G1
OLFM2 ROBO2
OMG RTN4RL1,LINGO1,RTN4R,NGFR
ORM1 CCR5
OSM LIFR,IL6ST,OSMR
OSTN NPR3
OXT AVPR2,AVPR1B,AVPR1A,OXTR
P4HB MTTP
PCSK1N GPR171
PCSK9 VLDLR,LDLR,LRP1,SORT1,APLP2
PDAP1 PDGFRB
PDCD1LG2 PDCD2,PDCD1
PDGFA PDGFRA,PDGFRB
PDGFB LRP1,ART1,PDGFRA,ITGAV,PDGFRB,S1PR1
PDGFC PDGFRA,PDGFRB,FLT4,KDR,FLT1
PDGFD PDGFRA,PDGFRB
PDX1 SLC2A2
PDYN OPRD1,OPRK1,ADRA2A,MTNR1A,GRM7,OPRM1
PENK OPRM1,GRM7,OPRD1,OPRK1,ADRA2A,OGFR,MTNR1A,MRGPRX1
PF4 CXCR3,FGFR2,SDC2,ACKR1,GRM7,LDLR,THBD,MTNR1A,PROCR,LRP1,ADRA2A
PGF NRP1,FLT1,NRP2
PI3 PLD2
PIGA PIGR
PIGF FLT1
PIP AQP5,CD4,NPTN
PKM CD44
PLA2G10 PLA2R1
PLAT ITGAM,LRP1,ITGB2
PLAU ITGAM,VLDLR,ITGB1,ITGB2,ITGA3,LRP1,ITGAV,LRP2,ST14,ITGA5,ITGB5,MRC2,PLAUR,IGF2R
PLG ITGAM,ITGB1,PLAUR,ITGB2,F2R,IGF2R,F3,PLGRKT,ITGA9,FLT1,F2RL1
PLTP ABCA1
PMCH GRM7,MCHR1,ADRA2A,MCHR2,MTNR1A
PNOC GRM7,OPRL1,MTNR1A,ADRA2A
PODXL SELL
PODXL2 SELL
POMC ADCYAP1R1,OPRM1,MC1R,GPR84,TSHR,OPRD1,RAMP3,MC3R,RAMP2,OPRK1,ADRA2A,MC4R,MTNR1A,ADRB2,MC5R,PTH1R,VIPR1,MC2R,ADRB3,GRM7,GPR20
PON2 HTR2A
PPBP MTNR1A,ACKR1,CXCR2,GRM7,ADRA2A,CXCR1
PPY ADRA2A,MTNR1A,NPY2R,GRM7,NPY1R,NPY4R,NPY5R
PRG4 CD44
PRL PRLR
PRLH PRLHR
PRND RPSA
PROC ITGAM,ITGB2,THBD,PROCR
PROK1 PROKR1,PROKR2
PROK2 PROKR1,PROKR2
PROS1 TYRO3,MERTK,AXL
PSAP LRP1,SORT1,GPR37,GPR37L1,CD1B,AR
PSEN1 NOTCH4,CD44,NOTCH2,NOTCH3,NOTCH1,NCSTN
PSPN GFRA3,RET,SDC3,GFRA2,GFRA4,GFRA1
PTGS2 ALOX5,PTGDR2,CAV1
PTH ADCYAP1R1,ADRB2,GPR84,PTH1R,VIPR1,GPR20,ADRB3,TSHR,RAMP3,RAMP2,LRP6,PTH2R
PTH2 PTH1R,ADCYAP1R1,TSHR,GPR20,GPR84,ADRB2,ADRB3,VIPR1,PTH2R,RAMP3,RAMP2
PTHLH ADCYAP1R1,GPR84,RAMP3,RAMP2,PTH2R,ADRB2,PTH1R,VIPR1,ADRB3,GPR20,TSHR
PTMA VIPR1
PTN SDC1,SDC3,PTPRZ1,PTPRS,ALK,PTPRB
PTPN11 FCRL4
PTPN6 CD300LF,FCRL4,CLEC12A
PYY NPY5R,DPP4,NPY1R,NPY4R,FAP,ADRA2A,MTNR1A,NPY2R,GRM7
QDPR DYSF
QRFP QRFPR
RAET1E KLRK1
RAET1G KLRK1
RAET1L KLRK1
RARRES2 GPR1,CMKLR1,CCRL2
RBP3 NOTCH1
RBP4 STRA6
RELN ITGA3,LRP8,VLDLR,ITGB1
REN ATP6AP2
RETN GPR25
RGMA HJV,NEO1,BMPR2,BMPR1B,HFE,TFR2
RGMB HJV,BMPR2,NEO1,BMPR1B
RIMS1 SLC17A7,CACNA1C,SLC18A2,SLC18A3
RIMS2 ABCA1
RLN1 RXFP2,RXFP1
RLN2 ADCYAP1R1,TSHR,GPR84,RXFP1,RAMP3,RAMP2,RXFP2,ADRB2,PTH1R,VIPR1,RXFP3,ADRB3,GPR20
RLN3 ADCYAP1R1,TSHR,GPR84,RXFP1,RAMP3,RAMP2,ADRA2A,RXFP2,MTNR1A,ADRB2,PTH1R,VIPR1,RXFP3,ADRB3,GRM7,RXFP4,GPR20
RNASE2 TLR2
RPH3A NRXN1
RSPO1 LGR6,LGR4,ZNRF3,FZD8,LRP6,LGR5
RSPO2 LGR6,LGR4,ZNRF3,LGR5
RSPO3 LGR6,LGR4,SDC4,FZD8,LRP6,LGR5
RSPO4 LGR6,LGR4,LGR5
RTN4 TNFRSF19,GJB2,LINGO1,RTN4R,NGFR,CNTNAP1,RTN4RL1
S100A1 TRPM3,RYR2,RYR1,TLR4,AGER
S100A10 CFTR,TRPV6
S100A12 TLR4,CD36
S100A4 PGLYRP1,ERBB2,EGFR,CCR5
S100A8 ITGB2,TLR4,CD36,AGER,CD69,CD68
S100A9 ITGB2,TLR4,CD36,AGER,CD68,ALCAM
S100B ALCAM,AGER
SAA1 FPR2,FPR1,TLR2,SCARB1,ADRA2A,MTNR1A,GRM7
SCGB1A1 LRP2,LMBR1L
SCGB3A1 MARCO,NOTCH3
SCGB3A2 MARCO
SCT PTH1R,ADCYAP1R1,RAMP2,VIPR1,RAMP3,GPR20,ADRB2,VIPR2,ADRB3,TSHR,GPR84,SCTR
SELPLG ITGAM,ESAM,SELL,SELP,SELE,ITGB2
SEMA3A PLXNA4,PLXNA3,PLXNA1,NRP1,PLXNA2,NRP2
SEMA3B NRP1,NRP2
SEMA3C PLXND1,NRP1,NRP2
SEMA3D PLXND1,NRP1
SEMA3E PLXND1,NRP1
SEMA3F PLXNA3,PLXNA1,NRP1,NRP2
SEMA3G NRP2
SEMA4A PLXNB2,PLXNB3,NRP1,PLXND1,PLXNB1
SEMA4B DCBLD2
SEMA4C PLXNB2
SEMA4D ERBB2,MET,PLXNB1,CD72,PLXNB2
SEMA4F NRP2
SEMA4G PLXNB2
SEMA5A PLXNB3,MET
SEMA6A PLXNA4,PLXNA2
SEMA6D TREM2,PLXNA1,TYROBP,KDR
SEMA7A ITGB1,ITGA1,PLXNC1
SERPINA1 LRP1
SERPINA7 SLC16A2
SERPINC1 GPC1,SDC2
SERPINE1 LRP2,PLAUR,ITGAV,LRP1,ITGB5
SERPINE2 LRP1
SERPING1 SELE,SELP
SFRP1 FZD2,FZD6
SFRP2 FZD5
SFTPA1 TLR2
SFTPA2 CD93
SFTPD SIRPA,TLR4,LY96
SHANK1 ADGRB2,ABCA1,SSTR2,ADGRL2,ADGRL1
SHANK2 CFTR
SHBG CLDN4,GPRC6A,SLC37A1
SHH SCUBE2,BOC,GPC5,CDON,GAS1,PTCH1,PTCH2,SMO,LRP2,GPC1,HHIP
SLIT1 ROBO1,FLRT3,GPC1
SLIT2 GPC1,ROBO4,SDC1,DCC,ROBO2,ROBO1
SLIT3 ROBO2,ROBO1
SLPI PLSCR4,CD4
SLURP1 CHRNA7
SORBS1 ITGA1,ITGB5,INSR
SOST LRP6,LRP5
SOSTDC1 LRP6
SPINK1 NRSN1,EGFR
SPINT1 ST14
SPON2 ITGB2,ITGAM
SPP1 ITGA4,CD44,ITGB1,ITGB3,ITGAV,ITGA9,ITGA5,ITGB5,PTGER4
SPTAN1 PTPRA
SPTBN2 PTPRA
SPX GALR2
SST SSTR5,SSTR2,MTNR1A,SSTR3,GRM7,SSTR4,SSTR1,ADRA2A
ST6GAL1 EGFR,CD22
SYK LAT,FCGR2A
SYTL3 NRXN1
TAC1 TACR2,TACR3,TACR1
TAC3 TACR3,TACR1,TACR2
TAC4 TACR2,TACR3,TACR1
TCN2 LRP2,CNR1
TCTN1 TMEM67
TDGF1 ACVR2B,SMAD3,ACVR1B,ACVR2A,ACVR1C,GPC1
TF LDLR,TFR2,HFE,LRP2,ADRB2,TFRC
TFF1 MUC5AC,FCRL4
TFF2 MUC6
TFPI VLDLR,LRP1,SDC4,F3
TG ASGR1,LRP2,TPO
TGFA ERBB4,ERBB3,ERBB2,EGFR
TGFB1 ENG,EGFR,SMAD3,TGFBR2,ITGB3,TGFBR1,ACVRL1,ITGB6,ITGAV,ITGB1,CAV1,SDC2,ITGB8,CXCR4,ITGB5,TGFBR3
TGFB2 ENG,TGFBR1,TGFBR3,ACVR1,TGFBR2
TGFB3 ENG,ITGB1,TGFBR2,ITGB3,TGFBR1,ACVRL1,ITGB6,ITGB5,TGFBR3
TGM2 ITGA4,ITGB1,ITGB3,SDC4,TBXA2R,ADGRG1,ITGA9
TGS1 RXRA
THBS1 ITGA4,CD47,SDC1,ITGB1,LRP5,ITGA2B,ITGB3,SDC4,SCARB1,ITGA6,TNFRSF11B,CD36,ITGA3,LRP1
THBS2 ITGA4,ITGB1,ITGB3,NOTCH4,ITGA6,CD36,NOTCH3,CD47
THPO MPL
TIMP1 FGFR2,CD63
TIMP2 CD44,ITGB1,ITGA3
TIMP3 CD44,MET,AGTR2,KDR
TLN1 ITGB3,ITGB5
TNC ITGA5,SDC1,EGFR,ITGB3,ITGB6,PTPRB,ITGA8,ITGA7,ITGB1,SDC4,CNTN1,ITGA2,ITGAV,ITGA9
TNF FFAR2,TNFRSF1A,TRAF2,RIPK1,FLT4,CELSR2,NOTCH1,TNFRSF21,ICOS,TRADD,FAS,PTPRS,TNFRSF1B,VSIR,TRPM2
TNFSF10 TNFRSF10D,RIPK1,TNFRSF10B,TNFRSF10C,TNFRSF11B,TNFRSF10A
TNFSF11 TNFRSF11A,TNFRSF11B,LGR4
TNFSF12 TNFRSF25,TNFRSF12A,TNFRSF8
TNFSF13 TNFRSF14,FAS,TNFRSF17,TNFRSF1A,TNFRSF13B,TNFRSF11B,SDC2
TNFSF13B TNFRSF17,TNFRSF13B,TNFRSF13C,TFRC,CD40
TNFSF14 LTBR,TNFRSF14,TNFRSF6B
TNFSF15 TNFRSF25,TNFRSF6B
TNFSF18 TNFRSF18
TNFSF4 TNFRSF4,TRAF2
TNFSF8 TNFRSF8
TNFSF9 TNFRSF9,PVR,TRAF2
TPH1 HTR7,HTR1A,HTR1F,HTR1D,HTR2C,HTR4,HTR6,HTR1B,HTR2A,HTR2B,HTR5A,HTR1E
TRH TRHR
TSHB PTH1R,ADCYAP1R1,VIPR1,GPR20,ADRB2,ADRB3,TSHR,GPR84,RAMP3,RAMP2
TSLP IL7R
UCN CRHR1,CRHR2
UCN2 IL10RB,CRHR2,CRHR1
UCN3 CRHR1,IL10RB,CRHR2
ULBP1 KLRK1
ULBP2 KLRK1
ULBP3 KLRK1
UTS2 UTS2R
UTS2B UTS2R
VASP CXCR2
VCAM1 ITGA4,ITGB1,ITGB2,EZR,MSN,ITGAD,ITGA9,ITGB7
VCAN ITGA4,CD44,EGFR,ITGB1,TLR1,SELL,TLR2,SELP
VCL ITGB5,ALK
VEGFA ITGAV,TYRO3,KDR,GPC1,ITGA9,NRP1,EGFR,FLT1,RET,NRP2,EPHB2,ITGB1,SIRPA,ITGB3,GRIN2B
VEGFB RET,NRP1,FLT1
VEGFC LYVE1,FLT4,KDR,ITGA9,FLT1,NRP2,ITGB1,CCBE1
VEGFD ITGA4,ITGB1,NRP2,FLT4,KDR,ITGA9,FLT1,ITGA1,ITGA5,ITGA2
VIM CD44
VIP ADCYAP1R1,GPR84,GPR20,TSHR,SCTR,RAMP3,RAMP2,RAMP1,VIPR2,NPR3,AVPR1A,ADRB2,PTH1R,VIPR1,ADRB3,DPP4
VTN ITGA5,ITGA8,CD47,ITGAV,ITGB1,KDR,PLAUR,ITGA2B,ITGB3,ITGB6,TNFRSF11B,PVR,ITGB5,ITGA3,ITGB8
VWF SCARA5,ITGA2B,ITGB3,STAB2,SELP,SIRPA,TNFRSF11B,GP1BA,LRP1
WIF1 RYK
WNT1 RYK,ROR2,LRP5,FZD9,FZD3,FZD8,FZD5,LRP6,FZD7,FZD1
WNT11 MUSK,KLRG2,FZD7
WNT16 FZD6
WNT2 FZD1,FZD4,FZD9,FZD7,FZD3,FZD8,FZD5,FZD2,LRP6
WNT2B FZD4
WNT3 RYK,LRP6,ROR2,FZD1,FZD7,FZD8,FZD5
WNT3A LRP5,FZD5,ROR1,ATP6AP2,APCDD1,RYK,FZD1,FZD7,FZD3,FZD8,FZD2,FZD6,LRP1,LRP6,LGR5
WNT4 FZD8,FZD2,FZD6,SMO,NOTCH1,FZD1
WNT5A PTK7,LDLR,LRP5,EPHA7,FZD5,ROR1,VANGL2,RYK,ROR2,PTPRK,ADRB2,FZD1,FZD4,FZD9,FZD7,FZD3,FZD8,FZD2,ANTXR1,FZD6,LRP6,LRP2,MCAM
WNT5B KLRG2
WNT6 FZD4
WNT7A LDLR,RECK,FZD9,FZD5,FZD10,LRP6
WNT7B FZD4,TMED5,FZD10,FZD1,LRP5
WNT8A LRP5
WNT8B LRP5
WNT9B LRP6
XCL1 ADGRV1,XCR1
XCL2 XCR1
YARS1 CXCR1
ZG16B TLR5,CXCR4,TLR2,TLR4
ZP3 EGFR
FCGR2B FCER1A,FCER1G,INPP5D,MS4A2,RAF1,DOK1,RASA1,BCR,CSK,CD79A
scRNAseq/ED_Figure5_plots.R
View file @
7dcd8057
...
...
@@ -2,9 +2,318 @@ suppressPackageStartupMessages(library(Seurat))
suppressPackageStartupMessages
(
library
(
monocle3
))
suppressPackageStartupMessages
(
library
(
ggplot2
))
suppressPackageStartupMessages
(
library
(
dplyr
))
suppressPackageStartupMessages
(
library
(
ComplexHeatmap
))
# ED_Fig5B ----------------------------------------------------------------
## load scRNAseq data from public dataset GSE162950
load
(
"Scarfo_HEC2023/scRNAseq/seurat_object.Rdata"
)
sample
<-
SetIdent
(
sample
,
value
=
sample
@
meta.data
$
seurat_clusters
)
DimPlot
(
sample
,
label
=
TRUE
,
group.by
=
"seurat_clusters"
)
sample
@
meta.data
[[
"orig.ident"
]]
<-
factor
(
sample
@
meta.data
[[
"orig.ident"
]],
levels
=
c
(
"AGM_CS10_Liu"
,
"AGM_CS11_Liu"
,
"AGM_CS13_Liu"
,
"AGM_4wk_658"
,
"AGM_5wk_555"
,
"AGM_5wk_575"
,
"AGM_6wk_563"
,
"YolkSac_CS11_Liu"
))
DimPlot
(
sample
,
label
=
F
,
repel
=
T
,
reduction
=
"umap"
,
group.by
=
"orig.ident"
,
pt.size
=
0.1
,
cols
=
c
(
"AGM_CS10_Liu"
=
"#00BFC4"
,
"AGM_CS11_Liu"
=
"#00A9FF"
,
"AGM_CS13_Liu"
=
"#C77CFF"
,
"AGM_4wk_658"
=
"#F8766D"
,
"AGM_5wk_555"
=
"#CD9600"
,
"AGM_5wk_575"
=
"#7CAE00"
,
"AGM_6wk_563"
=
"#00BE67"
,
"YolkSac_CS11_Liu"
=
"#FF61CC"
))
# ED_Fig5C ----------------------------------------------------------------
pal
<-
viridis
(
n
=
10
,
option
=
"D"
)
FeaturePlot
(
sample
,
features
=
c
(
"HOXA9"
,
"HOXA10"
),
ncol
=
2
,
repel
=
T
,
pt.size
=
0.05
,
order
=
T
,
cols
=
pal
)
# ED_Fig5E ----------------------------------------------------------------
install_github
(
"sturgeonlab/Luff-etal-2021/SingleR/versioncontrolscripts"
)
library
(
versioncontrolscripts
)
## load reference dataset
cd32_dll4
<-
read.table
(
"Scarfo_HEC2023/BulkRNAseq_2/featureCounts_results_tpm.txt"
,
header
=
T
,
sep
=
"\t"
)
## load Seurat data
load
(
"Scarfo_HEC2023/scRNAseq/seurat_object.Rdata"
)
sample
<-
SetIdent
(
sample
,
value
=
sample
@
meta.data
$
seurat_clusters
)
sample_noYS
<-
subset
(
sample
,
orig.ident
!=
"YolkSac_CS11_Liu"
)
sample_noYS
@
meta.data
[[
"orig.ident"
]]
<-
factor
(
sample_noYS
@
meta.data
[[
"orig.ident"
]],
levels
=
c
(
"AGM_CS10_Liu"
,
"AGM_CS11_Liu"
,
"AGM_CS13_Liu"
,
"AGM_4wk_658"
,
"AGM_5wk_555"
,
"AGM_5wk_575"
,
"AGM_6wk_563"
)
)
## defining HEC and AEC
aec
<-
WhichCells
(
sample_noYS
,
expression
=
CDH5
>
0.2
&
CXCR4
>
0.3
&
GJA5
>
0.2
&
DLL4
>
0.1
&
PTPRC
<
0.1
&
SPN
<
0.05
&
HEY2
>
0.15
)
hec
<-
WhichCells
(
sample_noYS
,
expression
=
RUNX1
>
0.1
&
CDH5
>
0.2
&
HOXA9
>
0.05
&
PTPRC
<
0.1
&
ITGA2B
<
0.1
&
SPN
<
0.05
)
Idents
(
sample_noYS
,
cells
=
aec
)
=
"AEC"
Idents
(
sample_noYS
,
cells
=
hec
)
=
"HEC"
sample_noYS
$
CellType
<-
Idents
(
sample_noYS
)
sample_noYS
<-
subset
(
sample_noYS
,
CellType
==
"AEC"
|
CellType
==
"HEC"
)
Idents
(
sample_noYS
)
<-
"CellType"
## setting up reference dataset
bulk
<-
cd32_dll4
[,
-
c
(
2
:
6
)]
bulk
<-
bulk
[,
c
(
1
,
2
,
3
,
4
,
6
,
7
,
9
)]
colnames
(
bulk
)
<-
c
(
"genes"
,
"RS227_CD184"
,
"RS227_CD32_plus"
,
"RS242_CD184"
,
"RS242_CD32_plus"
,
"RS243_CD184"
,
"RS243_CD32_plus"
)
bulk
$
CD184
<-
rowMeans
(
bulk
[,
c
(
2
,
4
,
6
)])
bulk
$
CD32_plus
<-
rowMeans
(
bulk
[,
c
(
3
,
5
,
7
)])
bulk
<-
bulk
[,
c
(
1
,
9
,
8
)]
types
=
list
(
"CD32_plus"
,
"CD184"
)
main_types
=
list
(
"CD32_plus"
,
"CD184"
)
x
=
bulk
[,
1
]
loss
=
bulk
[,
-1
]
rownames
(
loss
)
=
make.names
(
x
,
unique
=
TRUE
)
bulk
<-
loss
bulk
=
as.matrix
(
bulk
)
types
=
as.character
(
types
)
main_types
=
as.character
(
main_types
)
myref
=
list
(
data
=
bulk
,
main_types
=
main_types
,
types
=
types
)
myref
[[
"de.genes"
]]
=
CreateVariableGeneSet
(
bulk
,
types
,
200
)
myref
[[
"de.genes.main"
]]
=
CreateVariableGeneSet
(
bulk
,
main_types
,
300
)
labels
<-
sample_noYS
@
meta.data
$
orig.ident
stage
<-
sample_noYS
@
meta.data
$
CellType
stage2
<-
data.frame
(
stage
)
stage2
$
stage
<-
as.character
(
stage2
$
stage
)
stage2
<-
stage2
$
stage
# create singlecell dataset for comparison to bulk RNAseq
data
<-
GetAssayData
(
sample_noYS
,
assay
=
"RNA"
,
slot
=
"data"
)
data
<-
as.matrix
(
data
)
# run main SingleR function & add names for cluster
obj
<-
SingleR.CreateObject
(
data
,
myref
,
clusters
=
NULL
,
variable.genes
=
"de"
,
fine.tune
=
F
)
obj
[[
"names"
]]
<-
stage2
obj
[[
"names2"
]]
<-
labels
data
<-
t
(
obj
$
SingleR.single.main
$
r
)
cell_types
=
as.data.frame
(
obj
$
names
)
colnames
(
cell_types
)
=
'CellTypes'
rownames
(
cell_types
)
=
colnames
(
data
)
test
<-
as.data.frame
(
obj
$
names2
)
colnames
(
test
)
<-
"Samples"
rownames
(
test
)
<-
colnames
(
data
)
clusters
<-
cbind
(
cell_types
,
test
)
breaksList
=
seq
(
0
,
1
,
by
=
0.01
)
# export relative correlation scores and names for each cell in cs dataset
scores
=
obj
$
SingleR.single.main
$
r
datascores
<-
as.matrix
(
scores
)
scores
<-
data.frame
(
datascores
)
type
<-
data.frame
(
obj
$
names
)
cells
<-
data.frame
(
obj
$
names2
)
scores
$
type
<-
type
$
obj.names
scores
$
cells
<-
cells
$
obj.names2
#successive sorting orders cells in aesthetically-pleasing manner
for
(
k
in
unique
(
scores
$
cells
))
{
clu
<-
filter
(
scores
,
cells
==
k
)
clu
<-
clu
[
order
(
clu
$
CD184
),
]
clu
<-
clu
[
order
(
clu
$
CD32_plus
),
]
clu_cells
<-
rownames
(
clu
)
assign
(
paste0
(
"clu"
,
k
,
"_cells"
),
clu_cells
)
}
## reorder both clusters and HEC and AEC cells
agm_4
<-
filter
(
scores
,
cells
==
"AGM_4wk_658"
)
agm_4_hec
<-
filter
(
agm_4
,
type
==
"HEC"
)
agm_4_hec
<-
agm_4_hec
[
order
(
agm_4_hec
$
CD184
),]
agm_4_hec
<-
agm_4_hec
[
order
(
agm_4_hec
$
CD32_plus
),]
agm_4_aec
<-
filter
(
agm_4
,
type
==
"AEC"
)
agm_4_aec
<-
agm_4_aec
[
order
(
agm_4_aec
$
CD184
),]
agm_4_aec
<-
agm_4_aec
[
order
(
agm_4_aec
$
CD32_plus
),]
agm_5_1
<-
filter
(
scores
,
cells
==
"AGM_5wk_555"
)
agm_5_1_hec
<-
filter
(
agm_5_1
,
type
==
"HEC"
)
agm_5_1_hec
<-
agm_5_1_hec
[
order
(
agm_5_1_hec
$
CD184
),]
agm_5_1_hec
<-
agm_5_1_hec
[
order
(
agm_5_1_hec
$
CD32_plus
),]
agm_5_1_aec
<-
filter
(
agm_5_1
,
type
==
"AEC"
)
agm_5_1_aec
<-
agm_5_1_aec
[
order
(
agm_5_1_aec
$
CD184
),]
agm_5_1_aec
<-
agm_5_1_aec
[
order
(
agm_5_1_aec
$
CD32_plus
),]
agm_5_2
<-
filter
(
scores
,
cells
==
"AGM_5wk_575"
)
agm_5_2_hec
<-
filter
(
agm_5_2
,
type
==
"HEC"
)
agm_5_2_hec
<-
agm_5_2_hec
[
order
(
agm_5_2_hec
$
CD184
),]
agm_5_2_hec
<-
agm_5_2_hec
[
order
(
agm_5_2_hec
$
CD32_plus
),]
agm_5_2_aec
<-
filter
(
agm_5_2
,
type
==
"AEC"
)
agm_5_2_aec
<-
agm_5_2_aec
[
order
(
agm_5_2_aec
$
CD184
),]
agm_5_2_aec
<-
agm_5_2_aec
[
order
(
agm_5_2_aec
$
CD32_plus
),]
agm_6
<-
filter
(
scores
,
cells
==
"AGM_6wk_563"
)
agm_6_hec
<-
filter
(
agm_6
,
type
==
"HEC"
)
agm_6_hec
<-
agm_6_hec
[
order
(
agm_6_hec
$
CD184
),]
agm_6_hec
<-
agm_6_hec
[
order
(
agm_6_hec
$
CD32_plus
),]
agm_6_aec
<-
filter
(
agm_6
,
type
==
"AEC"
)
agm_6_aec
<-
agm_6_aec
[
order
(
agm_6_aec
$
CD184
),]
agm_6_aec
<-
agm_6_aec
[
order
(
agm_6_aec
$
CD32_plus
),]
agm_cs10
<-
filter
(
scores
,
cells
==
"AGM_CS10_Liu"
)
agm_cs10_hec
<-
filter
(
agm_cs10
,
type
==
"HEC"
)
agm_cs10_hec
<-
agm_cs10_hec
[
order
(
agm_cs10_hec
$
CD184
),]
agm_cs10_hec
<-
agm_cs10_hec
[
order
(
agm_cs10_hec
$
CD32_plus
),]
agm_cs10_aec
<-
filter
(
agm_cs10
,
type
==
"AEC"
)
agm_cs10_aec
<-
agm_cs10_aec
[
order
(
agm_cs10_aec
$
CD184
),]
agm_cs10_aec
<-
agm_cs10_aec
[
order
(
agm_cs10_aec
$
CD32_plus
),]
agm_cs11
<-
filter
(
scores
,
cells
==
"AGM_CS11_Liu"
)
agm_cs11_hec
<-
filter
(
agm_cs11
,
type
==
"HEC"
)
agm_cs11_hec
<-
agm_cs11_hec
[
order
(
agm_cs11_hec
$
CD184
),]
agm_cs11_hec
<-
agm_cs11_hec
[
order
(
agm_cs11_hec
$
CD32_plus
),]
agm_cs11_aec
<-
filter
(
agm_cs11
,
type
==
"AEC"
)
agm_cs11_aec
<-
agm_cs11_aec
[
order
(
agm_cs11_aec
$
CD184
),]
agm_cs11_aec
<-
agm_cs11_aec
[
order
(
agm_cs11_aec
$
CD32_plus
),]
agm_cs13
<-
filter
(
scores
,
cells
==
"AGM_CS13_Liu"
)
agm_cs13_hec
<-
filter
(
agm_cs13
,
type
==
"HEC"
)
agm_cs13_hec
<-
agm_cs13_hec
[
order
(
agm_cs13_hec
$
CD184
),]
agm_cs13_hec
<-
agm_cs13_hec
[
order
(
agm_cs13_hec
$
CD32_plus
),]
agm_cs13_aec
<-
filter
(
agm_cs13
,
type
==
"AEC"
)
agm_cs13_aec
<-
agm_cs13_aec
[
order
(
agm_cs13_aec
$
CD184
),]
agm_cs13_aec
<-
agm_cs13_aec
[
order
(
agm_cs13_aec
$
CD32_plus
),]
agm_4_hec.cells
<-
row.names
(
agm_4_hec
)
agm_4_aec.cells
<-
row.names
(
agm_4_aec
)
agm_5_1_hec.cells
<-
row.names
(
agm_5_1_hec
)
agm_5_1_aec.cells
<-
row.names
(
agm_5_1_aec
)
agm_5_2_hec.cells
<-
row.names
(
agm_5_2_hec
)
agm_5_2_aec.cells
<-
row.names
(
agm_5_2_aec
)
agm_6_hec.cells
<-
row.names
(
agm_6_hec
)
agm_6_aec.cells
<-
row.names
(
agm_6_aec
)
agm_cs10_hec.cells
<-
row.names
(
agm_cs10_hec
)
agm_cs10_aec.cells
<-
row.names
(
agm_cs10_aec
)
agm_cs11_hec.cells
<-
row.names
(
agm_cs11_hec
)
agm_cs11_aec.cells
<-
row.names
(
agm_cs11_aec
)
agm_cs13_hec.cells
<-
row.names
(
agm_cs13_hec
)
agm_cs13_aec.cells
<-
row.names
(
agm_cs13_aec
)
order
<-
c
(
agm_cs10_aec.cells
,
agm_cs11_aec.cells
,
agm_cs13_aec.cells
,
agm_4_aec.cells
,
agm_5_1_aec.cells
,
agm_5_2_aec.cells
,
agm_6_aec.cells
,
agm_cs10_hec.cells
,
agm_cs11_hec.cells
,
agm_cs13_hec.cells
,
agm_4_hec.cells
,
agm_5_1_hec.cells
,
agm_5_2_hec.cells
,
agm_6_hec.cells
)
data_reorder
<-
data
[,
match
(
order
,
colnames
(
data
))]
annot_colors
<-
list
(
CellTypes
=
c
(
HEC
=
"red"
,
AEC
=
"royalblue3"
),
Samples
=
c
(
AGM_CS10_Liu
=
"#00BFC4"
,
AGM_CS11_Liu
=
"#00A9FF"
,
AGM_CS13_Liu
=
"#C77CFF"
,
AGM_4wk_658
=
"#F8766D"
,
AGM_5wk_555
=
"#CD9600"
,
AGM_5wk_575
=
"#7CAE00"
,
AGM_6wk_563
=
"#00BE67"
))
annot
<-
clusters
colours
<-
annot_colors
colAnn
<-
HeatmapAnnotation
(
df
=
clusters
,
which
=
'col'
,
show_annotation_name
=
T
,
col
=
annot_colors
,
annotation_legend_param
=
list
(
CellTypes
=
list
(
title
=
"Cell Type"
,
title_gp
=
gpar
(
fontsize
=
14
*
96
/
72
,
fontface
=
"bold"
),
labels_gp
=
gpar
(
fontsize
=
14
*
96
/
72
),
grid_height
=
unit
(
0.7
,
"cm"
)),
Samples
=
list
(
title
=
"Samples"
,
title_gp
=
gpar
(
fontsize
=
14
*
96
/
72
,
fontface
=
"bold"
),
labels_gp
=
gpar
(
fontsize
=
14
*
96
/
72
),
grid_height
=
unit
(
0.7
,
"cm"
))),
annotation_width
=
unit
(
c
(
1
,
4
),
'cm'
),
gap
=
unit
(
1
,
'mm'
))
counts_scaled
<-
t
(
scale
(
t
(
data_reorder
)))
counts_scaled_ordered
<-
counts_scaled
[,
match
(
rownames
(
clusters
),
colnames
(
counts_scaled
))]
clusters
$
DF
<-
paste
(
clusters
$
CellTypes
,
clusters
$
Samples
,
sep
=
"_"
)
dd
<-
cluster_within_group
(
counts_scaled_ordered
,
clusters
$
DF
)
hmap
<-
Heatmap
(
counts_scaled_ordered
,
name
=
"Z-score"
,
show_column_names
=
F
,
show_column_dend
=
F
,
show_parent_dend_line
=
F
,
show_row_dend
=
F
,
cluster_rows
=
F
,
cluster_columns
=
dd
,
column_gap
=
unit
(
c
(
2
,
2
,
5
,
2
,
5
,
2
,
5
,
2
,
2
,
5
,
5
,
2
,
5
),
"mm"
),
top_annotation
=
colAnn
,
column_split
=
14
,
clustering_method_columns
=
"ward.D2"
,
heatmap_legend_param
=
list
(
title
=
"Z-Scores"
,
title_gp
=
gpar
(
fontsize
=
14
*
96
/
72
,
fontface
=
"bold"
),
labels_gp
=
gpar
(
fontsize
=
12
*
96
/
72
),
legend_height
=
unit
(
2
,
"cm"
)
),
width
=
unit
(
15
*
96
/
72
,
"cm"
),
height
=
unit
(
5
*
96
/
72
,
"cm"
),
use_raster
=
TRUE
,
# for raster quality, needs to be tested
raster_quality
=
5
)
draw
(
hmap
,
heatmap_legend_side
=
"right"
,
annotation_legend_side
=
"right"
)
# ED_Fig5F ----------------------------------------------------------------
## load scRNAseq data from public dataset GSE162950
load
(
"Scarfo_HEC2023/scRNAseq/seurat_object.Rdata"
)
EHT_scorecard
<-
c
(
"CXCR4"
,
"SOX17"
,
"GJA5"
,
"MECOM"
,
"HOXA9"
,
"SPN"
,
"CD44"
,
"ITGA2B"
,
"HLF"
,
"GFI1"
,
"MLLT3"
,
"KCNK17"
,
"MYB"
,
"STAT5A"
,
"SMIM24"
,
"RAB27B"
,
"SPINK2"
)
...
...
@@ -27,115 +336,15 @@ Idents(sample, cells=bars4) = "FCGR2B_exp"
sample
$
CellType
<-
Idents
(
sample
)
sample_sub
<-
subset
(
sample
,
CellType
==
"FCGR2B_exp"
|
CellType
==
"FCGR2B=0"
)
DotPlot
(
sample_sub
,
features
=
EHT_scorecard
,
cols
=
c
(
"grey90"
,
"red3"
),
dot.scale
=
10
)
+
features
=
EHT_scorecard
,
cols
=
c
(
"grey90"
,
"red3"
),
dot.scale
=
10
)
+
coord_flip
()
# ED_Fig5C ------------------------------------------------------------------
## load Seurat data
sample
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/WNTd_HE.rds"
)
sample
@
meta.data
[[
"Cell.Annotations"
]]
<-
recode_factor
(
sample
@
meta.data
[[
"RNA_snn_res.0.6"
]],
"0"
=
"HECs"
,
"1"
=
"HECs"
,
"2"
=
"HECs"
,
"3"
=
"Venous cells"
,
"4"
=
"Venous cells"
,
"5"
=
"Arterial ECs"
,
"6"
=
"Arterial ECs"
,
"7"
=
"Venous cells"
,
"8"
=
"ECs (M phase)"
,
"9"
=
"Venous cells"
,
"10"
=
"EndoMT cells"
,
"11"
=
"HECs"
,
"12"
=
"Arterial ECs"
,
"13"
=
"Lymphatic ECs"
,
"14"
=
"Arterial ECs"
,
"15"
=
"Allantois/Placenta"
,
"16"
=
"HECs"
,
"17"
=
"HECs"
,
"18"
=
"EndoMT cells"
,
"19"
=
"SM cells"
,
"20"
=
"EndoMT cells"
,
"21"
=
"EndoMT cells"
)
DimPlot
(
object
=
sample
,
reduction
=
"umap"
,
group.by
=
"Cell.Annotations"
,
label
=
F
,
repel
=
T
,
pt.size
=
0.8
,
label.size
=
6
,
cols
=
c
(
'HECs'
=
"#377EB8"
,
'Lymphatic ECs'
=
"#4DAF4A"
,
'Arterial ECs'
=
"#E41A1C"
,
'Venous cells'
=
"#FF7F00"
,
'EndoMT cells'
=
"#E6AB02"
,
'Allantois/Placenta'
=
"#984EA3"
,
'SM cells'
=
"#A6761D"
,
"ECs (M phase)"
=
"#A50026"
))
# ED_Fig5D - ED_Fig5E ------------------------------------------------------------------
FeaturePlot
(
object
=
sample
,
features
=
c
(
"RUNX1"
,
"FCGR2B"
),
cols
=
c
(
"grey90"
,
"blue"
),
order
=
T
,
pt.size
=
0.1
)
# ED_Fig5F ------------------------------------------------------------------
runx1
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/RUNX1_clusters.rds"
)
## Monocle3
Idents
(
runx1
)
<-
"RNA_snn_res.0.6"
start
=
WhichCells
(
runx1
,
idents
=
"0"
)
expression_matrix
<-
runx1
@
assays
[[
"RNA"
]]
@
counts
cell_metadata
<-
runx1
@
meta.data
cell_metadata
$
orig.ident
<-
factor
(
cell_metadata
$
orig.ident
,
levels
=
unique
(
cell_metadata
$
orig.ident
))
gene_annotation
<-
data.frame
(
"gene_short_name"
=
rownames
(
runx1
))
rownames
(
gene_annotation
)
<-
gene_annotation
$
gene_short_name
cds
<-
new_cell_data_set
(
expression_data
=
expression_matrix
,
cell_metadata
=
cell_metadata
,
gene_metadata
=
gene_annotation
)
cds
<-
preprocess_cds
(
cds
,
num_dim
=
50
)
cds
<-
reduce_dimension
(
cds
)
## Construct and assign the made up partition
recreate.partition
<-
c
(
rep
(
1
,
length
(
cds
@
colData
@
rownames
)))
names
(
recreate.partition
)
<-
cds
@
colData
@
rownames
recreate.partition
<-
as.factor
(
recreate.partition
)
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"partitions"
]]
<-
recreate.partition
## Assign the cluster info
list_cluster
<-
runx1
@
meta.data
[[
"RNA_snn_res.0.6"
]]
names
(
list_cluster
)
<-
runx1
@
assays
[[
"RNA"
]]
@
data
@
Dimnames
[[
2
]]
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"clusters"
]]
<-
list_cluster
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"louvain_res"
]]
<-
"NA"
## Assign UMAP coordinate
reducedDims
(
cds
)[[
"UMAP"
]]
<-
runx1
@
reductions
[[
"umap"
]]
@
cell.embeddings
### Reset colnames and rownames (consequence of UMAP replacement)
rownames
(
cds
@
principal_graph_aux
[[
'UMAP'
]]
$
dp_mst
)
<-
NULL
## Learn Graph
cds
<-
learn_graph
(
cds
=
cds
,
use_partition
=
T
,
learn_graph_control
=
list
(
ncenter
=
220
,
minimal_branch_len
=
15
),
verbose
=
T
)
cds
<-
order_cells
(
cds
,
root_cells
=
start
)
plot_cells
(
cds
,
color_cells_by
=
"pseudotime"
,
label_groups_by_cluster
=
FALSE
,
label_leaves
=
T
,
label_branch_points
=
T
,
group_label_size
=
8
,
graph_label_size
=
3
,
cell_size
=
1
,
trajectory_graph_segment_size
=
1
)
# ED_Fig5G ------------------------------------------------------------------
cds
<-
estimate_size_factors
(
cds
)
gi
<-
c
(
"H19"
,
"KCNK17"
,
"RUNX1"
,
"MYB"
,
"SPN"
)
cds_gi
<-
cds
[
rowData
(
cds
)
$
gene_short_name
%in%
gi
,]
plot_genes_in_pseudotime
(
cds_subset
=
cds_gi
,
ncol
=
3
,
color_cells_by
=
"RNA_snn_res.0.6"
,
min_expr
=
NULL
,
cell_size
=
1
)
scRNAseq/ED_Figure6_CellOracle.ipynb
0 → 100644
View file @
7dcd8057
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import libraries"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import celloracle as co\n",
"from celloracle.applications import Pseudotime_calculator\n",
"from celloracle.applications import Gradient_calculator\n",
"from celloracle.applications import Oracle_development_module\n",
"import anndata2ri\n",
"import os\n",
"import sys\n",
"import time\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import scanpy as sc\n",
"import seaborn as sns\n",
"import copy\n",
"import glob\n",
"import time\n",
"import shutil\n",
"from tqdm.auto import tqdm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plotting parameters settings"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# visualization settings\n",
"%config InlineBackend.figure_format = 'retina'\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = [6, 4.5]\n",
"plt.rcParams[\"savefig.dpi\"] = 300"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"save_folder = \"Scarfo_HEC2023/scRNAseq\"\n",
"os.makedirs(save_folder, exist_ok=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Load Seurat object in Python"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Activate the anndata2ri conversion between SingleCellExperiment and AnnData\n",
"anndata2ri.activate()\n",
"#Loading the rpy2 extension\n",
"%load_ext rpy2.ipython\n",
"sc.settings.verbosity = 3\n",
"sc.logging.print_versions()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%R\n",
"suppressPackageStartupMessages(library(Seurat))\n",
"runx1_obj <- readRDS(\"Scarfo_HEC2023/scRNAseq/RUNX1_clusters.rds\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"%%R -o runx1_obj_sce\n",
"#convert the Seurat object to a SingleCellExperiment object\n",
"runx1_obj_sce <- as.SingleCellExperiment(runx1_obj)\n",
"runx1_obj_sce"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"adata = runx1_obj_sce\n",
"adata"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"print(f\"Cell number is :{adata.shape[0]}\")\n",
"print(f\"Gene number is :{adata.shape[1]}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"sc.pl.umap(adata, color='RNA_snn_new_res.0.6')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Constructing GRN"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Select top 3000 highly-variable genes\n",
"filter_result = sc.pp.filter_genes_dispersion(adata.X,flavor='cell_ranger',n_top_genes=3000,log=False)\n",
"# Subset the genes\n",
"adata = adata[:, filter_result.gene_subset]\n",
"print(f\"Cell number is :{adata.shape[0]}\")\n",
"print(f\"Gene number is :{adata.shape[1]}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Load data from CellTalkDB\n",
"ligand_receptor = pd.read_csv(\"Scarfo_HEC2023/scRNAseq/CellTalkDB_modified.txt\", sep='\\t')\n",
"ligand_receptor.columns = ['Ligand','Receptor']\n",
"ligand_receptor\n",
"print('FCGR2B' in ligand_receptor['Ligand'].unique())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Make dictionary: dictionary key is Ligand and dictionary value is list of target genes.\n",
"LR_to_TG_dictionary = {}\n",
"for LR, TGs in zip(ligand_receptor.Ligand, ligand_receptor.Receptor):\n",
" TG_list = TGs.replace(\" \", \"\").split(\",\")\n",
" LR_to_TG_dictionary[LR] = TG_list\n",
"TG_to_LR_dictionary = co.utility.inverse_dictionary(LR_to_TG_dictionary)\n",
"TG_to_LR_dictionary"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate Oracle object\n",
"oracle = co.Oracle()\n",
"oracle.import_anndata_as_raw_count(adata=adata,cluster_column_name=\"RNA_snn_new_res.0.6\",embedding_name=\"X_umap\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Add LR information \n",
"oracle.addTFinfo_dictionary(TG_to_LR_dictionary)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Perform PCA\n",
"oracle.perform_PCA()\n",
"# Select important PCs\n",
"plt.plot(np.cumsum(oracle.pca.explained_variance_ratio_)[:100])\n",
"n_comps = np.where(np.diff(np.diff(np.cumsum(oracle.pca.explained_variance_ratio_))>0.002))[0][0]\n",
"plt.axvline(n_comps, c=\"k\")\n",
"plt.show()\n",
"print(n_comps)\n",
"n_comps = min(n_comps, 50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Estimate the optimal number of nearest neighbors for KNN imputation\n",
"n_cell = oracle.adata.shape[0]\n",
"print(f\"cell number is :{n_cell}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"k = int(0.025*n_cell)\n",
"print(f\"Auto-selected k is :{k}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# perform KNN imputation\n",
"oracle.knn_imputation(n_pca_dims=n_comps,k=k, balanced=True,b_sight=k*8,b_maxl=k*4,n_jobs=4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# GRN calculation\n",
"%time\n",
"links = oracle.get_links(cluster_name_for_GRN_unit=\"RNA_snn_new_res.0.6\", alpha=10,verbose_level=10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"links.links_dict.keys()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# filter weak edges\n",
"links.filter_links(p=0.001, weight=\"coef_abs\", threshold_number=2000)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# network degree distribution\n",
"links.plot_degree_distributions(plot_model=True,\n",
" save=f\"{save_folder}/degree_distribution/\",)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate network scores.\n",
"links.get_network_score()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Adding pseudotime to oracle object"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate pseudotime object using oracle object.\n",
"pt = Pseudotime_calculator(oracle_object=oracle)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"clusters_in_RUNX1_lineage = ['0','1','2','11','16','17']\n",
"# Make a dictionary\n",
"lineage_dictionary = {\"Lineage_RUNX1\": clusters_in_RUNX1_lineage}\n",
"# Input lineage information into pseudotime object\n",
"pt.set_lineage(lineage_dictionary=lineage_dictionary)\n",
"# Visualize lineage information\n",
"pt.plot_lineages()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# add root cell information\n",
"# plotly is required\n",
"try:\n",
" import plotly.express as px\n",
" def plot(adata, embedding_key, cluster_column_name):\n",
" embedding = adata.obsm[embedding_key]\n",
" df = pd.DataFrame(embedding, columns=[\"x\", \"y\"])\n",
" df[\"cluster\"] = adata.obs[cluster_column_name].values\n",
" df[\"label\"] = adata.obs.index.values\n",
" fig = px.scatter(df, x=\"x\", y=\"y\", hover_name=df[\"label\"], color=\"cluster\")\n",
" fig.show()\n",
" plot(adata=pt.adata,\n",
" embedding_key=pt.obsm_key,\n",
" cluster_column_name=pt.cluster_column_name)\n",
"except:\n",
" print(\"Plotly not found in your environment. Did you install plotly?\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Estimated root cell name for each lineage\n",
"root_cells = {\"Lineage_RUNX1\": \"Sample1_GGAGAACTCGCGGTAC-1\"}\n",
"pt.set_root_cells(root_cells=root_cells)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Check diffusion map data.\n",
"\"X_diffmap\" in pt.adata.obsm"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# calculate diffusion map\n",
"sc.pp.neighbors(pt.adata, n_neighbors=30)\n",
"sc.tl.diffmap(pt.adata)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate pseudotime\n",
"pt.get_pseudotime_per_each_lineage()\n",
"# Check results\n",
"pt.plot_pseudotime(cmap=\"rainbow\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Add calculated pseudotime data to the oracle object\n",
"oracle.adata.obs = pt.adata.obs"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## In silico perturbation analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# make pridictive models for simulation and fit the ridge regression models again\n",
"links.filter_links()\n",
"oracle.get_cluster_specific_TFdict_from_Links(links_object=links)\n",
"oracle.fit_GRN_for_simulation(alpha=10, use_cluster_specific_TFdict=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"goi = \"FCGR2B\"\n",
"# Enter perturbation conditions to simulate signal propagation after the perturbation.\n",
"oracle.simulate_shift(perturb_condition={goi: 0.0}, n_propagation=3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Get transition probability\n",
"oracle.estimate_transition_prob(n_neighbors=200,knn_random=True,sampled_fraction=1)\n",
"# Calculate embedding\n",
"oracle.calculate_embedding_shift(sigma_corr=0.05)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# quiver plots\n",
"fig, ax = plt.subplots(1, 2, figsize=[13, 6])\n",
"scale = 25\n",
"# Show quiver plot\n",
"oracle.plot_quiver(scale=scale, ax=ax[0])\n",
"ax[0].set_title(f\"Simulated cell identity shift vector: {goi} KO\")\n",
"# Show quiver plot that was calculated with randomized graph.\n",
"oracle.plot_quiver_random(scale=scale, ax=ax[1])\n",
"ax[1].set_title(f\"Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# establishing digitalized grids\n",
"n_grid = 40\n",
"oracle.calculate_p_mass(smooth=0.8, n_grid=n_grid, n_neighbors=200)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Search for best min_mass.\n",
"oracle.suggest_mass_thresholds(n_suggestion=12)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"min_mass = 19\n",
"oracle.calculate_mass_filter(min_mass=min_mass, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# shift vector plots\n",
"fig, ax = plt.subplots(1, 2, figsize=[13, 5])\n",
"scale_simulation = 2\n",
"# Show quiver plot\n",
"oracle.plot_simulation_flow_on_grid(scale=scale_simulation, ax=ax[0])\n",
"ax[0].set_title(f\"Simulated cell identity shift vector: {goi} KO\")\n",
"# Show quiver plot that was calculated with randomized graph.\n",
"oracle.plot_simulation_flow_random_on_grid(scale=scale_simulation, ax=ax[1])\n",
"ax[1].set_title(f\"Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Plot vector field with cell cluster\n",
"fig, ax = plt.subplots(figsize=[8, 8])\n",
"oracle.plot_cluster_whole(ax=ax, s=10)\n",
"oracle.plot_simulation_flow_on_grid(scale=scale_simulation, ax=ax, show_background=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Visualize pseudotime\n",
"fig, ax = plt.subplots(figsize=[6,6])\n",
"sc.pl.embedding(adata=oracle.adata, basis=oracle.embedding_name, ax=ax, cmap=\"viridis\",\n",
" color=[\"Pseudotime\"], save=\"pseudotime.pdf\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Instantiate Gradient calculator object\n",
"gradient = Gradient_calculator(oracle_object=oracle, pseudotime_key=\"Pseudotime\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"gradient.calculate_p_mass(smooth=0.8, n_grid=n_grid, n_neighbors=200)\n",
"gradient.calculate_mass_filter(min_mass=min_mass, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# convert pseudotime intop grid points\n",
"gradient.transfer_data_into_grid(args={\"method\": \"polynomial\", \"n_poly\":5}, plot=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculate graddient\n",
"gradient.calculate_gradient()\n",
"# Show results\n",
"scale_dev = 20\n",
"gradient.visualize_results(scale=scale_dev, s=5)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Visualize results\n",
"fig, ax = plt.subplots(figsize=[6, 6])\n",
"gradient.plot_dev_flow_on_grid(scale=scale_dev, ax=ax)\n",
"ax.set_title(f\"Normal Developmental flow\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# quantitatively compare the directionality and size of vectors between perturbation simulation and natural differentiation using inner product\n",
"# Make Oracle_development_module to compare two vector field\n",
"dev = Oracle_development_module()\n",
"# Load development flow\n",
"dev.load_differentiation_reference_data(gradient_object=gradient)\n",
"# Load simulation result\n",
"dev.load_perturb_simulation_data(oracle_object=oracle)\n",
"# Calculate inner produc scores\n",
"dev.calculate_inner_product()\n",
"dev.calculate_digitized_ip(n_bins=10)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Show perturbation scores\n",
"vm = 0.2\n",
"fig, ax = plt.subplots(1, 2, figsize=[12, 5])\n",
"dev.plot_inner_product_on_grid(vm=0.02, s=50, ax=ax[0])\n",
"ax[0].set_title(f\"PS calculated with FCGR2B KO\")\n",
"dev.plot_inner_product_random_on_grid(vm=vm, s=50, ax=ax[1])\n",
"ax[1].set_title(f\"PS calculated with Randomized simulation vector\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Show perturbation scores with perturbation simulation vector field\n",
"fig, ax = plt.subplots(figsize=[6, 6])\n",
"dev.plot_inner_product_on_grid(vm=0.05, s=50, ax=ax)\n",
"dev.plot_simulation_flow_on_grid(scale=scale_simulation, show_background=False, ax=ax)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# summary plots\n",
"# visualize the results\n",
"dev.visualize_development_module_layout_0(s=5, scale_for_simulation=scale_simulation, s_grid=50, scale_for_pseudotime=scale_dev, vm=0.05)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:postsc]",
"language": "python",
"name": "conda-env-postsc-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.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
scRNAseq/ED_Figure6_plots.R
0 → 100644
View file @
7dcd8057
suppressPackageStartupMessages
(
library
(
Seurat
))
suppressPackageStartupMessages
(
library
(
monocle3
))
suppressPackageStartupMessages
(
library
(
ggplot2
))
suppressPackageStartupMessages
(
library
(
dplyr
))
suppressPackageStartupMessages
(
library
(
dyno
))
suppressPackageStartupMessages
(
library
(
tidyverse
))
suppressPackageStartupMessages
(
library
(
magrittr
))
suppressPackageStartupMessages
(
library
(
patchwork
))
# ED_Fig6A ------------------------------------------------------------------
## load Seurat data
sample
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/WNTd_HE.rds"
)
sample
@
meta.data
[[
"Cell.Annotations"
]]
<-
recode_factor
(
sample
@
meta.data
[[
"RNA_snn_res.0.6"
]],
"0"
=
"HECs"
,
"1"
=
"HECs"
,
"2"
=
"HECs"
,
"3"
=
"Venous cells"
,
"4"
=
"Venous cells"
,
"5"
=
"Arterial ECs"
,
"6"
=
"Arterial ECs"
,
"7"
=
"Venous cells"
,
"8"
=
"ECs (M phase)"
,
"9"
=
"Venous cells"
,
"10"
=
"EndoMT cells"
,
"11"
=
"HECs"
,
"12"
=
"Arterial ECs"
,
"13"
=
"Lymphatic ECs"
,
"14"
=
"Arterial ECs"
,
"15"
=
"Allantois/Placenta"
,
"16"
=
"HECs"
,
"17"
=
"HECs"
,
"18"
=
"EndoMT cells"
,
"19"
=
"SM cells"
,
"20"
=
"EndoMT cells"
,
"21"
=
"EndoMT cells"
)
DimPlot
(
object
=
sample
,
reduction
=
"umap"
,
group.by
=
"Cell.Annotations"
,
label
=
F
,
repel
=
T
,
pt.size
=
0.8
,
label.size
=
6
,
cols
=
c
(
'HECs'
=
"#377EB8"
,
'Lymphatic ECs'
=
"#4DAF4A"
,
'Arterial ECs'
=
"#E41A1C"
,
'Venous cells'
=
"#FF7F00"
,
'EndoMT cells'
=
"#E6AB02"
,
'Allantois/Placenta'
=
"#984EA3"
,
'SM cells'
=
"#A6761D"
,
"ECs (M phase)"
=
"#A50026"
))
# ED_Fig6B - ED_Fig6C ------------------------------------------------------------------
FeaturePlot
(
object
=
sample
,
features
=
c
(
"RUNX1"
,
"FCGR2B"
),
cols
=
c
(
"grey90"
,
"blue"
),
order
=
T
,
pt.size
=
0.1
)
# ED_Fig6D ------------------------------------------------------------------
runx1
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/RUNX1_clusters.rds"
)
## Monocle3
Idents
(
runx1
)
<-
"RNA_snn_res.0.6"
start
=
WhichCells
(
runx1
,
idents
=
"0"
)
expression_matrix
<-
runx1
@
assays
[[
"RNA"
]]
@
counts
cell_metadata
<-
runx1
@
meta.data
cell_metadata
$
orig.ident
<-
factor
(
cell_metadata
$
orig.ident
,
levels
=
unique
(
cell_metadata
$
orig.ident
))
gene_annotation
<-
data.frame
(
"gene_short_name"
=
rownames
(
runx1
))
rownames
(
gene_annotation
)
<-
gene_annotation
$
gene_short_name
cds
<-
new_cell_data_set
(
expression_data
=
expression_matrix
,
cell_metadata
=
cell_metadata
,
gene_metadata
=
gene_annotation
)
cds
<-
preprocess_cds
(
cds
,
num_dim
=
50
)
cds
<-
reduce_dimension
(
cds
)
## Construct and assign the made up partition
recreate.partition
<-
c
(
rep
(
1
,
length
(
cds
@
colData
@
rownames
)))
names
(
recreate.partition
)
<-
cds
@
colData
@
rownames
recreate.partition
<-
as.factor
(
recreate.partition
)
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"partitions"
]]
<-
recreate.partition
## Assign the cluster info
list_cluster
<-
runx1
@
meta.data
[[
"RNA_snn_res.0.6"
]]
names
(
list_cluster
)
<-
runx1
@
assays
[[
"RNA"
]]
@
data
@
Dimnames
[[
2
]]
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"clusters"
]]
<-
list_cluster
cds
@
clusters
@
listData
[[
"UMAP"
]][[
"louvain_res"
]]
<-
"NA"
## Assign UMAP coordinate
reducedDims
(
cds
)[[
"UMAP"
]]
<-
runx1
@
reductions
[[
"umap"
]]
@
cell.embeddings
### Reset colnames and rownames (consequence of UMAP replacement)
rownames
(
cds
@
principal_graph_aux
[[
'UMAP'
]]
$
dp_mst
)
<-
NULL
## Learn Graph
cds
<-
learn_graph
(
cds
=
cds
,
use_partition
=
T
,
learn_graph_control
=
list
(
ncenter
=
220
,
minimal_branch_len
=
15
),
verbose
=
T
)
cds
<-
order_cells
(
cds
,
root_cells
=
start
)
plot_cells
(
cds
,
color_cells_by
=
"pseudotime"
,
label_groups_by_cluster
=
FALSE
,
label_leaves
=
T
,
label_branch_points
=
T
,
group_label_size
=
8
,
graph_label_size
=
3
,
cell_size
=
1
,
trajectory_graph_segment_size
=
1
)
# ED_Fig6E ------------------------------------------------------------------
cds
<-
estimate_size_factors
(
cds
)
gi
<-
c
(
"H19"
,
"KCNK17"
,
"RUNX1"
,
"MYB"
,
"SPN"
)
cds_gi
<-
cds
[
rowData
(
cds
)
$
gene_short_name
%in%
gi
,]
plot_genes_in_pseudotime
(
cds_subset
=
cds_gi
,
ncol
=
3
,
color_cells_by
=
"RNA_snn_res.0.6"
,
min_expr
=
NULL
,
cell_size
=
1
)
# ED_Fig6F - ED_Fig6G ------------------------------------------------------------------
## load Seurat data
sample
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/WNTd_HE.rds"
)
runx1
<-
subset
(
sample
,
idents
=
c
(
"0"
,
"1"
,
"2"
,
"11"
,
"16"
,
"17"
))
Idents
(
runx1
)
<-
"RNA_snn_new_res.0.6"
# preparing data for dyno
df
<-
as.matrix
(
runx1
[[
"RNA"
]]
@
data
)
counts
<-
Matrix
::
t
(
as
(
as.matrix
(
runx1
@
assays
$
RNA
@
counts
),
'sparseMatrix'
))
expression
<-
Matrix
::
t
(
as
(
as.matrix
(
runx1
@
assays
$
RNA
@
data
),
'sparseMatrix'
))
dataset_runx1
<-
wrap_expression
(
expression
=
expression
,
counts
=
counts
)
dataset_runx1
<-
dataset_runx1
%>%
add_prior_information
(
start_id
=
"Sample1_ATCTCTATCCAATCCC-1"
,
# from cluster 0
start_n
=
0
)
%>%
add_grouping
(
grouping
=
runx1
$
RNA_snn_new_res.0.6
)
%>%
add_dimred
(
Embeddings
(
runx1
,
"umap"
))
# selecting method
guidelines
<-
guidelines_shiny
(
dataset_runx1
)
methods_selected
<-
guidelines
$
methods_selected
methods_selected
# running top model
model_paga_t
<-
infer_trajectory
(
dataset_runx1
,
method
=
ti_paga_tree
(),
verbose
=
T
,
give_priors
=
c
(
"start_id"
,
"start_n"
))
# plotting trajectory and pseudotime scores
patchwork
::
wrap_plots
(
plot_dimred
(
model_paga_t
,
size_cells
=
0.5
,
grouping
=
dataset_runx1
$
grouping
)
+
ggtitle
(
" RUNX1 Clusters"
)
+
scale_color_manual
(
values
=
c
(
"#F8766D"
,
"#B79F00"
,
"#00BFC4"
,
"#619CFF"
,
"#F564E3"
,
"#00BA38"
))
+
labs
(
color
=
"Clusters"
)
+
guides
(
color
=
guide_legend
(
override.aes
=
list
(
size
=
2
))),
plot_dimred
(
model_paga_t
,
size_cells
=
0.5
,
"pseudotime"
,
pseudotime
=
calculate_pseudotime
(
model_paga_t
))
+
ggtitle
(
"Pseudotime"
)
)
scRNAseq/Fig
5
_plots.R
→
scRNAseq/Fig
4
_plots.R
View file @
7dcd8057
...
...
@@ -9,7 +9,7 @@ suppressPackageStartupMessages(library(clusterProfiler))
## load Seurat data
sample
<-
readRDS
(
"Scarfo_HEC2023/scRNAseq/WNTd_HE.rds"
)
# Fig
5
A ------------------------------------------------------------------
# Fig
4
A ------------------------------------------------------------------
DimPlot
(
object
=
sample
,
reduction
=
"umap"
,
...
...
@@ -72,7 +72,7 @@ DimPlot(object = runx1,
label.size
=
8
)
# Fig
5
B ----------------------------------------------------------------
# Fig
4
B ----------------------------------------------------------------
## Monocle3
Idents
(
runx1
)
<-
"RNA_snn_res.0.6"
...
...
@@ -114,7 +114,7 @@ plot_cells(cds,
cell_size
=
1
)
# Fig
5
C -------------------------------------------------------------------
# Fig
4
C -------------------------------------------------------------------
## differential markers
degs_clu11_vs_clu0_1_2
<-
FindMarkers
(
object
=
runx1
,
ident.1
=
11
,
ident.2
=
c
(
0
,
1
,
2
),
only.pos
=
FALSE
,
min.pct
=
0
,
test.use
=
"wilcox"
,
logfc.threshold
=
0
,
min.cells.group
=
0
)
...
...
@@ -171,7 +171,7 @@ for (i in comp) {
assign
(
paste0
(
"p_"
,
i
),
p
)
}
# Fig
5
D -------------------------------------------------------------------
# Fig
4
D -------------------------------------------------------------------
runx1
@
meta.data
[[
"Phase"
]]
<-
recode_factor
(
runx1
@
meta.data
[[
"Phase"
]],
"G1"
=
"G1"
,
...
...
@@ -243,7 +243,7 @@ for (i in cc.clusters) {
}
p_final
<-
cc_umap
/
(
`p_clu_0,1,2`
|
p_clu_11
|
`p_clu_16,17`
)
# Fig
5
E -------------------------------------------------------------------
# Fig
4
E -------------------------------------------------------------------
cds
<-
order_cells
(
cds
,
root_cells
=
start
)
cds
<-
estimate_size_factors
(
cds
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment