Cworld matrix2insulation.pl
hicpro matrix 转换
python ~/hic-pro/HiC-Pro_2.11.4/bin/utils/sparseToDense.py -b abs.bed iced.matrix -o name -c -d ##perchr
for i in `ls chr*`;do cut -f 4- ${i} >${i}.matrix;done
image.png
|
image.png
|
---|
addHeader
for i in `ls 3.TAD.insulationScore/0.denseMatrix/chr*`;do n=${i##*\/}; n=${n%%_*}; awk '{print "HiC|hg19|"$1":"$2+1"-"$3}' ${i} >3.TAD.insulationScore/1.Header/${n}.txt;done
##需要在输出目录下进行
cd 2.addHeader/
perl Tools/1.hictools/Dekker-TAD_insulationScore/scripts/perl/addMatrixHeaders.pl -i ../../../3.TAD.insulationScore/0.denseMatrix/chrX.matrix --xhf ../../../3.TAD.insulationScore/1.Header/chrX.txt --yhf ../../../3.TAD.insulationScore/1.Header/chrX.txt
matrix2insulation
#需要在输出目录下进行
# TAD最小为200k
for i in `ls 3.TAD.insulationScore/2.addHeader/*/*gz`;do n=${i##*\/};n=${n%%_me*};sample=${n##*_};echo "cd 1.Hi-C/matrix/3.TAD.insulationScore/3.insulation/${sample}";echo "perl Tools/1.hictools/Dekker-TAD_insulationScore/scripts/perl/matrix2insulation.pl --is 1000000 --ids 200000 -i 1.Hi-C/matrix/${i} -v -o --nt 0.2 -o ${n} 2>${n}.log";done >3.TAD.insulationScore/3.insulation/0.run.sh ##is 大于ids ,且均为分辨率的整数倍
结果文件
image.png
1.insulation
image.png
2.bedGraph
image.png
-
insulation.boundaries
image.png
4.insulation.boundaries.bed (最后一列为boundary strength)
image.png
结果 TAD
perl 3.TAD.insulationScore/3.insulation/0.boundaries2bed.pl 3.TAD.insulationScore/3.insulation/${i}/${chr}*boundaries ${line} > 3.TAD.insulationScore/3.insulation/${i}/${chr}.TAD.bed
image.png
绘制TAD边界强度
for i in BLEO CTRL RAD;
do
echo "cat 3.TAD.insulationScore/3.insulation/${i}/chr*is1000000*boundaries.bed | cut -f 4,5 | grep -v \"track\" | cut -d \"|\" -f 3 | tr \":-\" \"\\t\" | sort -Vk 1 -k2,2n >3.TAD.insulationScore/5.TADboundryStrengh/${i}.TAD.bed";
echo "cat 3.TAD.insulationScore/3.insulation/${i}/chr*is1000000*bedGraph| grep -v \"track\" | sort -Vk 1 -k2,2n | grep -v \"chrY\" >3.TAD.insulationScore/5.TADboundryStrengh/${i}.insulationscore.bedgraph";
##TAD Center 上下游500k
echo "cat 3.TAD.insulationScore/5.TADboundryStrengh/${i}.TAD.bed | awk 'BEGIN{FS=OFS=\"\\t\"}{\$2=\$2-480000;\$3=\$3+480000}{print \$0}' > 3.TAD.insulationScore/5.TADboundryStrengh/${i}.boundary.bed";
echo "cat 3.TAD.insulationScore/5.TADboundryStrengh/${i}.boundary.bed | while read id; do echo \$id | tr \" \" \"\\t\" > 3.TAD.insulationScore/5.TADboundryStrengh/${i}_tmp;intersectBed -a 3.TAD.insulationScore/5.TADboundryStrengh/${i}_tmp -b 3.TAD.insulationScore/5.TADboundryStrengh/${i}.insulationscore.bedgraph -wa -wb|sort -k 6,6n | cut -f 8 | xargs | tr \" \" \"\\t\" >> 3.TAD.insulationScore/5.TADboundryStrengh/${i}.boundary.matrix;done";
done >3.TAD.insulationScore/5.TADboundryStrengh/0.run.sh