基因家族分析01_基因家族环境配置和基因组数据的下载

文摘   2025-01-10 23:31   新加坡  

基因家族分析01_基因家族环境配置和基因组数据的下载

基因家族分析流程系列推文的目标:做一个高质量、超耐看、很标准的基因家族分析教程

引言

在我的印象中,基因家族从2015年一直火到了现在,整整十年! 在这十年之中, 多少刚入学的硕博们,基于基因家族,正式踏入了生物信息学的领域,完成科研方向的转型; 多少硕士博士依靠基因家族完成毕业论文,找到理想的教职; 多少高校青椒依靠基因家族完成学校考核; 多少高校老师依靠基因家族完成职称评定。


因此,我深刻的感觉到,基因家族可能还会一直火下去,一直还会有它的用武之处,我总结了一下,可能有以下的原因:

  • 硕士、博士的毕业驱动。
    • 精美的可视化图表,充实和完善的论文内容,都有助于小论文的发表和大论文的审查。
    • 发表论文,该拿奖学金就去拿奖学金,该毕业就去毕业。
  • 青椒的考核驱动。
    • 一篇基因家族,半个月完成基本图表的绘制,剩余的补一些必需的实验,投稿1-2个月,基本上半年1-2篇论文,这个发Paper的速度,的确很可观了。
    • 基于自己的结果,保三区争二区嘛!
  • 湿实验的风向标。
    • 目标基因潜在的生物学功能,除了找模式物种的同源基因,还可以找找家族成员的潜在功能嘛。
  • 生信转行的技能驱动。
    • 一个只会复制粘贴,不会写代码的基因家族er,如何自诩转型了生物信息呢?
    • 必备技能Linux操作系统去操作文件
    • 编写Python脚本清洗数据
    • R语言进行数据可视化
    • 以一个基因家族的完整项目,开启生物信息学的大门。

基因家族的简单介绍

在植物生物学中,基因家族是指一组具有相似功能、结构域或进化关系的基因集合。它们通常由基因复制事件(例如整个基因组或染色体片段的重复)驱动,然后经过进化的选择和改变,最终形成多种不同的功能。

研究植物基因家族主要有以下意义:

  1. 理解演化过程:通过研究基因家族,我们可以了解植物的基因如何随着时间的推移而发生变异,以适应不断变化的环境条件。
  2. 揭示基因功能:植物基因家族成员可能会执行相似的生物学功能,对于未知功能的基因,如果我们知道它属于哪个基因家族,就可以根据已知的其他成员推测其可能的功能。
  3. 启示农业实践:基因家族的研究还可以指导农业实践,比如寻找抗病、抗虫、抗旱等性状的关键基因,帮助改良作物品种。
  4. 开辟新的研究领域:通过基因家族的研究,可能会发现全新的生物学机制和路径,为科学研究开辟新的视角和领域。

基因家族需要分析哪些内容

  1. 基因家族环境配置和基因组数据的下载
  2. hmmsearch筛选基因家族
  3. blast筛选基因家族
  4. hmmsearch&blast结果鉴定及家族成员信息的获取
  5. 序列比对以及进化树的构建和可视化
  6. 进化树、结构域、motif可视化
  7. 物种内家族成员染色体定位、共线性和复制基因分析及可视化
  8. 物种间共线性分析及可视化
  9. 启动子分析及可视化
  10. GO功能注释及可视化
  11. 蛋白质互作网络PPI
  12. 基因家族成员的转录组可视化
  13. qRT-PCR及可视化

基因家族分析所需技能

  1. Linux基础,更快,更好的完成数据操作
  2. R语言编程,数据处理,数据清洗和绘制精美的可视化结果
  3. Python语言编程,数据处理、文本处理。

基因家族分析环境配置

首先要有一个Linux系统的服务器,如果服务器里面有R或者Rstudio就更好了。 如果服务器里面没有,可以在本地进行RPython的数据处理过程。

那么本地安装RPython请参考我之前写好的推文:

以下都在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_AnalysisGenefamily_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年,除了公众号,还有知识星球,里面除了在模仿中精进数据可视化,还有RPython打卡活动和视频学习。
预计最近就是PandasR的比较学习,搞数据科学的,生物信息的,总不能一条腿走到黑!
一步一步来~


RPython
人生苦短,R和Python。
 最新文章