Matrix Market Format
Matrix Market格式是一种标准的文本文件格式,用于存储和描述稀疏和稠密矩阵。在稀疏矩阵的情况下,每个非零元素由其行索引、列索引和值描述。
打开压缩文件进行写入:
out_mtx = gzip.open(os.path.join(out_dir, "digital_expression_matrix.mtx.gz"), "wb")
使用 gzip 打开一个文件用于写入,文件名为 digital_expression_matrix.mtx.gz。.gz 扩展名表示这是一个gzip压缩的文件。
写入Matrix Market文件头:
out_mtx.write(b'%%MatrixMarket matrix coordinate integer general\n%\n')
这行代码写入Matrix Market格式的标准文件头。它指示该文件是一个坐标格式的整数矩阵。
写入矩阵维度信息:
out_mtx.write(bytes("{}\t{}\t{}\n".format(len(gene_list), len(bc_list), total_cnt), "UTF-8"))
这行代码写入矩阵的维度信息,包括行数(基因数量)、列数(条形码数量)和非零元素的数量(total_cnt)。
写入矩阵数据:
for ge in gene_list:
for bc in gene_count_dict[ge]:
out_mtx.write(bytes("{}\t{}\t{}\n".format(probe_dict[ge], bc_dict[bc], gene_count_dict[ge][bc]), "UTF-8"))
这个循环遍历每个基因和相应的每个条形码,并将每个基因和条形码的UMI计数写入文件。每行包含三个元素:基因的索引、条形码的索引和UMI计数。
关闭文件:
out_mtx.close()
写入完成后,关闭文件。