基因家族分析01_基因家族环境配置和基因组数据的下载
❝基因家族分析流程系列推文的目标:做一个高质量、超耐看、很标准的基因家族分析教程!
引言
❝在我的印象中,基因家族从2015年一直火到了现在,整整十年! 在这十年之中, 多少刚入学的硕博们,基于基因家族,正式踏入了生物信息学的领域,完成科研方向的转型; 多少硕士博士依靠基因家族完成毕业论文,找到理想的教职; 多少高校青椒依靠基因家族完成学校考核; 多少高校老师依靠基因家族完成职称评定。
因此,我深刻的感觉到,基因家族可能还会一直火下去,一直还会有它的用武之处,我总结了一下,可能有以下的原因:
硕士、博士的毕业驱动。 精美的可视化图表,充实和完善的论文内容,都有助于小论文的发表和大论文的审查。 发表论文,该拿奖学金就去拿奖学金,该毕业就去毕业。 青椒的考核驱动。 一篇基因家族,半个月完成基本图表的绘制,剩余的补一些必需的实验,投稿1-2个月,基本上半年1-2篇论文,这个发Paper的速度,的确很可观了。 基于自己的结果,保三区争二区嘛! 湿实验的风向标。 目标基因潜在的生物学功能,除了找模式物种的同源基因,还可以找找家族成员的潜在功能嘛。 生信转行的技能驱动。 一个只会复制粘贴,不会写代码的基因家族er,如何自诩转型了生物信息呢? 必备技能 Linux
操作系统去操作文件编写 Python
脚本清洗数据R
语言进行数据可视化以一个基因家族的完整项目,开启生物信息学的大门。
基因家族的简单介绍
在植物生物学中,基因家族是指一组具有相似功能、结构域或进化关系的基因集合。它们通常由基因复制事件(例如整个基因组或染色体片段的重复)驱动,然后经过进化的选择和改变,最终形成多种不同的功能。
研究植物基因家族主要有以下意义:
理解演化过程:通过研究基因家族,我们可以了解植物的基因如何随着时间的推移而发生变异,以适应不断变化的环境条件。 揭示基因功能:植物基因家族成员可能会执行相似的生物学功能,对于未知功能的基因,如果我们知道它属于哪个基因家族,就可以根据已知的其他成员推测其可能的功能。 启示农业实践:基因家族的研究还可以指导农业实践,比如寻找抗病、抗虫、抗旱等性状的关键基因,帮助改良作物品种。 开辟新的研究领域:通过基因家族的研究,可能会发现全新的生物学机制和路径,为科学研究开辟新的视角和领域。
基因家族需要分析哪些内容
基因家族环境配置和基因组数据的下载 hmmsearch筛选基因家族 blast筛选基因家族 hmmsearch&blast结果鉴定及家族成员信息的获取 序列比对以及进化树的构建和可视化 进化树、结构域、motif可视化 物种内家族成员染色体定位、共线性和复制基因分析及可视化 物种间共线性分析及可视化 启动子分析及可视化 GO功能注释及可视化 蛋白质互作网络PPI 基因家族成员的转录组可视化 qRT-PCR及可视化
基因家族分析所需技能
Linux
基础,更快,更好的完成数据操作R
语言编程,数据处理,数据清洗和绘制精美的可视化结果Python
语言编程,数据处理、文本处理。
基因家族分析环境配置
❝首先要有一个
Linux
系统的服务器,如果服务器里面有R
或者Rstudio
就更好了。 如果服务器里面没有,可以在本地进行R
和Python
的数据处理过程。
那么本地安装R
和Python
请参考我之前写好的推文:
❝以下都在
Linux
服务器上运行
环境配置
❝我们假设有一个
Linux
服务器了,那么安装conda
# 安装conda,并且配置镜像
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
# 确认是否安装成功
conda --help
# 安装好conda后,需要设置镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --set show_channel_urls yes
❝我们假设已经有了
conda
环境,如果目前还没有conda
环境的话,基于我之前发表过的推文,下载Miniconda
。
# 首先我们要创建基因家族分析的小环境,因为我们做的是基因家族分析,所以我们起名字就叫 genefamily
conda create -n genefamily
# 激活小环境
conda activate genefamily
# 在小环境中安装基因家族分析所必须的软件
conda install -c bioconda python hmmer blast meme trimal muscle iqtree fasttree gffread clustalw seqkit jcvi sra-tools fastqc multiqc trim-galore hisat2 samtools subread
# -c bioconda 是指定了镜像,因为很多生物信息学相关的软件都在bioconda镜像里面
# 基因家族分析相关软件 hmmer blast meme trimal muscle iqtree fasttree gffread clustalw seqkit jcvi
# 转录组分析相关软件 sra-tools fastqc multiqc trim-galore hisat2 samtools subread
工作目录配置
❝保持一个良好的数据分析习惯, 以项目文件夹的形式,管理所有的输入数据,输出文件,
以下面为例,整个项目的名称就叫做
Genefamily_Analysis
,Genefamily_Analysis
是一个文件夹,其内部包含多个文件夹, 基本上每一个文件夹,都是一个分析内容,里面都有各自的分析结果。这是一个非常好的数据分析习惯。
# 跳转到家目录
cd ~
# 在家目录下,创建一个基因家族分析的目录 Genefamily_Analysis 并且跳入到 Genefamily_Analysis
mkdir Genefamily_Analysis && cd Genefamily_Analysis
# 在 Genefamily_Analysis 目录下,一次性创建多个
mkdir 1.database 2.hmmsearch 3.blast 4.identification 5.genefamily_info 6.tree 7.motif_genestructure 8.collinearity 9.mcscanx 10.promoter 11.ppi 12.rnaseq
基因组数据的下载
❝基因家族分析的首要一步,就是下载目标物种的参考基因组数据。 并且最关键的数据如下:
1. genome.fasta # 基因组数据
2. genome.gtf or genome.gff3 # 基因组注释文件
3. protein.fasta # 蛋白质序列
# 前3个是必备数据, 下面的数据有可能会使用到
4. cds.fasta
基因组数据库
1. Phytozome 数据库
https://phytozome-next.jgi.doe.gov/
# Phytozome 是植物基因组数据分析中最常用的数据库了,里面有已经整理好的基因组数据,可以直接进行下载
2. Ensembl Plants 数据库
https://plants.ensembl.org/index.html
# Ensembl Plants 数据库里面是第二常用的数据库了,但是使用这个数据库的时候,务必要注意参考序列的版本,版本变化太大了,有的时候还会产生ID改变的情况!使用的时候要注意
3. NCBI
https://www.ncbi.nlm.nih.gov/genome
# NCBI 在ID命名以及注释文件方面,有它自己的想法和打算,我个人使用的频率很低
4. 各个物种自己的数据库,比如:
拟南芥数据库: https://www.arabidopsis.org/
水稻数据库:http://rice.uga.edu/
# 作为双子叶和单子叶的模式植物,这两个数据库的使用频率可以说是相当的高
基因组数据的下载
❝那么本次教程,就以小麦为实例进行一整套基因家族的分析
# 基因组数据的下载
# 跳转到我们的工作路径 Genefamily_Analysis
cd ~/Genefamily_Analysis
# 因为我们要下载基因组数据,所以我们要继续跳到 1.database 路径下
cd 1.database
# 小麦作为禾本科植物,所以我们相匹配的,还要下载两个模式植物的参考基因组数据
# 小麦
# 基因组序列
nohup wget -c https://ftp.ebi.ac.uk/ensemblgenomes/pub/release-59/plants/fasta/triticum_aestivum/dna/Triticum_aestivum.IWGSC.dna.toplevel.fa.gz ./ &
# 基因组注释文件
nohup wget -c https://ftp.ebi.ac.uk/ensemblgenomes/pub/release-59/plants/gtf/triticum_aestivum/Triticum_aestivum.IWGSC.59.gtf.gz ./ &
nohup wget -c https://ftp.ebi.ac.uk/ensemblgenomes/pub/release-59/plants/gff3/triticum_aestivum/Triticum_aestivum.IWGSC.59.gff3.gz ./ &
# 蛋白质序列
nohup wget -c https://ftp.ebi.ac.uk/ensemblgenomes/pub/release-59/plants/fasta/triticum_aestivum/pep/Triticum_aestivum.IWGSC.pep.all.fa.gz ./ &
# cds序列
nohup wget -c https://ftp.ebi.ac.uk/ensemblgenomes/pub/release-59/plants/fasta/triticum_aestivum/cds/Triticum_aestivum.IWGSC.cds.all.fa.gz ./ &
# 拟南芥
# 留下一个课后练习:去TAIR10上面下载拟南芥的基因组序列、基因组注释文件、蛋白质序列、CDS序列
# 水稻
# 留下一个课后练习:去Rice Genome Annotation Project Database上面下载拟南芥的基因组序列、基因组注释文件、蛋白质序列、CDS序列
代表性转录本的筛选
❝我之前分别写过
Python
程序和R
程序,以便可以快速的检查和筛选出代表性转录本。 核心的变成思想就是: 如果有gff
文件,那么就基于gff
文件先去查看到底有多少个基因, 如果没有gff
文件的话,那么就基于基因组的pep
文件,判断序列的长度,然后筛选出最长的作为代表性转录本, 然后进行后续分析。
在这里,我以R
为例,封装一个命令行程序。
Rscript ./Script/get_represent_sequence.R 1_database/Ensembl_Plants/Oryza_sativa.IRGSP-1.0.pep.all.fa test_OS
以及,Python
的程序,封装一个命令行程序。
python get_represent_seq.py --input 1_database/Ensembl_Plants/Oryza_sativa.IRGSP-1.0.pep.all.fa --output test_OS
❝这样,就可以更快,更好的筛选出代表性转录本了。
小讨论:
诸多教程里面,都会涉及到对下载好的蛋白质序列进行筛选和过滤,保留序列最长的代表性转录本。
其实我之前也是这么做的。
直到我有一个师弟和我说,他在做玉米的MYB
的时候,发现代表性转录本里面其实并不包含MYB Domain
,而是其他转录本包含了MYB Domain
。
所以我决定,将所有的数据都纳入到分析里面,然后最后进行过滤,剔除一个基因的其他转录本。
小心驶得万年船,总不会错的。
历史绘图合集
公众号推文一览
进化树合集
环状图
散点图
基因家族合集
换一个排布方式:
首先查看基础版热图:
然后再看进阶版热图:
基因组共线性
WGCNA ggplot2版本
其他科研绘图
合作、联系和交流
有很多小伙伴在后台私信作者,非常抱歉,我经常看不到导致错过,请添加下面的微信联系作者,一起交流数据分析和可视化。
❝2025年,除了公众号,还有知识星球,里面除了
在模仿中精进数据可视化
,还有R
和Python
打卡活动和视频学习。
预计最近就是Pandas
和R
的比较学习,搞数据科学的,生物信息的,总不能一条腿走到黑!
一步一步来~