By liyupeng, 28 August, 2025
Forums

pasa_update.sh(论坛)

介绍

  1. 香榧基因组的注释文件(单条染色体),一次pasa更新需要大约13个小时,两次的话需要一天,而且一个基因组有11条,有5个基因......需要个便利的shell脚本;这样就只需要敲一次命令行就可以了,缩短了等待时间,也不用等一次型更新,再次敲键盘进行第二次更新,自动化
  2. 输入参数4个,对应4个输入文件
    1. evm整合后的gff3文件
    2. pasa回帖后生成的转录本文件
    3. alignassembly.config,pasa回帖时用到的参数设定文件
    4. annotCompare.config,参数文件
      1. c和d都是参数文件,这部分还是需要手动填写,毕竟涉及到数据库的调用
      2. /home/annotCompare_base.config,文件的路径设置;还有,一般应该吧数据放在当前运行的文件夹下方,这样能够写入到annotCompare_base.config文件中
  3. 总结:看了一下,参数设定和文件设置方面还是需要修改一下,只放一个脚本可能不够,毕竟是配合镜像和配置文件一起使用的,这部分后续有机会再更新好了。

示例命令

  1. g,注释文件,以下全部使用绝对路径
  2. t,转录本文件
  3. a,alignassembly.config
  4. f,基因组文件
  5. n,指定几号染色体,输入数字,用于最终文件命名
nohup bash /home/pasa_update.sh \
  -g /home/trinity/06trinity_out_dir/06evm.out.gff3 \
  -t /home/trinity/06trinity_out_dir/pasa/06.assemblies.fasta \
  -a /home/trinity/06trinity_out_dir/alignAssembly.config \
  -f /home/trinity/female.hap2.hicsc.0006.fasta \
  -n 06 & 

第一版

#!/bin/bash

#初始化变量
gff3="";trans="";align="";fasta="";num=""

#使用getopts来处理输入参数,进行赋值

while getopts "g:t:a:f:n:" opt; do
    case $opt in
        g) #evm整合后的gff3文件
            gff3=$OPTARG ;;
        t) #pasa回帖得到的转录本
            trans=$OPTARG ;;
        a) #pasa回帖时用到的文档
            align=$OPTARG ;;
        f) #指定基因组文件
            fasta=$OPTARG ;;
        n) #指定编号
            num=$OPTARG ;;
    esac
done

#1. 创建文件夹,用于存储第一次update的注释文件,避免产生混乱
dir=$(pwd)
mkdir update1
cd update1

#2. 检查gff3文件和pasa兼容性
/usr/local/src/PASApipeline/misc_utilities/pasa_gff3_validator.pl $gff3

#3. 将需要更新的gff文件上传到pasa数据库
/usr/local/src/PASApipeline/scripts/Load_Current_Gene_Annotations.dbi \
     -c $align -g $fasta \
     -P $gff3
        
#4. 修改配置文件annotCompare.config,只需要增加一个数据库路径就可以了,其他保持不变,这里仿照evm.sh,设置一个base文档,然后拿来利用
#DATABASE=
cp /home/annotCompare_base.config ./
mv annotCompare_base.config annotCompare.config
echo "DATABASE=$dir/$num" >> annotCompare.config

#5. 注释比较和更新
/usr/local/src/PASApipeline/Launch_PASA_pipeline.pl \
    -c annotCompare.config -A \
    -g $fasta \
    -t $trans \
    --CPU 1 

#6. 移动文件
mkdir ../update2
cd ../update2

#7. 提交更新后的gff3文件到pasa数据库
/usr/local/src/PASApipeline/scripts/Load_Current_Gene_Annotations.dbi \
     -c $align -g $fasta \
     -P ../update1/*.gff3

#8. 第二次注释更新
/usr/local/src/PASApipeline/Launch_PASA_pipeline.pl \
    -c ../update1/annotCompare.config -A \
    -g $fasta \
    -t $trans \
    --CPU 1 & 

#9. 文件重命名
    mv *.gff3 ${num}evm.update.gff3