1. load libraries

2. Load Seurat Object


#Load Seurat Object merged from cell lines and a control(PBMC) after filtration
load("../../../To_Transfer_between_computers/23-Harmony_Integration/0-robj/5-Harmony_Integrated_All_samples_Merged_CD4Tcells_final_Resolution_Selected_0.8_ADT_Normalized_cleaned_mt.robj")




infercnv_object <- readRDS("inferCNV_Analysis/Silvia_Script_on_cellLines/SilviaScript_L1_cluster_by_group/run.final.infercnv_obj")


infercnv_object_all <- readRDS("inferCNV_Analysis/L1-L7_PBMC_subcluster/run.final.infercnv_obj")

3.Transferring the scores to a FeaturePlot


# sample <- All_samples_Merged
# 
# rm(All_samples_Merged)
# gc()

#----------------------------------------------------
# 1. Load chromosome locations
#----------------------------------------------------
utils::data("human_chr_locations", package = "SCpubr")

#----------------------------------------------------
# 2. Align Seurat and inferCNV objects on common cells
#----------------------------------------------------

# Step 1: Get intersecting cell barcodes
common_cells <- intersect(
  colnames(sample),
  colnames(infercnv_object_all@expr.data)
)

# Step 2: Subset Seurat object
seurat_subset <- subset(sample, cells = common_cells)

# Step 3: Subset inferCNV object
infercnv_object_all@expr.data <- infercnv_object_all@expr.data[, common_cells, drop = FALSE]

#----------------------------------------------------
# 3. Run the CNV plot with SCpubr
#----------------------------------------------------
out <- SCpubr::do_CopyNumberVariantPlot(
  sample = seurat_subset,
  infercnv_object = infercnv_object_all,
  using_metacells = FALSE,
  chromosome_locations = human_chr_locations,

)

#----------------------------------------------------
# 4. Combine and display UMAP panels
#----------------------------------------------------
library(patchwork)  # required for "|" operator
p
p2 <- out$`1_umap` | out$`1p_umap` | out$`1q_umap`
p2


out

4.Visualization

out
LS0tCnRpdGxlOiAiaW5mZXJDTlYgYW5hbHlzaXMiCmF1dGhvcjogIk5hc2lyIE1haG1vb2QgQWJiYXNpIgpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgICB0b2NfY29sbGFwc2VkOiB5ZXMKICB3b3JkX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB5ZXMKICAgIGRmX3ByaW50OiBwYWdlZAogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKCiMgMS4gbG9hZCBsaWJyYXJpZXMKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkoU2V1cmF0KQpsaWJyYXJ5KFNldXJhdFdyYXBwZXJzKQpsaWJyYXJ5KG1vbm9jbGUzKQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkoaW5mZXJjbnYpCmxpYnJhcnkoU0NwdWJyKQoKYGBgCgoKIyAyLiBMb2FkIFNldXJhdCBPYmplY3QgCmBgYHtyfQoKI0xvYWQgU2V1cmF0IE9iamVjdCBtZXJnZWQgZnJvbSBjZWxsIGxpbmVzIGFuZCBhIGNvbnRyb2woUEJNQykgYWZ0ZXIgZmlsdHJhdGlvbgpsb2FkKCIuLi8uLi8uLi9Ub19UcmFuc2Zlcl9iZXR3ZWVuX2NvbXB1dGVycy8yMy1IYXJtb255X0ludGVncmF0aW9uLzAtcm9iai81LUhhcm1vbnlfSW50ZWdyYXRlZF9BbGxfc2FtcGxlc19NZXJnZWRfQ0Q0VGNlbGxzX2ZpbmFsX1Jlc29sdXRpb25fU2VsZWN0ZWRfMC44X0FEVF9Ob3JtYWxpemVkX2NsZWFuZWRfbXQucm9iaiIpCgoKCgppbmZlcmNudl9vYmplY3QgPC0gcmVhZFJEUygiaW5mZXJDTlZfQW5hbHlzaXMvU2lsdmlhX1NjcmlwdF9vbl9jZWxsTGluZXMvU2lsdmlhU2NyaXB0X0wxX2NsdXN0ZXJfYnlfZ3JvdXAvcnVuLmZpbmFsLmluZmVyY252X29iaiIpCgoKaW5mZXJjbnZfb2JqZWN0X2FsbCA8LSByZWFkUkRTKCJpbmZlckNOVl9BbmFseXNpcy9MMS1MN19QQk1DX3N1YmNsdXN0ZXIvcnVuLmZpbmFsLmluZmVyY252X29iaiIpCgoKCmBgYAoKCiMgMy5UcmFuc2ZlcnJpbmcgdGhlIHNjb3JlcyB0byBhIEZlYXR1cmVQbG90CmBgYHtyLCBmaWcuaGVpZ2h0PTEyLCBmaWcud2lkdGg9MTR9CgojIHNhbXBsZSA8LSBBbGxfc2FtcGxlc19NZXJnZWQKIyAKIyBybShBbGxfc2FtcGxlc19NZXJnZWQpCiMgZ2MoKQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAxLiBMb2FkIGNocm9tb3NvbWUgbG9jYXRpb25zCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnV0aWxzOjpkYXRhKCJodW1hbl9jaHJfbG9jYXRpb25zIiwgcGFja2FnZSA9ICJTQ3B1YnIiKQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAyLiBBbGlnbiBTZXVyYXQgYW5kIGluZmVyQ05WIG9iamVjdHMgb24gY29tbW9uIGNlbGxzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgojIFN0ZXAgMTogR2V0IGludGVyc2VjdGluZyBjZWxsIGJhcmNvZGVzCmNvbW1vbl9jZWxscyA8LSBpbnRlcnNlY3QoCiAgY29sbmFtZXMoc2FtcGxlKSwKICBjb2xuYW1lcyhpbmZlcmNudl9vYmplY3RfYWxsQGV4cHIuZGF0YSkKKQoKIyBTdGVwIDI6IFN1YnNldCBTZXVyYXQgb2JqZWN0CnNldXJhdF9zdWJzZXQgPC0gc3Vic2V0KHNhbXBsZSwgY2VsbHMgPSBjb21tb25fY2VsbHMpCgojIFN0ZXAgMzogU3Vic2V0IGluZmVyQ05WIG9iamVjdAppbmZlcmNudl9vYmplY3RfYWxsQGV4cHIuZGF0YSA8LSBpbmZlcmNudl9vYmplY3RfYWxsQGV4cHIuZGF0YVssIGNvbW1vbl9jZWxscywgZHJvcCA9IEZBTFNFXQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyAzLiBSdW4gdGhlIENOViBwbG90IHdpdGggU0NwdWJyCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm91dCA8LSBTQ3B1YnI6OmRvX0NvcHlOdW1iZXJWYXJpYW50UGxvdCgKICBzYW1wbGUgPSBzZXVyYXRfc3Vic2V0LAogIGluZmVyY252X29iamVjdCA9IGluZmVyY252X29iamVjdF9hbGwsCiAgdXNpbmdfbWV0YWNlbGxzID0gRkFMU0UsCiAgY2hyb21vc29tZV9sb2NhdGlvbnMgPSBodW1hbl9jaHJfbG9jYXRpb25zLAoKKQoKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyA0LiBDb21iaW5lIGFuZCBkaXNwbGF5IFVNQVAgcGFuZWxzCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmxpYnJhcnkocGF0Y2h3b3JrKSAgIyByZXF1aXJlZCBmb3IgInwiIG9wZXJhdG9yCnAKcDIgPC0gb3V0JGAxX3VtYXBgIHwgb3V0JGAxcF91bWFwYCB8IG91dCRgMXFfdW1hcGAKcDIKCgpvdXQKYGBgCgojIDQuVmlzdWFsaXphdGlvbgpgYGB7ciwgZmlnLmhlaWdodD02LCBmaWcud2lkdGg9MTB9Cm91dAoKYGBgCgo=