【R语言绘图】圈图绘制代码

绘制代码

rm(list = ls())# 加载必要包
library(data.table)
library(circlize)
library(ComplexHeatmap)
library(rtracklayer)
library(GenomicRanges)
library(BSgenome)
library(GenomicFeatures)
library(dplyr)### 数据准备阶段 ###
# 1. 读取染色体长度信息
df <- read.table('all_noContig.sizes', col.names = c('chr_id','chr_len'))# 2. 读取基因组序列
genome <- readDNAStringSet("TG1.LG.fasta")# 3. 计算GC含量(窗口:10kb,步长5kb)
window_size <- 10000
step <- 5000gc_content <- lapply(names(genome), function(chr) {seq <- genome[[chr]]starts <- seq(1, length(seq) - window_size, by = step)ends <- starts + window_sizegc <- sapply(1:length(starts), function(i) {subseq <- subseq(seq, starts[i], ends[i])sum(alphabetFrequency(subseq)[c("C","G")]) / window_size})data.frame(chrom = chr, start = starts, end = ends, gc = gc)
}) %>% bind_rows() %>%filter(!grepl("Contig", chrom)) %>%setNames(c('chr_id','bin_start','bin_end','gc'))# 4. 读取基因密度数据
gc <- read.table('gene_counts.txt', col.names = c('chr_id','bin_start','bin_end','gene_count')) %>%filter(!grepl("Contig", chr_id))# 5. 处理CDS注释数据
txdb <- makeTxDbFromGFF("TG1.gene.new.gff")
cds_ranges <- cds(txdb) %>% as.data.frame() %>%dplyr::select(seqnames, start, end) %>%setNames(c('chr_id','bin_start','bin_end'))
pdf('circle.pdf')
### 绘图参数初始化 ###
circos.clear()
col_text <- 'grey20'# 关键参数设置:统一轨道高度与边距
circos.par(gap.degree = 5,          # 染色体间空隙start.degree = 86,       # 起始角度track.height = 0.15,     # 统一轨道高度比例track.margin = c(0.01, 0.01), # 垂直边距压缩cell.padding = c(0,0,0,0),clock.wise = TRUE
)# 初始化染色体布局
circos.initialize(factors = df$chr_id,xlim = cbind(rep(0, nrow(df)), df$chr_len)
)### 绘图轨道绘制 ###
# 轨道1:染色体名称
circos.track(ylim = c(0, 1), panel.fun = function(x, y) {chr = CELL_META$sector.indexcircos.text(CELL_META$xcenter, CELL_META$ycenter, chr, facing = "bending.inside", cex = 0.8)
}, bg.col = "#00ADFF", track.height = 0.08, bg.border = NA)# 轨道2:刻度标签
brk <- seq(0, 100e6, by = 10e6)
circos.track(track.index = get.current.track.index(), panel.fun = function(x, y) {circos.axis(h = "top", major.at = brk, labels = paste0(brk/1e6, "M"),labels.cex = 0.5)}, bg.border = NA)
# 轨道4:GC含量
circos.genomicTrack(gc_content, panel.fun = function(region, value, ...) {circos.genomicLines(region, value, col = "blue", lwd = 0.5)circos.lines(CELL_META$cell.xlim, rep(mean(value[[1]]), 2), col = "red", lty = 2)
}, track.height = 0.15, bg.border = NA)# 轨道5:CDS密度
circos.genomicDensity(cds_ranges, col = c("orange"), bg.border = NA,track.height = 0.15, window.size = 1e6)
# 轨道3:基因密度
color_genes <- colorRamp2(c(0, 6, 13), c("darkgreen", "white", "red"))
circos.genomicTrack(gc, panel.fun = function(region, value, ...) {circos.genomicRect(region, value, col = color_genes(value[[1]]), border = NA)
}, track.height = 0.15, bg.border = NA)dev.off()
# ### 图例添加 ###
lgd_list <- list(Legend(col_fun = color_genes, title = "Gene Density"),Legend(labels = c("GC Content", "Genome Average"), type = "lines", legend_gp = gpar(col = c("blue", "red"), lty = c(1,2))),Legend(col = "orange", title = "CDS Density", type = "points")
)draw(lgd_list, x = unit(0.85, "npc"), just = "left")### 图像输出 ###
circos.clear()

结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vim 编辑器 使用教程

Vim是一款强大的文本&#xff08;代码&#xff09;编辑器&#xff0c;它是由Bram Moolenaar于1991年开发完成。它的前身是Bill Joy开发的vi。名字的意义是Vi IMproved。 打开vim&#xff0c;直接在命令行输入vim即可&#xff0c;或者vim <filename>. Vim分为四种模式&a…

C++20新增内容

C20 是 C 语言的一次重大更新&#xff0c;它引入了许多新特性&#xff0c;使代码更现代化、简洁且高效。以下是 C20 的主要新增内容&#xff1a; 1. 概念&#xff08;Concepts&#xff09; 概念用于约束模板参数&#xff0c;使模板编程更加直观和安全。 #include <concept…

C++中常用的十大排序方法之4——希尔排序

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【&#x1f60a;///计算机爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C中常用的排序方法之4——希尔排序的相…

详细描述以太坊的gas、gaslimit、gasPrice

目录 一、Gas 是什么? ✅ 简要定义: 🧠 举例理解: 二、Gas Limit 是什么? ✅ 简要定义: 分两种: 举例说明: 三、Gas Price 是什么? ✅ 简要定义: 为什么它重要? 示例: 四、 EIP-1559 后的新机制(伦敦升级) 三个要素: 五、额外技巧(开发实用) 本文…

全国大学生数学建模竞赛赛题深度分析报告(2010-2024)

全国大学生数学建模竞赛赛题深度分析报告&#xff08;2010-2024&#xff09; 全国大学生数学建模竞赛(CUMCM)是中国最具影响力的大学生科技竞赛之一&#xff0c;本报告将对2010-2024年间的赛题进行全面统计分析&#xff0c;包括题目类型、领域分布、模型方法等多个维度&#x…

从奖励到最优决策:动作价值函数与价值学习

从奖励到最优决策&#xff1a;动作价值函数与价值学习 价值学习一、动作价值函数对 U t U_t Ut​求期望得到动作价值函数动作价值函数的意义最优动作价值函数(Optimal Action-Value Function)如何理解 Q ∗ Q^* Q∗函数 二、价值学习的基本思想Deep Q-Network(DQN)DQN玩游戏的具…

智能手表该存什么音频和文本?场景化存储指南

文章目录 为什么需要“场景化存储”&#xff1f;智能手表的定位手机替代不了的场景碎片化的场景存储 音频篇&#xff1a;智能手表该存什么音乐和音频&#xff1f;运动场景通勤场景健康场景 文本篇&#xff1a;哪些文字信息值得放进手表&#xff1f;&#xff08;部分情况可使用图…

液态神经网络技术指南

一、引言 1.从传统神经网络到液态神经网络 神经网络作为深度学习的核心工具&#xff0c;在图像识别、自然语言处理、推荐系统等领域取得了巨大成功。尤其是卷积神经网络&#xff08;CNN&#xff09;、循环神经网络&#xff08;RNN&#xff09;、长短期记忆网络&#xff08;LS…

hive通过元数据库删除分区操作步骤

删除分区失败&#xff1a; alter table proj_60_finance.dwd_fm_ma_kpi_di_mm drop partition(year2025,month0-3,typeADJ); 1、查询分区的DB_ID、TBL_ID – 获取数据库ID-26110 SELECT DB_ID FROM DBS WHERE NAME ‘proj_60_finance’; – 获取表ID-307194 SELECT TBL_ID FR…

1990-2019年各地级市GDP数据

1990-2019年各地级市GDP数据 1、时间&#xff1a;1990-2019年 2、来源&#xff1a;城市年鉴 3、指标&#xff1a;行政区划代码、年份、省份、城市、经度、纬度、地区生产总值(万元) 4、范围&#xff1a;250地级市 5、指标解释&#xff1a;地区生产总值&#xff08;Gross R…

沧州铁狮子

又名“镇海吼”&#xff0c;是中国现存年代最久、形体最大的铸铁狮子&#xff0c;具有深厚的历史文化底蕴和独特的艺术价值。以下是关于沧州铁狮子的详细介绍&#xff1a; 历史背景 • 铸造年代&#xff1a;沧州铁狮子铸造于后周广顺三年&#xff08;953年&#xff09;&#…

《Java八股文の文艺复兴》第十一篇:量子永生架构——对象池的混沌边缘(终极试炼·完全体)

Tags: - Java高并发 - 量子架构 - 混沌工程 - 赛博修真 - 三体防御 目录&#xff1a; 卷首语&#xff1a;蝴蝶振翅引发的量子海啸 第一章&#xff1a;混沌初开——对象池的量子涅槃&#xff08;深度扩展&#xff09; 第二章&#xff1a;混沌计算——对象复活的降维打击&…

Java面试34-Kafka的零拷贝原理

在实际应用中&#xff0c;如果我们需要把磁盘中的某个文件内容发送到远程服务器上&#xff0c;那么它必须要经过几个拷贝的过程&#xff1a; 从磁盘中读取目标文件内容拷贝到内核缓冲区CPU控制器再把内核缓冲区的数据复制到用户空间的缓冲区在应用程序中&#xff0c;调用write…

TF-IDF忽略词序问题思考

自从开始做自然语言处理的业务&#xff0c;TF-IDF就是使用很频繁的文本特征技术&#xff0c;他的优点很多&#xff0c;比如&#xff1a;容易理解&#xff0c;不需要训练&#xff0c;提取效果好&#xff0c;可以给予大规模数据使用&#xff0c;总之用的很顺手&#xff0c;但是人…

SQL122 删除索引

alter table examination_info drop index uniq_idx_exam_id; alter table examination_info drop index full_idx_tag; 描述 请删除examination_info表上的唯一索引uniq_idx_exam_id和全文索引full_idx_tag。 后台会通过 SHOW INDEX FROM examination_info 来对比输出结果。…

Langchat平台知识库测试

平台介绍&#xff1a; LangChat是Java生态下企业级AIGC项目解决方案&#xff0c;集成RBAC和AIGC大模型能力&#xff0c;帮助企业快速定制AI知识库、企业AI机器人。 支持的AI大模型&#xff1a;Gitee AI / 阿里通义 / 百度千帆 / DeepSeek / 抖音豆包 / 智谱清言 / 零一万物 /…

Vue3 Composition API 深度开发指南

Vue3 Composition API 深度开发指南 响应式系统核心解析 1.1 响应式原理解构 Vue3 基于 Proxy 实现响应式追踪&#xff0c;其核心流程为&#xff1a; const reactiveHandler {get(target, key, receiver) {track(target, key) // 依赖收集return Reflect.get(target, key, …

基于自回归模型的酒店评论生成

《DeepSeek大模型高性能核心技术与多模态融合开发&#xff08;人工智能技术丛书&#xff09;》(王晓华)【摘要 书评 试读】- 京东图书 我们使用新架构的模型完成情感分类&#xff0c;可以看到&#xff0c;使用注意力机制可以很好地对特征进行抽取从而完成二分类的情感分类任务…

关于转置卷积

&#x1f9e0; 具体讲解神经网络中的转置卷积&#xff08;Transposed Convolution&#xff09; &#x1f9ed; 1. 转置卷积的动机&#xff1a;为什么我们需要它&#xff1f; 标准卷积通常会降低特征图的空间尺寸&#xff08;比如从 64x64 → 32x32&#xff09;&#xff0c;这对…

JavaScript 模块化详解( CommonJS、AMD、CMD、ES6模块化)

一.CommonJS 1.概念 CommonJS 规范概述了同步声明依赖的模块定义。这个规范主要用于在服务器端实现模块化代码组 织&#xff0c;但也可用于定义在浏览器中使用的模块依赖。CommonJS 模块语法不能在浏览器中直接运行&#xff1b;在浏览器端&#xff0c;模块需要提前编译打包处理…