def create_log2fc_bigwigs(matrix, outdir, args):
# type: (pd.DataFrame, str, Namespace) -> None
"""Create bigwigs from matrix."""
call("mkdir -p {}".format(outdir), shell=True)
genome_size_dict = args.chromosome_sizes
input_columns = matrix[args.control]
input_rpkm_sum = (1e6 * input_columns / input_columns.sum()).sum(axis=1) / len(args.control)
input_rpkm_sum[input_rpkm_sum == 0] = 1
outpaths, data = [], []
for bed_file in matrix[args.treatment]:
outpath = join(outdir, splitext(basename(bed_file))[0] + "_log2fc.bw")
outpaths.append(outpath)
bed_column = matrix[bed_file]
bed_column = 1e6 * bed_column / bed_column.sum()
divided = bed_column / input_rpkm_sum
divided.loc[divided == 0] = 0.01
log2_fc_column = np.log2(divided)
data.append(log2_fc_column)
Parallel(n_jobs=args.number_cores)(delayed(_create_bigwig)(bed_column, outpath, genome_size_dict) for outpath, bed_column in zip(outpaths, data))
评论列表
文章目录