【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.pswp.cn/bicheng/75946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75946.shtml
英文地址,請注明出處:http://en.pswp.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;模塊需要提前編譯打包處理…