```shell #!/bin/bash ## 目前分析暂时不使用R2序列,单独分析R1 ## 原始数据存放于01_seqRaw文件夹中 ## metadata.tsv格式 # sampleName group # MSR1 AG # MSR10 AG # MSR11 AG set -e ## 1.创建文件夹 mkdir -p 00_result 02_fastqcBeforeTrim 03_seqTrim 04_fastqcAfterTrim 05_umiExtract 06_fastqcAfterumiExtract # 统计原始数据 seqkit stats -T -a -j64 01_seqRaw/*.fastq.gz > 00_result/seqStatsRaw.tsv fastqc 01_seqRaw/*.fastq.gz -o 02_fastqcBeforeTrim -t 64 ## 2.对原始数据进行质控,使用trim_galore # AG方法,即SMARTer smRNA-Seq Kit for Illumina User Manua说明书中的方法 # 去除illumina接头,去除序列连续含大于等于10bp的polyA,去除小于26bp的序列(small RNA最小长度15bp+UMI序列8bp+R1序列5'端的3nt的G或C碱基) # 去除接头 #--max_n 修剪序列后 N 碱基的占比:(N 的数量 / 修剪后序列长度) * 100%。 (注意:查看原始数据的后缀,区分fq.gz/fastq.gz/_/.) awk '$2~/AG/ {print $1} ' metadata.tsv | while read id ;do echo -e "${id} 正在trim!!!";trim_galore --max_n 0.1 --length 1 -j 8 -o 03_seqTrim 01_seqRaw/${id}.R1.raw.fastq.gz;echo -e "${id} 结束trim!!!";done #去除R1的polyA (注意:查看数据的后缀,区分fq.gz/fastq.gz/_/.) #-m 26 过滤小于26bp的序列(small RNA最小长度15bp+UMI序列8bp+R1序列5'端的3nt的G或C碱基),过滤后的reads保留在1-17nt_fq文件夹中。 #-b 在read任意位置寻找polyA 并把polyA以及后面的序列全部剪掉 mkdir 1-17nt_fq awk '$2~/AG/ {print $1} ' metadata.tsv | while read id ;do cutadapt -b "A{10}" -m 26 -j 8 --too-short-output 1-17nt_fq/${id}_short.fastq.gz -o 03_seqTrim/${id}_R1_trimmed_A.fq.gz 03_seqTrim/${id}.R1.raw_trimmed.fq.gz;done # 过滤掉的短片段处理:去除每条reads上的UMI序列8bp+R1序列5'端的3nt的G或C碱基(可选步骤,若不保留18bp以下的小片段可跳过) cut -f1 metadata.tsv | tail -n+2 | while read id ;do cutadapt -u 11 -j 8 -o 1-17nt_fq/${id}_1-17nt.fastq.gz 1-17nt_fq/${id}_short.fastq.gz ;done ## 3.统计去除R1的polyA,接头,小于26bp的序列后的数据质量: seqkit stats -T -a -j64 03_seqTrim/*_R1_trimmed_A.fq.gz > 00_result/seqStatsAfterTrim.tsv fastqc 03_seqTrim/*_R1_trimmed_A.fq.gz -o 04_fastqcAfterTrim -t 64 ## 4.提取UMI #使用parallel加速 parallel -j 10 "echo {}正在提取UMI标签!!!; umi_tools extract -I 03_seqTrim/{}_R1_trimmed_A.fq.gz --stdout=05_umiExtract/{}_umiExtract_R1.fq.gz --bc-pattern=NNNNNNNN -L 05_umiExtract/{}_extract.log ;echo {}结束提取UMI标签!!!" ::: $(cut -f1 metadata.tsv | tail -n+2) ## 5.去除R1序列5'端的3nt的G或C碱基 # -u 3 删除R1前3个碱基 #-m 15 去除小于15bp的序列 cut -f1 metadata.tsv | tail -n+2 | while read id ;do cutadapt -u 3 -m 15 -j 64 -o 05_umiExtract/${id}_5primeDel3_R1.fq.gz 05_umiExtract/${id}_umiExtract_R1.fq.gz ;done ## 6.根据需求进行序列的长度筛选 ##seqkit seq 筛选序列长度 -m 设置最小长度阈值 -M 设置最大长度阈值(例如只分析miRNA,可筛选18-32nt长度的序列) !可根据实际需求更改参数! ##对质控后18-32nt,32-150nt,18-150nt的数据分别进行提取(PE150测序,最长为150) mkdir -p 18_32nt_fq 32_150nt_fq 18_150nt_fq cut -f1 metadata.tsv | tail -n+2 | while read id ;do seqkit seq -m 18 -M 32 05_umiExtract/${id}_5primeDel3_R1.fq.gz| gzip > 18_32nt_fq/${id}_18-32nt_R1.fq.gz seqkit seq -m 32 -M 150 05_umiExtract/${id}_5primeDel3_R1.fq.gz| gzip > 32_150nt_fq/${id}_32-150nt_R1.fq.gz seqkit seq -m 18 -M 150 05_umiExtract/${id}_5primeDel3_R1.fq.gz| gzip > 18_150nt_fq/${id}_18-150nt_R1.fq.gz done ## 7.统计质控后的数据质量: seqkit stats -T -a -j64 18_32nt_fq/*_18-32nt_R1.fq.gz > 00_result/18-32nt_seqStatsAfterumiExtract.tsv fastqc 18_32nt_fq/*_18-32nt_R1.fq.gz -o 06_fastqcAfterumiExtract -t 64 seqkit stats -T -a -j64 32_150nt_fq/*_32-150nt_R1.fq.gz > 00_result/32-150nt_seqStatsAfterumiExtract.tsv fastqc 32_150nt_fq/*_32-150nt_R1.fq.gz -o 06_fastqcAfterumiExtract -t 64 seqkit stats -T -a -j64 18_150nt_fq/*_18-150nt_R1.fq.gz > 00_result/18-150nt_seqStatsAfterumiExtract.tsv fastqc 18_150nt_fq/*_18-150nt_R1.fq.gz -o 06_fastqcAfterumiExtract -t 64 ``` ### 使用软件的安装 seqkit / fastqc / trim_galore / umi_tools / cutadapt ### 1.seqkit安装 ```shell #下载地址:https://github.com/shenwei356/seqkit/releases tar -xzvf seqkit_linux_amd64.tar.gz ## 解压 pwd /home/software/Seqkit echo "export PATH=$PATH:/home/software/Seqkit" >> ~/.bashrc ## 添加环境变量 source ~/.bashrc ## 加载环境变量 seqkit --help ## 调用测试 ``` ### 2.fastqc安装 ```shell wget https://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.9.zip unzip ./fastqc_v0.11.9.zip ##解压 cd FastQC/ chmod +x ./fastqc ##使 fastqc 程序在当前目录下可执行 echo 'export PATH=/home/zhaohuiyao/Biosoft/general/FastQC/:$PATH' >> ~/.bashrc ## 添加环境变量 source ~/.bashrc## 加载环境变量 fastqc --version ## 验证是否安装成功 ``` ### 3.cutadapt安装 ```shell ## way1: conda安装 conda install -c bioconda cutadapt ## way2: pip安装 pip install --user --upgrade cutadapt # 直接安装最新版 #pip install --user cutadapt==4.1 # 安装特定版本(例如4.1) cutadapt --version # 验证安装 ## way3:源代码安装 wget -c https://files.pythonhosted.org/packages/a3/30/4a889a6916d7480c153774777e634b89865f95cb02f2c3209762c7ef984b/cutadapt-4.1.tar.gz tar -zxvf cutadapt-4.1.tar.gz cd cutadapt-4.1 python setup.py install --user ``` ### 4.fastp安装 ```shell # 参考链接:https://github.com/FelixKrueger/TrimGalore #https://github.com/OpenGene/fastp/archive/refs/tags/v0.23.4.tar.gz #官网下载地址 wget -c https://github.com/OpenGene/fastp/archive/refs/tags/v0.23.4.tar.gz #下载 tar -zxvf v0.23.4.tar.gz #解压缩即可得到最终二进制软件 mv fastp.0.23.4 fastp chmod a+x ./fastp chmod 744 ./fastp #可选步骤,一般权限够用,默认744 chmod a+x ./fastp #可选步骤,作用同上 ./fastp -h #检查fastp已安装 ``` ### 5.trim_galore安装 ```shell #安装Trim Galore软件之前需要安装好Fastqc和cutadapt两个软件 #参考链接:https://github.com/FelixKrueger/TrimGalore #way1: cutadapt --version ## 检查cutadapt已安装 fastqc -v ## 检查fastqc已安装 curl -fsSL https://github.com/FelixKrueger/TrimGalore/archive/0.6.10.tar.gz -o trim_galore.tar.gz tar xvzf trim_galore.tar.gz ~/TrimGalore-0.6.10/trim_galore ## 运行 Trim Galore ## way2: conda安装 conda install trim-galore ## conda一键安装 ``` ### 6.umi_tools安装 ```shell ## way1: conda install -c bioconda -c conda-forge umi_tools ## way2: pip install umi_tools or grab a zip of the latest release from github and unpack (replace 0.5.5 with version number; replace wget with curl -O for OS X): ## way3: unzip 1.0.0.zip cd UMI-tools-1.0.0 python setup.py install --user ## 官方指南:https://umi-tools.readthedocs.io/en/latest/INSTALL.html ```