脚本记录之转录组质控与组装

万物开源

转录组质控与组装流程记录

#!/bin/bash
#PBS -N kissplice
#PBS -l nodes=zhangxclab002:ppn=12
#PBS -q batch
#PBS -V
#PBS -S /bin/bash
myPATH="/home/usr/transnp/ncbiraw"
rawdata="/home/usr/transnp/ncbiraw/raw"

fastqdump(){
    
    
#注意解压格式:有时候fasterq-dump 不行,必须使用fastq-dump --defline-seq,必须变成下列格式才能放入trinity,不然报错终止:
#@FCC0AWEACXX:6:1101:1424:2187/2
#CCTCTACTTCCCATAAAATCCCATTCTGGATTTCGTTGTAAACAAAAGAGTCGGACAGAAGCTCGTCTCCTGAGAGCAGATCCTGGTAGA
#+URCP.fa.1 FCC0AWEACXX:6:1101:1424:2187 length=90
#CCCFFFFFHHHHHJJJJIJJJJJJJJJJJJJJJJJHJJHJIJJJIJJIJJJIJJJJJJIJIJIJJHHHFFFFFEEEDCEDCDDDDDCCCC
#所以需要使用以下命令
nohup fastq-dump --defline-seq '@$sn[_$rn]/$ri' --split-files URCP.fa &
nohup fastq-dump --defline-seq '@$sn[_$rn]/$ri' --split-files YJJY.fa &
}

fastqc(){
    
    
nohup fastqc -t 4 -o ./  URCP.fa_1.fastq URCP.fa_2.fastq &
}

rcorrector(){
    
    
nohup ~/miniconda3/envs/py2/bin/run_rcorrector.pl  -1 $rawdata/URCP.fa_1.fastq -2 $rawdata/URCP.fa_2.fastq -od ./recorrector &

nohup ~/miniconda3/envs/py2/bin/run_rcorrector.pl  -1 $rawdata/YJJY.fa_1.fastq -2 $rawdata/YJJY.fa_2.fastq -od ./recorrector &
}

trimmomatic(){
    
    
cd $myPATH
#mkdir ../Trimmomatic
trimmomatic PE -phred33 $myPATH/recorrector/URCP.fa_1.cor.fq $myPATH/recorrector/URCP.fa_2.cor.fq -baseout $myPATH/Trimmomatic/URCP_trim.fq SLIDINGWINDOW:4:15 LEADING:3 TRAILING:3 MINLEN:36 &
wait
trimmomatic PE -phred33 $myPATH/recorrector/YJJY.fa_1.cor.fq $myPATH/recorrector/YJJY.fa_2.cor.fq -baseout $myPATH/Trimmomatic/YJJY_trim.fq SLIDINGWINDOW:4:15 LEADING:3 TRAILING:3 MINLEN:36 &
wait
}

FastUniq(){
    
    
cd $myPATH/trimmomatic
#URCP_trim_1P.fq
#URCP_trim_1P.fq
fastuniq -i $myPATH/trimmomatic/inputU -o $myPATH/fastuniq/URCP_uniq_1.fastq -p ../fastuniq/URCP_uniq_2.fastq &

#YJJY_trim_1P.fq
#YJJY_trim_2P.fq
fastuniq -i $myPATH/trimmomatic/inputY -o $myPATH/fastuniq/YJJY_uniq_1.fastq -p ../fastuniq/YJJY_uniq_2.fastq &
}

fastqc2(){
    
    
nohup fastqc -t 4 -o ./  URCP_uniq_1.fastq URCP_uniq_2.fastq &
nohup fastqc -t 4 -o ./  YJJY_uniq_1.fastq YJJY_uniq_2.fastq &
}

trinity(){
    
    
cd $myPATH
##conda activate trinity
#nohup Trinity --seqType fq --max_memory 20G --left URCP_uniq_1.fastq --right URCP_uniq_2.fastq --CPU 5 &
nohup /home/usr/miniconda3/envs/trinity/bin/Trinity --seqType fq --max_memory 15G --left $myPATH/fastuniq/URCP_uniq_1.fastq --right $myPATH/fastuniq/URCP_uniq_2.fastq --CPU 5 &

nohup /home/usr/miniconda3/envs/trinity/bin/Trinity --seqType fq --max_memory 15G --left $myPATH/fastuniq/YJJY_uniq_1.fastq --right $myPATH/fastuniq/YJJY_uniq_2.fastq --CPU 5 &
}


wait=`trimmomatic`
wait
FastUniq



编者按:
wait=trimmomatic
wait
是整篇的点睛之笔,实现了function1实现之后function2才启动的流程控制;第一个wait是变量,第二个wait是shell内置函数;具体是赋值变量起作用还是wait函数起作用呢?我觉得双重(bu)比较(zhi)保险(dao)。

隔天更新:由于一个文件夹大小写错了导致wait一直在占用系统,系统变得特别慢直到管理员给我kill。所以请确保程序没有错误再使用wait! 或者尝试一下新的流程控制,师兄建议我用snakemake.

猜你喜欢

转载自blog.csdn.net/mushroom234/article/details/111322601
今日推荐