主要提及summary文件的生成过程
summary文件具体内容:
第1列). Read Name 名称
第2列). 染色体
第3列). 位置
第4列). 方向
第5列). 染色体
第6列). 位置
第7列). 方向
首先由hicexplorer中hicBuildMatrix建立矩阵时,参数-outBam生成一个bam文件
Output bam file to process. Optional parameter. A bam file containing all valid Hi-C reads can be created using this option. This bam file could be useful to inspect the distribution of valid Hi-C reads pairs or for other downstream analyses, but is not used by any HiCExplorer tool. Computation will be significantly longer if this option is set.
由此bam文件生成CscoreTool所需要的summary文件
首先将成对数据合并为一行
#!/usr/bin/python
# -*- coding: UTF-8 -*-
old = open('/home/panda/桌面/new_m1-1.bed','r')
new = open('/home/panda/桌面/new_m1-1.bed','w')
line0 = old.readline()
while line0:
line = line0.rstrip().split('\t')
line1 = old.readline().rstrip().split('\t')
line2 = (line[0] + '\t' + line[1] + '\t' + line[2] + '\t' + line[3] + '\t' + line[4] + '\t' + line[5] + '\t' + line1[0] + '\t' + line1[1] + '\t' + line1[2] + '\t' + line1[3] + '\t' + line1[4] + '\t' + line1[5] + '\n')
new.write(line2)
line0 = old.readline()
其次提取summary文件所需信息
#!/usr/bin/python
# -*- coding: UTF-8 -*-
old = open('/home/panda/桌面/new_m1-1.bed','r')
new = open('/home/panda/桌面/new_new_M1-1.summary','w')
line0 = old.readline()
while line0:
line = line0.rstrip().split('\t')
line1 = (line[3] + '\t' + line[0] + '\t' + line[1] + '\t' + line[5] + '\t' + line[6] + '\t' + line[7] + '\t' + line[11] + '\n')
new.write(line1)
line0 = old.readline()
2、此外windows.bed文件的生成(该文件用于指定要分析的基因组窗口大小)
下载CscoreTool文件夹中有generateEqualLengthBed.cpp文件
对generateEqualLengthBed.cpp执行命令
$ g++ -o generateEqualLengthBed generateEqualLengthBed.cpp
生成一个可执行文件generateEqualLengthBed,
###执行以下命令生成windows.bed
###对于常见物种chrSizes.txt(染色体大小文件)可以直接下载,直接执行下面的命令
$ generateEqualLengthBed <chrSizes.txt> <out.bed> <windowsize>
###不常见的物种,chrSizes.txt可以由samtools生成的**reference.fasta.fai**文件代替
###执行以下命令
$ samtools faidx reference.fasta ##会生成reference.fasta.fai文件
$ generateEqualLengthBed <reference.fasta.fai> <out.bed> <windowsize> ##生成windows.bed文件
番外,文件中特定列的内容替换
###将第一列内容替换为:chr1
#!/usr/bin/python
# -*- coding: UTF-8 -*-
old = open('/home/panda/桌面/M2.bedGraph','r')
new = open('/home/panda/桌面/new_M2.bedGraph','w')
line0 = old.readline()
while line0:
line = line0.rstrip().split('\t')
a = 'chr1'
line[0] = a
line1 = (line[0] + '\t' + line[1] + '\t' + line[2] +'\t' + line[3] + '\n')
new.write(line1)
line0 = old.readline()
网友评论