当前位置: 首页 > news >正文

绘制Circos基因圈图


写在前面

昨天在绘制Circos圈图,已经隔了2年左右没有做这类的图了。这时间过得真是快,但是文章和成果依旧是没有很明显的成效。只能安慰自己,后面的时间继续加油吧!关于Cirocs图的制作,我从刚开始到现在都是是使用TBtools进行制作的,说实话,对于不想写代码的我(或是你)来说,生信可视化工具真的很方便。目前,生信可视化的工具很多,自己也加着2-3个类似的群,但最后一直使用到现在,以至于后面一直会使用的,TBtools是其中一个。我们在前面,也发表全程使用TBtools做分析教程,共线性分析 | Advance Circos图绘制、基于TBtools做基因家族分析。从使用者的角度来说,TBtools真心是一个不错的软件,基于开发者和用户的反馈和需求开发很多小软件。

关于今天的教程

我一直在说,我是一直在分享自己的学习笔记,所以内容等方面都是基于自己目前在学习内容,或是遇到的问题及解决方法。一方面是在记录自己的学习笔记,一方面是为了后续自己用到便于查找(我基本使用到需要的),最后是为了分享给需要的同学。但是,自己的能力有限,很多高深的内容自己涉及不到,或是没能力涉及。因此,也欢迎各老师或同学来投稿或分享你的学习笔记

一个人的力量是有限的,但是一群人的力量是无法预测的!!

Cirocs教程分享

需要的文件

  1. 基因组长度文件
Chr1	56706830
Chr2	51972579
Chr3	58931556
Chr4	64763011
Chr5	44819618
Chr6	42866092
Chr7	56236587
Chr8	49719271
  1. 所需绘制文件的位置信息文件
Chr2	35739245	35739448	1	.
Chr2	36071610	36072481	1	-
Chr2	36199462	36199872	1	.
Chr2	36274372	36276705	1	-
Chr2	36443766	36444019	1	.
Chr2	39128193	39128397	1	.
Chr2	39485207	39485428	1	.
Chr2	41001395	41003552	1	+

基因组长度文件

  1. 打开TBtools中Fasta stats
  2. 拖入基因文件和输出信息

所绘制的基因的文件

  1. 方法1:直接提取,可以使用教程共线性分析 | Advance Circos图绘制的方法。

获得基因位置信息文件


删除不必要的信息

提取目标基因的信息



拖拽文件文件时,Selected Coluumn选择我们要match的列


  1. 自己制作,所需的信息也就是的那么个,我们可以通过自己的注释文件进行提取就可以,使用awk命令就医做简单的提取,我们这里就不在赘述。

我这里做个简单的记录,自己是补充前面做的分析的图,因此,自己手中并没有特定的绘图问题,只有一个总文件和所需绘图的基因ID,因此,只能用基因ID进行提取信息。

## 导入总文件
df <- read.table("all_lncRNA.bed.txt",header = T)
head(df)
##----
ID	Chromosome	Start	End	type	Strand
MSTRG.247.1	Chr1	152110	154340	1	+
MSTRG.364.2	Chr1	1230854	1231704	1	+
MSTRG.410.1	Chr1	1536449	1536977	1	+
MSTRG.545.1	Chr1	2665821	2668057	1	+
MSTRG.545.2	Chr1	2665899	2667587	1	+
MSTRG.545.3	Chr1	2665902	2668057	1	+

(1)入所需基因ID文件,由于各列的长度不同,因此不能正常使用read.table或read.csv函数导入

df <- readLines("typeID.txt")
# 将每行数据按照空格或制表符进行拆分,得到一个列表
df.list <- strsplit(df,"\\s+")# 计算最大列数,用于确定数据框的列数
max_cols <- max(sapply(df.list, length))
# 将数据补齐到相同的列数,用NA填充缺失值
df_matrix <- t(sapply(df.list, function(x) {c(x, rep(NA, max_cols - length(x)))}))
# 将数据补齐到相同的列数,用NA填充缺失值
data <- as.data.frame(df_matrix)
head(data)
colnames(data) <- c("C", "D", "H", "Ma", "O", "P", "S")
data <- data[-1,]  ## 删除首行
head(data)

正常运行,应该有更简单的导入方法,欢迎交流。

(2)使用merge()函数,或是其他函数进行提取,其实merge在这里有点不太合适。

c <- as.data.frame(data$C) 
c02 <- cold[!apply(is.na(c), 1, any),]c03 <- as.data.frame(c02)
colnames(c03) <- c("ID")
head(c03)df02 <- merge(df, c03, by = "ID")
head(df02)
write.table(df02, "C.bed.txt", sep = '\t',quote = FALSE, row.names = F, col.name = F)

此步仅记录自己本次做的过程,可忽略,亦可交流。

绘图

打开Advanced Circos

输入所需文件

这里,我就只需要输入基因长度文件信息即可

获得基因圈图

添加其他文件信息,点击Show Control Dialog

左边是调整基因圈图的参数,右边是添加其他信息和调整参数

提供了很多图形的选项,根据自己的需求进行调整即可,以及颜色的调整。


最后就是细节调整,这些主要依赖于个人的审美和搭配。



---
**往期文章:****1. 最全WGCNA教程(替换数据即可出全部结果与图形)**- [WGCNA分析 | 全流程分析代码 | 代码一](https://mp.weixin.qq.com/s/M0LAlE-61f2ZfpMiWN-iQg)- [WGCNA分析 | 全流程分析代码 | 代码二](https://mp.weixin.qq.com/s/Ln9TP74nzWhtvt7obaMp1A)- [WGCNA分析 | 全流程代码分享 | 代码三](https://mp.weixin.qq.com/s/rU76rLG4AayuiHbDhgOGBg)----**2. 精美图形绘制教程**- [精美图形绘制教程](https://mp.weixin.qq.com/mp/appmsgalbum?__biz=MzAwODY5NDU0MA==&action=getalbum&album_id=2614156000866385923&scene=173&from_msgid=2455848496&from_itemidx=1&count=3&nolastread=1#wechat_redirect)**3. 转录组分析教程**

小杜的生信筆記,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!!

相关文章:

绘制Circos基因圈图

写在前面 昨天在绘制Circos圈图&#xff0c;已经隔了2年左右没有做这类的图了。这时间过得真是快&#xff0c;但是文章和成果依旧是没有很明显的成效。只能安慰自己&#xff0c;后面的时间继续加油吧&#xff01;关于Cirocs图的制作&#xff0c;我从刚开始到现在都是是使用TBt…...

openGauss学习笔记-26 openGauss 高级数据管理-约束

文章目录 openGauss学习笔记-26 openGauss 高级数据管理-约束26.1 NOT NULL约束26.2 UNIQUE约束26.3 PRIMARY KEY26.4 FOREIGN KEY26.5 CHECK约束 openGauss学习笔记-26 openGauss 高级数据管理-约束 约束子句用于声明约束&#xff0c;新行或者更新的行必须满足这些约束才能成…...

学习React(四)

学习React&#xff08;四&#xff09; componentWillMount&#xff08;被放弃使用&#xff09;rendercomponentDidMountshouldComponentUpdate(nextProps,nextState)componentWillUpdate&#xff08;被放弃使用&#xff09;componentDidUpdatecomponentWillReceiveProps&#x…...

如何将单体项目拆分成微服务

1、如何将单体项目拆分成微服务 如何拆分微服务&#xff1f;其实对不同的业务项目场景&#xff0c;对应有不同的拆分方案。需要项目人员详细的分析项目需求、团队现状、业务边界、业务逻辑等方方面面&#xff0c;拆分的粒度既不能过细&#xff0c;也不能过粗&#xff0c;需要把…...

【Vue框架】Vuex状态管理

前言 在上一篇 【Vue框架】Vue路由配置 结尾时说到store.js&#xff0c;在代码里new Vuex.Store()传入了getters对象&#xff1b;本篇专门针对getters的内容进行整理。 1、getters.js 1.1 代码 // 用于存储获取状态的方法 const getters {// 这里的state参数&#xff0c;是…...

Linked List

文章目录 链表定义专业术语代码链表分类常见算法链表创建和常用算法 链表总结 链表 补充知识 typedef 给类型换名字&#xff0c;比如 typedef struct Student {int sid;char name[100];char sex; }ST;//ST就代表了struct Student //即这上方一大坨都可以用ST表示 //原先结构体…...

javascript数组基础

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/front-end-tutorial 】或者公众号【AIShareLab】回复 javascript 也可获取。 文章目录 数组的基本使用定义数组和数组单元访问数组和数组索引数据单元值类型数组长度属性操作数组 数组&#xff1a;(…...

【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Golang之路---01 Golang VS Code创建项目

Golang VS Code创建项目 代码组织 Golang使用包和模块来组织代码&#xff0c;包对应到文件系统就是文件夹&#xff0c;模块就是xxx.go的go源文件。一个包中会有多个模块&#xff0c;或者多个子包。 早期使用的是gopath来管理项目&#xff0c;不方便&#xff0c;比较麻烦&…...

vue 表单form-item模板(编辑,查看,新建)

目录 formatFormData 后端数据格式​编辑 JSON解析和生成 加载&#xff08;请求前&#xff0c;await后&#xff09; formComp formatFormData 后端数据格式 为空的&#xff0c;可以直接不提交/提交null/undefined JSON解析和生成 var str {"name": "…...

【IC设计】DC工具的target、link、synthetic、symbol库

Specifying Libraries You use dc_shell variables to specify the libraries used by Design Compiler. Table 4-1 lists the variables for each library type as well as the typical file extension for the library. 你使用dc_shell变量去指定dc要使用的库。下表列出了每种…...

redisson常用APi-Example

中文文档目录 redisson中文文档目录 分布式对象 package com.example.redissondemo.test;import com.example.redissondemo.RedissonDemoApplication; import com.example.redissondemo.test.domain.Order; import lombok.Data; import lombok.extern.slf4j.Slf4j; import o…...

小程序学习(四):WXML模板语法

WXML模板语法-数据绑定 1.数据绑定的基本原则 ①在data中定义数据 ②在WXML中使用数据 2.动态绑定属性 WXML模板语法-事件绑定 3.什么是事件 4.小程序中常用的事件 5.事件对象的属性列表 6.target和currentTarget的区别 7.bindtap的语法格式 8.在事件处理函数中为data中的数据…...

IDEA好用的插件总结

IdeaVim 这个看个人喜好&#xff0c;我比较喜欢用vim&#xff0c;并且支持自定义修改按键绑定alibaba java code guidelines alibaba的java编程规范plantUML 绘制UML&#xff0c;支持语言显示plantUML integration 能够直接将代码转化为UML图&#xff0c;非常方便rainbow brack…...

如何在Linux系统中安装ActiveMQ

1、环境 ActiveMQ是一个纯Java程序&#xff0c;这里安装5.18.2版ActiveMQ&#xff0c;该版MQ运行在JDK 11环境内&#xff0c;为此需要先搭建JDK 11环境&#xff0c;这里安装JDK 15。 1.1、卸载 卸载开源JDK软件包&#xff0c;如下所示&#xff1a; [rootlocalhost ~]# rpm -…...

【Latex】常用公式编辑与符号:公式换行,标号居中、常用符号等

【Latex】常用公式编辑与符号 文章目录 【Latex】常用公式编辑与符号1. 公式换行&#xff0c;且标号居中2. 常用符号3. 常用的希腊字母 1. 公式换行&#xff0c;且标号居中 \begin{equation}\label{eq14} \begin{aligned}a & b/c, \\d & e/f \end{aligned} \end{equ…...

【ArcGIS Pro二次开发】(55):给多个要素或表批量添加字段

在工作中可能会遇到这样的场景&#xff1a;有多个GDB要素、表格&#xff0c;或者是SHP文件&#xff0c;需要给这个要素或表添加相同的多个字段。 在这种情况下&#xff0c;手动添加就变得很繁琐&#xff0c;于是就做了这个工具。 需求具体如下图&#xff1a; 左图是待处理数据…...

CentOS7.3 安装 docker

亲测、截图 阿里云服务器 文章目录 更新源2345 启动开机自启 更新源 sudo yum update -y2 sudo yum install -y yum-utils device-mapper-persistent-data lvm23 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo4 sudo yum …...

代码随想录算法训练营第五十二天 | 300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

文章目录 一、300.最长递增子序列二、674.最长连续递增序列三、718.最长重复子数组 一、300.最长递增子序列 题目链接 代码如下&#xff1a; class Solution { public:int lengthOfLIS(vector<int>& nums) {if (nums.size() < 1) return nums.size();vector<…...

1、Tomcat

java介绍 Java语言和平台由以下几个主要部分组成&#xff1a; 1、Java编程语言(Java Language)&#xff1a;这是Java的核心部分&#xff0c;包括Java语法、关键字、数据类型、运算符、控制结构等。程序员使用Java语言来编写应用程序的源代码。 2、Java开发工具包(Java Developm…...

FTDI Friend:从USB转串口到AVR编程的嵌入式开发利器

1. 项目概述&#xff1a;为什么你需要一个FTDI Friend&#xff1f;在嵌入式开发和单片机玩家里&#xff0c;串口通信就像空气和水一样基础且不可或缺。无论是给Arduino上传代码&#xff0c;还是让树莓派和传感器模块“说上话”&#xff0c;亦或是调试一个自己焊的STM32最小系统…...

基于RK3568核心板的智能家居控制器:从硬件选型到软件架构实战

1. 项目概述&#xff1a;当智能家居控制器遇上国产高性能核心板最近在做一个智能家居中控的案子&#xff0c;客户对性能、成本和本地化能力要求都比较高。选型阶段&#xff0c;我们团队把市面上主流的几款ARM核心板都摸了一遍&#xff0c;从传统的树莓派CM4到全志、瑞芯微的方案…...

从零到一:基于Ultralytics框架与自定义数据集实战RT-DETR模型训练

1. RT-DETR与Ultralytics框架初探 第一次接触RT-DETR时&#xff0c;我被它的"实时检测Transformer"组合惊艳到了。这个由百度开发的检测器&#xff0c;完美解决了传统Transformer模型在实时场景下的性能瓶颈。不同于YOLO系列的锚框机制&#xff0c;RT-DETR采用端到端…...

基于RP2040 PIO与CircuitPython的IBM Model F键盘USB转接方案

1. 项目概述&#xff1a;让经典IBM键盘在现代电脑上重生如果你和我一样&#xff0c;对老式机械键盘那种扎实、清脆的“咔嗒”声和独特手感念念不忘&#xff0c;同时又对它们无法直接插在现代电脑上感到惋惜&#xff0c;那么这个项目就是为你准备的。我最近从朋友的一堆旧物里淘…...

告别SD卡!用Ubuntu主机给Jetson Orin Nano刷机,保姆级避坑指南(SDK Manager篇)

告别SD卡&#xff01;用Ubuntu主机给Jetson Orin Nano刷机&#xff0c;保姆级避坑指南&#xff08;SDK Manager篇&#xff09; 当第一次拿到Jetson Orin Nano Developer Kit时&#xff0c;很多开发者会本能地选择SD卡刷机方案——毕竟这是最"傻瓜式"的操作。但经历过…...

BLDC电机与锂离子电池集成设计关键技术解析

1. BLDC电机与锂离子电池集成设计概述在电动工具、小型电动车等便携式设备领域&#xff0c;无刷直流电机(BLDC)与锂离子电池的组合已成为行业标配。这种搭配带来了显著的性能提升&#xff1a;BLDC电机相比传统有刷电机效率提升150%以上&#xff0c;而锂离子电池的能量密度是镍镉…...

别再只会写脚本了!用Matlab APP Designer给你的数据分析做个可视化界面(附完整代码)

从脚本到交互式应用&#xff1a;用MATLAB APP Designer打造专业数据分析工具 在数据科学和工程领域&#xff0c;MATLAB一直是不可或缺的计算工具。然而&#xff0c;许多用户长期停留在命令行脚本的层面&#xff0c;未能充分发挥MATLAB的完整潜力。本文将带您突破这一局限&#…...

从「PPT丑到被挂」到「评委全场抬头」!只花25元的答辩PPT救命教程

论文写到头秃&#xff0c;结果答辩PPT还要从零学起&#xff01;&#x1f62d; 网上模板要么花哨得像婚礼请柬&#xff0c;要么把论文段落直接往上堆&#xff0c;交去预审&#xff0c;导师批注四个字&#xff1a;“毫无逻辑。”别慌&#xff01;这篇亲妈级教程&#xff0c;把我答…...

探索OpenBoardView:硬件工程师的PCB分析利器

探索OpenBoardView&#xff1a;硬件工程师的PCB分析利器 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 在现代电子硬件开发与维修领域&#xff0c;面对复杂的电路板设计文件&#xff0c;工程师们常常需要…...

AI提示词工程化:Git仓库管理、版本控制与团队协作实战

1. 项目概述&#xff1a;一个提示词仓库的诞生与价值最近在折腾AI应用开发时&#xff0c;我遇到了一个几乎所有开发者都会头疼的问题&#xff1a;如何高效地管理和复用那些精心调校过的提示词&#xff08;Prompt&#xff09;。无论是用于代码生成的、内容创作的&#xff0c;还是…...