直接改了/home/data/t210424/m/pcnolambda.sh的output的文件夹
peakcall0423nolambda和peakcall0427nolambda2都是以下脚本输出的
#!/bin/bash
align_dir="/home/data/t210424/m/alignment"
peak_dir="/home/data/t210424/m/peakcall0427nolambda2"
chrom_sizes="/home/data/t210424/Genome/Mouse/mm10.chrom.sizes"
mkdir -p "${peak_dir}"
# 获取所有有效染色体列表(提前处理,避免重复读取)
valid_chroms=$(cut -f1 "$chrom_sizes" | sort | uniq)
for i in {1..9}; do
macs2 callpeak \
-t "${align_dir}/RIP_${i}.sorted.bam" \
-c "${align_dir}/In_${i}.sorted.bam" \
-f BAMPE \
-g mm \
--keep-dup all \
--bw 500 \
--slocal 5000 \
--llocal 10000 \
--nomodel \
-q 0.05 \
--min-length 20 \
--max-gap 30 \
--extsize 100 \
--bdg \
--SPMR \
--outdir "${peak_dir}" \
-n "RIP_${i}_peaks" 2>&1 | tee "${peak_dir}/RIP_${i}_callpeak.log"
# 生成标准化后的 bedGraph 用于 IGV
macs2 bdgcmp -t ${peak_dir}/RIP_${i}_peaks_treat_pileup.bdg \
-c ${peak_dir}/RIP_${i}_peaks_control_lambda.bdg \
-m FE --o-prefix ${peak_dir}/RIP_${i}_FE
# 创建日志文件
log_file="${peak_dir}/bedgraph_to_bigwig.log"
echo "转换日志 $(date)" > "$log_file"
# 遍历所有 *_FE_FE.bdg 文件
for bdg_file in "${peak_dir}"/*_FE_FE.bdg; do
# 提取基础文件名(如 RIP_1_FE_FE)
base_name=$(basename "$bdg_file" .bdg)
echo "正在处理: $bdg_file" | tee -a "$log_file"
# Step 1: 添加染色体前缀到临时文件
tmp_bdg="${bdg_file}.tmp"
sed 's/^/chr/' "$bdg_file" > "$tmp_bdg"
# Step 2: 过滤无效染色体到最终文件
filtered_bdg="${peak_dir}/${base_name}_filtered.bdg"
awk -F'\t' 'BEGIN{OFS="\t"} NR==FNR {chrom[$1]=1; next} $1 in chrom' \
<(echo "$valid_chroms") \
"$tmp_bdg" > "$filtered_bdg"
# Step 3: 转换为 bigWig
bw_file="${peak_dir}/${base_name}.bw"
if bedGraphToBigWig "$filtered_bdg" "$chrom_sizes" "$bw_file" 2>> "$log_file"; then
echo "成功生成: $bw_file" | tee -a "$log_file"
# 清理临时文件
rm "$tmp_bdg" "$filtered_bdg"
else
echo "错误: $bw_file 转换失败,检查日志中的无效染色体" | tee -a "$log_file"
exit 1
fi
done
done