#PBS -N minimap2-Col-coty #PBS -l nodes=node03:ppn...
Erstellt am: 9. Dezember 2025
Beantwortet mit GPT-5.1 Thinking von Chat01
Erstellt am: 9. Dezember 2025
Beantwortet mit GPT-5.1 Thinking von Chat01
#PBS -N minimap2-Col-coty
#PBS -l nodes=node03:ppn=10
#PBS -V
#PBS -j oe
#PBS -l mem=10g
#PBS -l walltime=399:59:00
cd $PBS_O_WORKDIR
set -euo pipefail
/DataZhai/wangzh/software/minimap2-2.30_x64-linux/minimap2
-x map-ont
-a
--cs=long
-t 36
/DataZhai/wangzh/genome/Col-CC-V2/Col-CC-V2.fasta
/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2/SV-test-fastq/Col-coty-dorado-minimap2-Col-CC-V2-Chr1-SV.fastq \
/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2/Col-coty-sup-Chr1-SV-cs.sam
SAMTOOLS="/public/Zhaijx/wangz/Condaenvir/envs/samtools/bin/samtools" 请你接着把这个代码写完成,我们Col-coty-dorado-minimap2-Col-CC-V2-Chr2-SV.fastq Col-coty-dorado-minimap2-Col-CC-V2-Chr3-SV.fastq 后面需要把这两个比对也完成,同时samtools 转成bam文件,并进行sort 以及 index set -euo pipefail
MM2_THREADS=36
ST_THREADS=36
SAMTOOLS="/public/Zhaijx/wangz/Condaenvir/envs/samtools/bin/samtools"
SEQKIT="/public/Zhaijx/wangz/Condaenvir/envs/seqkit/bin/seqkit"
REF="/DataZhai/wangzh/genome/Col-CC-V2/Col-CC-V2.fasta"
IN_FASTQ="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/fastq/Col-cotyledon-dor-pass-fail-sup.fastq"
OUTDIR="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2"
mkdir -p "${OUTDIR}"
SAMPLE="Col-coty-dorado"
BASE="{SAMPLE}-Col-CC-V2"
###############################################################################
###############################################################################
R1_PREFIX="{R1_PREFIX}.sam"
R1_BAM="{R1_PREFIX}-sorted.bam"
R1_UNMAPPED_BAM="{R1_PREFIX}-sorted.unmapped_read_ids.txt"
R1_UNMAPPED_IDS_CLEAN="{R1_PREFIX}.unmapped.fq.gz"
echo "[R1] minimap2 map-ont: {MM2_THREADS}
"{IN_FASTQ}" > "${R1_SAM}"
echo "[R1] SAM -> BAM & sort"
"{ST_THREADS} -b -o "{R1_SAM}"
"{ST_THREADS} -o "{R1_BAM}"
"{ST_THREADS} "${R1_SORTED_BAM}"
echo "[R1] 提取未比对 reads 的 ID (flag 4)"
"{ST_THREADS} -b -f 4 "{R1_UNMAPPED_BAM}"
"{ST_THREADS} "{R1_UNMAPPED_BAM}" | awk '{print 1}' > "${R1_UNMAPPED_IDS}"
tr -d '\r' < "0)>0' | LC_ALL=C sort -u > "${R1_UNMAPPED_IDS_CLEAN}"
echo "[R1] 未比对 ID 行数:{R1_UNMAPPED_IDS_CLEAN}")"
echo "[R1] 使用 seqkit 从原始 FASTQ 抽取未比对 reads"
"{ST_THREADS} -f "{IN_FASTQ}" -o "${R1_UNMAPPED_FASTQ}"
echo "[R1] R1_unmapped FASTQ 统计:"
"{R1_UNMAPPED_FASTQ}"
echo "[R1] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam"
rm -f "{R1_BAM}"
###############################################################################
###############################################################################
R2_PREFIX="{R2_PREFIX}.sam"
R2_BAM="{R2_PREFIX}-sorted.bam"
R2_UNMAPPED_BAM="{R2_PREFIX}-sorted.unmapped_read_ids.txt"
R2_UNMAPPED_IDS_CLEAN="{R2_PREFIX}.unmapped.fq.gz"
echo "[R2] minimap2 asm20: {MM2_THREADS}
"{R1_UNMAPPED_FASTQ}" > "${R2_SAM}"
echo "[R2] SAM -> BAM & sort"
"{ST_THREADS} -b -o "{R2_SAM}"
"{ST_THREADS} -o "{R2_BAM}"
"{ST_THREADS} "${R2_SORTED_BAM}"
echo "[R2] 提取未比对 reads 的 ID (flag 4)"
"{ST_THREADS} -b -f 4 "{R2_UNMAPPED_BAM}"
"{ST_THREADS} "{R2_UNMAPPED_BAM}" | awk '{print 1}' > "${R2_UNMAPPED_IDS}"
tr -d '\r' < "0)>0' | LC_ALL=C sort -u > "${R2_UNMAPPED_IDS_CLEAN}"
echo "[R2] 未比对 ID 行数:{R2_UNMAPPED_IDS_CLEAN}")"
echo "[R2] 使用 seqkit 从 R1_unmapped FASTQ 抽取 R2 未比对 reads"
"{ST_THREADS} -f "{R1_UNMAPPED_FASTQ}" -o "${R2_UNMAPPED_FASTQ}"
echo "[R2] R2_unmapped FASTQ 统计:"
"{R2_UNMAPPED_FASTQ}"
echo "[R2] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam"
rm -f "{R2_BAM}"
###############################################################################
###############################################################################
R3_PREFIX="{R3_PREFIX}.sam"
R3_BAM="{R3_PREFIX}-sorted.bam"
R3_UNMAPPED_BAM="{R3_PREFIX}-sorted.unmapped_read_ids.txt"
R3_UNMAPPED_IDS_CLEAN="{R3_PREFIX}.unmapped.fq.gz" # 最终三轮都未比对上的 reads
echo "[R3][planA] minimap2 map-ont with tuned params: {MM2_THREADS}
"{R2_UNMAPPED_FASTQ}" > "${R3_SAM}"
echo "[R3] SAM -> BAM & sort"
"{ST_THREADS} -b -o "{R3_SAM}"
"{ST_THREADS} -o "{R3_BAM}"
"{ST_THREADS} "${R3_SORTED_BAM}"
echo "[R3] 提取未比对 reads 的 ID (flag 4)"
"{ST_THREADS} -b -f 4 "{R3_UNMAPPED_BAM}"
"{ST_THREADS} "{R3_UNMAPPED_BAM}" | awk '{print 1}' > "${R3_UNMAPPED_IDS}"
tr -d '\r' < "0)>0' | LC_ALL=C sort -u > "${R3_UNMAPPED_IDS_CLEAN}"
echo "[R3] 未比对 ID 行数:{R3_UNMAPPED_IDS_CLEAN}")"
echo "[R3] 使用 seqkit 从 R2_unmapped FASTQ 抽取三轮都未比对上的 reads"
"{ST_THREADS} -f "{R2_UNMAPPED_FASTQ}" -o "${R3_UNMAPPED_FASTQ}"
echo "[R3] 最终未比对 FASTQ:{SEQKIT}" stats "${R3_UNMAPPED_FASTQ}"
echo "[R3] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam"
rm -f "{R3_BAM}"
echo "=== 全流程完成(map-ont → asm20 → planA-mapont;三轮均未比对的 reads 已输出)==="
echo "保留文件(每一轮):"
echo " * {R1_UNMAPPED_BAM}"
echo " * {R2_UNMAPPED_BAM}"
echo " * {R3_UNMAPPED_BAM}" 同时都使用三轮比对来完成这个比对任务
先把你最前面的 PBS 脚本补全一下:
对 Chr1 / Chr2 / Chr3 三个 SV.fastq 都跑 minimap2,然后用 samtools 转 BAM、sort 和 index。
我顺手把路径和命名都参数化了一下,方便以后改。
bash#!/bin/bash #PBS -N minimap2-Col-coty #PBS -l nodes=node03:ppn=10 #PBS -V #PBS -j oe #PBS -l mem=10g #PBS -l walltime=399:59:00 cd "$PBS_O_WORKDIR" set -euo pipefail # 线程数(根据实际资源改) THREADS=36 # 软件路径 MINIMAP2="/DataZhai/wangzh/software/minimap2-2.30_x64-linux/minimap2" SAMTOOLS="/public/Zhaijx/wangz/Condaenvir/envs/samtools/bin/samtools" # 参考基因组 REF="/DataZhai/wangzh/genome/Col-CC-V2/Col-CC-V2.fasta" # 输入 / 输出目录 IN_DIR="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2/SV-test-fastq" OUT_DIR="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2" mkdir -p "${OUT_DIR}" # 依次处理 Chr1 / Chr2 / Chr3 for chr in Chr1 Chr2 Chr3; do IN_FASTQ="${IN_DIR}/Col-coty-dorado-minimap2-Col-CC-V2-${chr}-SV.fastq" # 输出前缀与原来 Chr1 保持一致:Col-coty-sup-ChrX-SV-cs.* PREFIX="${OUT_DIR}/Col-coty-sup-${chr}-SV-cs" SAM="${PREFIX}.sam" BAM="${PREFIX}.bam" SORTED_BAM="${PREFIX}.sorted.bam" echo "[$(date)] minimap2 对 ${chr} 开始比对:${IN_FASTQ}" "${MINIMAP2}" \ -x map-ont \ -a \ --cs=long \ -t "${THREADS}" \ "${REF}" \ "${IN_FASTQ}" \ > "${SAM}" echo "[$(date)] samtools view/sort/index 处理 ${chr}" # SAM -> BAM "${SAMTOOLS}" view -@ "${THREADS}" -b -o "${BAM}" "${SAM}" # sort "${SAMTOOLS}" sort -@ "${THREADS}" -o "${SORTED_BAM}" "${BAM}" # index "${SAMTOOLS}" index -@ "${THREADS}" "${SORTED_BAM}" # 可选:节省空间,删除中间文件 rm -f "${SAM}" "${BAM}" echo "[$(date)] ${chr} 处理完成:${SORTED_BAM} 以及 ${SORTED_BAM}.bai" done echo "[$(date)] 所有 Chr1 / Chr2 / Chr3 minimap2 + samtools 流程完成。"
你后面贴的那个大脚本(R1: map-ont → R2: asm20 → R3: planA-mapont,加上 unmapped 提取)本身已经是一个完整的三轮比对流程了,直接保存成一个脚本单样本跑就可以完成“用三轮比对完成这个比对任务”。
如果你也想让 多个 FASTQ(比如不同子集)都跑三轮比对,可以把那段 R1/R2/R3 流程封装成函数,再在一个 for 循环里传不同的 IN_FASTQ 和 BASE 进去即可——思路和我上面对 Chr1/2/3 的写法是一样的。需要的话我也可以帮你把三轮流程改成可复用函数版。
是的,我需要每个都进行三轮比对,请你照着这个意思进行修改代码
好,那我直接把“三轮比对”封装成一个函数,然后对 原始 FASTQ 和 Chr1/Chr2/Chr3 的 SV FASTQ 都跑三轮。
你以后如果有别的 FASTQ,只要再调用一次 run_three_rounds 就行。
下面是完整脚本(包含 PBS 头)——你可以直接保存为 Col-coty-3round.pbs 然后 qsub:
bash#!/bin/bash #PBS -N Col-coty-3round #PBS -l nodes=node03:ppn=10 #PBS -V #PBS -j oe #PBS -l mem=10g #PBS -l walltime=399:59:00 cd "$PBS_O_WORKDIR" set -euo pipefail ############################################################################### # 通用参数 ############################################################################### # 线程数(注意根据实际申请的 ppn 调整) MM2_THREADS=36 ST_THREADS=36 # 软件绝对路径 MINIMAP2="/DataZhai/wangzh/software/minimap2-2.30_x64-linux/minimap2" SAMTOOLS="/public/Zhaijx/wangz/Condaenvir/envs/samtools/bin/samtools" SEQKIT="/public/Zhaijx/wangz/Condaenvir/envs/seqkit/bin/seqkit" # 参考基因组(Col-CC-V2) REF="/DataZhai/wangzh/genome/Col-CC-V2/Col-CC-V2.fasta" # 输出目录 OUTDIR="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2" mkdir -p "${OUTDIR}" ############################################################################### # 封装:对任意一个 FASTQ 做三轮比对 # 入参1:IN_FASTQ 输入 fastq # 入参2:SAMPLE_TAG 样本标签,用于拼接前缀(不要带路径) ############################################################################### run_three_rounds() { local IN_FASTQ="$1" local SAMPLE_TAG="$2" # 例如:Col-coty-dorado,或者 Col-coty-dorado-Chr1-SV # 所有输出都放在 OUTDIR 下,以 SAMPLE_TAG-Col-CC-V2 为前缀 local BASE="${OUTDIR}/${SAMPLE_TAG}-Col-CC-V2" echo "===================================================================" echo "=== 三轮比对开始 ===" echo "IN_FASTQ : ${IN_FASTQ}" echo "BASE : ${BASE}" echo "时间 : $(date)" echo "===================================================================" ############################################################################# # Round 1:minimap2 map-ont 对原始 FASTQ ############################################################################# local R1_PREFIX="${BASE}-r1-mapont" local R1_SAM="${R1_PREFIX}.sam" local R1_BAM="${R1_PREFIX}.bam" local R1_SORTED_BAM="${R1_PREFIX}-sorted.bam" local R1_UNMAPPED_BAM="${R1_PREFIX}-sorted-unmapped.bam" local R1_UNMAPPED_IDS="${R1_PREFIX}-sorted.unmapped_read_ids.txt" local R1_UNMAPPED_IDS_CLEAN="${R1_PREFIX}-sorted.unmapped_read_ids.clean.txt" local R1_UNMAPPED_FASTQ="${R1_PREFIX}.unmapped.fq.gz" echo "[R1] minimap2 map-ont: ${IN_FASTQ}" "${MINIMAP2}" -x map-ont -a --MD --cs=long \ -t "${MM2_THREADS}" \ "${REF}" "${IN_FASTQ}" > "${R1_SAM}" echo "[R1] SAM -> BAM & sort" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -o "${R1_BAM}" "${R1_SAM}" "${SAMTOOLS}" sort -@ "${ST_THREADS}" -o "${R1_SORTED_BAM}" "${R1_BAM}" "${SAMTOOLS}" index -@ "${ST_THREADS}" "${R1_SORTED_BAM}" echo "[R1] 提取未比对 reads 的 ID (flag 4)" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -f 4 "${R1_SORTED_BAM}" -o "${R1_UNMAPPED_BAM}" "${SAMTOOLS}" view -@ "${ST_THREADS}" "${R1_UNMAPPED_BAM}" | awk '{print $1}' > "${R1_UNMAPPED_IDS}" tr -d '\r' < "${R1_UNMAPPED_IDS}" | awk 'length($0)>0' | LC_ALL=C sort -u > "${R1_UNMAPPED_IDS_CLEAN}" echo "[R1] 未比对 ID 行数:$(wc -l < "${R1_UNMAPPED_IDS_CLEAN}")" echo "[R1] 使用 seqkit 从原始 FASTQ 抽取未比对 reads" "${SEQKIT}" grep -j "${ST_THREADS}" -f "${R1_UNMAPPED_IDS_CLEAN}" "${IN_FASTQ}" -o "${R1_UNMAPPED_FASTQ}" echo "[R1] R1_unmapped FASTQ 统计:" "${SEQKIT}" stats "${R1_UNMAPPED_FASTQ}" # R1 只删除原始 SAM 和未排序 BAM echo "[R1] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam" rm -f "${R1_SAM}" "${R1_BAM}" ############################################################################# # Round 2:minimap2 asm20,对 R1 未比对 reads ############################################################################# local R2_PREFIX="${BASE}-r2-asm20" local R2_SAM="${R2_PREFIX}.sam" local R2_BAM="${R2_PREFIX}.bam" local R2_SORTED_BAM="${R2_PREFIX}-sorted.bam" local R2_UNMAPPED_BAM="${R2_PREFIX}-sorted-unmapped.bam" local R2_UNMAPPED_IDS="${R2_PREFIX}-sorted.unmapped_read_ids.txt" local R2_UNMAPPED_IDS_CLEAN="${R2_PREFIX}-sorted.unmapped_read_ids.clean.txt" local R2_UNMAPPED_FASTQ="${R2_PREFIX}.unmapped.fq.gz" echo "[R2] minimap2 asm20: ${R1_UNMAPPED_FASTQ}" "${MINIMAP2}" -x asm20 -a --MD --cs=long \ -t "${MM2_THREADS}" \ "${REF}" "${R1_UNMAPPED_FASTQ}" > "${R2_SAM}" echo "[R2] SAM -> BAM & sort" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -o "${R2_BAM}" "${R2_SAM}" "${SAMTOOLS}" sort -@ "${ST_THREADS}" -o "${R2_SORTED_BAM}" "${R2_BAM}" "${SAMTOOLS}" index -@ "${ST_THREADS}" "${R2_SORTED_BAM}" echo "[R2] 提取未比对 reads 的 ID (flag 4)" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -f 4 "${R2_SORTED_BAM}" -o "${R2_UNMAPPED_BAM}" "${SAMTOOLS}" view -@ "${ST_THREADS}" "${R2_UNMAPPED_BAM}" | awk '{print $1}' > "${R2_UNMAPPED_IDS}" tr -d '\r' < "${R2_UNMAPPED_IDS}" | awk 'length($0)>0' | LC_ALL=C sort -u > "${R2_UNMAPPED_IDS_CLEAN}" echo "[R2] 未比对 ID 行数:$(wc -l < "${R2_UNMAPPED_IDS_CLEAN}")" echo "[R2] 使用 seqkit 从 R1_unmapped FASTQ 抽取 R2 未比对 reads" "${SEQKIT}" grep -j "${ST_THREADS}" -f "${R2_UNMAPPED_IDS_CLEAN}" "${R1_UNMAPPED_FASTQ}" -o "${R2_UNMAPPED_FASTQ}" echo "[R2] R2_unmapped FASTQ 统计:" "${SEQKIT}" stats "${R2_UNMAPPED_FASTQ}" echo "[R2] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam" rm -f "${R2_SAM}" "${R2_BAM}" ############################################################################# # Round 3:plan A(自定义 map-ont),对 R2 未比对 reads ############################################################################# local R3_PREFIX="${BASE}-r3-planA-mapont" local R3_SAM="${R3_PREFIX}.sam" local R3_BAM="${R3_PREFIX}.bam" local R3_SORTED_BAM="${R3_PREFIX}-sorted.bam" local R3_UNMAPPED_BAM="${R3_PREFIX}-sorted-unmapped.bam" local R3_UNMAPPED_IDS="${R3_PREFIX}-sorted.unmapped_read_ids.txt" local R3_UNMAPPED_IDS_CLEAN="${R3_PREFIX}-sorted.unmapped_read_ids.clean.txt" local R3_UNMAPPED_FASTQ="${R3_PREFIX}.unmapped.fq.gz" # 最终三轮都未比对上的 reads echo "[R3][planA] minimap2 map-ont with tuned params: ${R2_UNMAPPED_FASTQ}" "${MINIMAP2}" -x map-ont -a --MD --cs=long \ -k13 -w7 \ -r2k,60k -g8k \ -U40,700 \ -s70 -z600,200 \ -N30 -t "${MM2_THREADS}" \ "${REF}" "${R2_UNMAPPED_FASTQ}" > "${R3_SAM}" echo "[R3] SAM -> BAM & sort" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -o "${R3_BAM}" "${R3_SAM}" "${SAMTOOLS}" sort -@ "${ST_THREADS}" -o "${R3_SORTED_BAM}" "${R3_BAM}" "${SAMTOOLS}" index -@ "${ST_THREADS}" "${R3_SORTED_BAM}" echo "[R3] 提取未比对 reads 的 ID (flag 4)" "${SAMTOOLS}" view -@ "${ST_THREADS}" -b -f 4 "${R3_SORTED_BAM}" -o "${R3_UNMAPPED_BAM}" "${SAMTOOLS}" view -@ "${ST_THREADS}" "${R3_UNMAPPED_BAM}" | awk '{print $1}' > "${R3_UNMAPPED_IDS}" tr -d '\r' < "${R3_UNMAPPED_IDS}" | awk 'length($0)>0' | LC_ALL=C sort -u > "${R3_UNMAPPED_IDS_CLEAN}" echo "[R3] 未比对 ID 行数:$(wc -l < "${R3_UNMAPPED_IDS_CLEAN}")" echo "[R3] 使用 seqkit 从 R2_unmapped FASTQ 抽取三轮都未比对上的 reads" "${SEQKIT}" grep -j "${ST_THREADS}" -f "${R3_UNMAPPED_IDS_CLEAN}" "${R2_UNMAPPED_FASTQ}" -o "${R3_UNMAPPED_FASTQ}" echo "[R3] 最终未比对 FASTQ:${R3_UNMAPPED_FASTQ}" "${SEQKIT}" stats "${R3_UNMAPPED_FASTQ}" echo "[R3] 删除原始 SAM/BAM,保留 sorted.bam / bai / unmapped.bam" rm -f "${R3_SAM}" "${R3_BAM}" echo "=== 三轮比对完成(map-ont → asm20 → planA-mapont)===" echo "保留文件(每一轮):" echo " * ${R1_SORTED_BAM} 及其 .bai" echo " * ${R1_UNMAPPED_BAM}" echo " * ${R2_SORTED_BAM} 及其 .bai" echo " * ${R2_UNMAPPED_BAM}" echo " * ${R3_SORTED_BAM} 及其 .bai" echo " * ${R3_UNMAPPED_BAM}" echo "===================================================================" } ############################################################################### # 1)原始大 FASTQ(三轮比对) ############################################################################### RAW_FASTQ="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/fastq/Col-cotyledon-dor-pass-fail-sup.fastq" run_three_rounds "${RAW_FASTQ}" "Col-coty-dorado" ############################################################################### # 2)Chr1 / Chr2 / Chr3 的 SV FASTQ,也各自三轮比对 ############################################################################### SV_IN_DIR="/DataZhai/wangzh/2024_11_ATXR5/fastq/long/2024-11-dorado-ultra/2024-11-25-Zhai/Col-0/minimap2-Col-CC-V2/SV-test-fastq" for chr in Chr1 Chr2 Chr3; do IN_FASTQ="${SV_IN_DIR}/Col-coty-dorado-minimap2-Col-CC-V2-${chr}-SV.fastq" # 给每个子集一个不同的 tag,方便区分 SAMPLE_TAG="Col-coty-dorado-${chr}-SV" run_three_rounds "${IN_FASTQ}" "${SAMPLE_TAG}" done echo "=== 全部样本(三轮比对)已完成:原始 FASTQ + Chr1/Chr2/Chr3 SV ==="
怎么用 / 怎么扩展:
如果以后你有新的 FASTQ,比如 new-sample.fastq,只需要在脚本末尾再加一行:
bashrun_three_rounds "/path/to/new-sample.fastq" "NewSampleName"
脚本会自动:
sorted.bam + .bai,并保留未比对 reads 的 BAM 和 FASTQ.sam 和未排序 .bam 会自动删掉,节省空间如果你想把 某一类(比如只 Chr1/Chr2/Chr3) 单独拿出来跑,也可以删掉/注释掉不需要的 run_three_rounds 调用即可。