liftOver | 将hg19转为hg38

处理工具 liftOver
https://gwaslab.com/2021/05/09/liftover-%E5%9F%BA%E5%9B%A0%E7%BB%84%E5%9D%90%E6%A0%87%E5%8F%98%E6%8D%A2/

输入文件

(表达谱提取circRNA ID)
BED格式文件,BED格式文件只定义前三列:chr start end,无表头
注:start不等于end(UCSC 使用基于0的坐标系统,而 Ensembl 等使用基于1的坐标系统)

R处理
A <- expr
IDchange1_0 <- function(x){
  str_split(x,"[:,|]") %>% sapply(function(y){
    paste(y[1],gsub(y[2],as.numeric(y[2])-1,y[2]),sep = ":") %>% paste(y[3],sep = "|")
  })
}
rownames(A) <- IDchange1_0(rownames(A))

rawID <- str_split(rownames(A),"[:,|]")
rawID <- data.frame(matrix(unlist(rawID),ncol = 3,byrow = TRUE))
colnames(rawID) <- c("chr","start","end")
write.table(rawID,"GSE_hg19_0.bed",col.names = F,row.names = F,quote = F, sep = "\t")

坐标转换

LINUX处理
chmod +x liftOver
./liftOver GSE_hg19_0.bed hg19ToHg38.over.chain GSE_hg38_0.bed unmapped.txt

输出文件

R处理
ID <- fread("GSE_hg38_0.bed",data.table = F)
ID <- paste(ID$V1,ID$V2,sep = ":") %>% paste(ID$V3,sep = "|")
IDchange0_1 <- function(x){
  str_split(x,"[:,|]") %>% sapply(function(y){
    paste(y[1],gsub(y[2],as.numeric(y[2])+1,y[2]),sep = ":") %>% paste(y[3],sep = "|")
  })
}
ID <- IDchange0_1(ID)

unID <- fread("unMapped",data.table = F)
unID <- paste(unID$V1,unID$V2,sep = ":") %>% paste(unID$V3,sep = "|")

A1 <- A[!rownames(A) %in% unID,]
rownames(A1) <- ID
write.csv(A1,"GSE_circRNA_counts_hg38_0.csv")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正文 正文部分,我想尽可能的从原理出发,讲解WGCNA背后的大致逻辑。我尽可能的在这部分不介绍代码,以免喧宾夺主般...
    鹿无为阅读 8,628评论 4 22
  • 这篇文章确实不错,要做GPU计算的可以先补补课。我也是编写代码边查资料。 原文信息作者:cnblogs,0向往0标...
    昵称违法阅读 603评论 0 0
  • 夜已深,漆黑一片,景物不可见。但山中并不宁静,猛兽咆哮,震动山河,万木摇颤,乱叶簌簌坠落。 群山万壑间,洪荒猛兽横...
    SJSLHS888阅读 298评论 0 0
  • 作者:时光海湾 秋己逝 秋水伊人,细雨淋漓,落叶飘零,秋风凝霜,秋景依残,若影别离。用流畅拓展之墨笔,把秋天最美的...
    时光海湾一一原创诗歌集阅读 627评论 1 2
  • 今天看小视频学到的,不仅仅是四个字的词是成语,有三字成语,还有5字成语、6、7、8、9、10字成语呢。下面各举几个...
    Lilyzhou02阅读 466评论 0 0