- 这个脚本是为了自动化地鉴定长末端重复序列而设计的shell脚本,配合镜像;repeat_mark3b能够实现自动化鉴定这类重复序列,合并然后生成最后的结果文件。
- 基本参数都已经设置好了,实际上差不多就是一个敲过的命令行的合集,制作成shell脚本后,能够省去一些敲键盘的重复性工作,节省精力and时间。
- 参考文档:https://www.kdocs.cn/l/caE41kwA97SB
- 参数设定
- i,指定输入的fasta序列
- t,指定线程数量
- 最终输出文件
- target.harvest.scn #ltr_harvest的预测结果
- target.fasta.finder.combine.scn #ltr_finder的预测结果
- all.scn #整合上面两个预测结果的ltr重复序列库
- target.fasta.masked #屏蔽了ltr后的基因组序列
- target.rmmasked.fasta #删除了呗屏蔽的ltr重复序列部分后的序列
- 示例命令
nohup bash ltr2.sh -i target.fasta -t 20 &
- ltr2.sh
#!/bin/bash
# 初始化变量
input=""
threads=""
# 使用 getopts 来处理 -i 和 -t 参数,将参数后面的值付给变量
while getopts "i:t:" opt; do
case $opt in
i) # 处理 -i 参数
input=$OPTARG # 将 -i 参数后面的值存储在变量 input 中
;;
t) # 处理 -t 参数
threads=$OPTARG # 将 -t 参数后面的值存储在变量 threads 中
;;
\?) # 处理无效参数
echo "无效参数:-$OPTARG"
exit 1
;;
esac
done
mkdir -p "${input}_dir"
#原本打算在cp的时候顺便改个名,结果无法执行,这一部分只能拆开来分成两步走
cp $input target.fasta
mv target.fasta "${input}_dir"
cd "${input}_dir"
#参考文章:https://www.jianshu.com/p/f7c0115e1d89
#第一部分,LTRs鉴定
#创建ltr_repeat文件夹,ltrs的鉴定放在该文件夹下方
mkdir ltr_repeat
cd ltr_repeat
#ltr_finder_parallel鉴定ltrs,输出文件:target.fasta.finder.combine.scn
#参数设定依据:https://github.com/oushujun/LTR_FINDER_parallel?tab=readme-ov-file
/home/soft/LTR_FINDER_parallel/LTR_FINDER_parallel -seq ../target.fasta -threads $threads -w 2 -C -D 15000 -d 1000 -L 7000 -l 100 -p 20 -M 0.85 -harvest_out &
#ltrharvest建立索引
gt suffixerator -db ../target.fasta -indexname target -tis -suf -lcp -des -ssp -sds -dna
#ltrharvest鉴定ltrs,输出文件:target.harvest.scn
gt ltrharvest -index target -similar 85 -vic 10 -seed 20 -seqids yes -minlenltr 100 -maxlenltr 7000 -mintsd 4 -maxtsd 6 -motif TGCA -motifmis 1 > target.harvest.scn &
#在两个ltr后面加上&,后台运行,wait等待两个ltr完成运行后再继续运行后面的命令
wait
#合并ltrharvest和ltr_finder_parallel鉴定出来的两个库文件
cat target.fasta.finder.combine.scn target.harvest.scn > all.scn
#用ltr_retriever对两个库文件进行合并,然后屏蔽,得到ltrs的库文件和第一次屏蔽后的重复序列
/home/soft/LTR_retriever/LTR_retriever -genome target.fasta -inharvest all.scn -threads $threads
#对库文件进行重命名
mv *.LTRlib.fa LTR.lib
chmod 777 LTR.lib
cp LTR.lib ..
#将经过屏蔽的基因组文件中的重复序列(N)删除掉
tr -d 'nN' < target.fasta.masked | seqkit seq > target.rmmasked.fasta
cp target.rmmasked.fasta ..
#高量化部分重要中间文件,便于后续检查
chmod 777 target.harvest.scn target.fasta.finder.combine.scn all.scn target.fasta.masked target.rmmasked.fasta
cd ../../