我们用bwa对一个样本的reads对大肠杆菌基因组进行mapping,获得reads在大肠杆菌参考基因组上的分布情况,比如平均覆盖度、覆盖度分布图等。
首先下载大肠杆菌基因组ncbi数据库下载就不展示了
下载完后解压缩
unzip ecoli.zip #得到下面一些文件
Archive: ecoli.zip
inflating: README.md
inflating: ncbi_dataset/data/data_summary.tsv
inflating: ncbi_dataset/data/assembly_data_report.jsonl
inflating: ncbi_dataset/data/GCA_000005845.2/GCA_000005845.2_ASM584v2_genomic.fna
inflating: ncbi_dataset/data/GCF_000005845.2/GCF_000005845.2_ASM584v2_genomic.fna
inflating: ncbi_dataset/data/dataset_catalog.json
这是一个包含了关于大肠杆菌(Escherichia coli)基因组数据集的压缩文件,包括README.md说明文件、data_summary.tsv数据摘要表格、assembly_data_report.jsonl装配数据报告、以及两个目录GCA_000005845.2和GCF_000005845.2。
其中,GCA_000005845.2和GCF_000005845.2分别是大肠杆菌K-12 substr. MG1655基因组的两个不同版本,包含了该基因组的fasta格式序列文件(GCA_000005845.2_ASM584v2_genomic.fna和GCF_000005845.2_ASM584v2_genomic.fna)。dataset_catalog.json是该数据集的目录索引文件,记录了各个文件的位置和相关信息
我们选择一个作为大肠杆菌的基因组文件
#建立索引
bwa index GCA_000005845.2_ASM584v2_genomic.fna
#开始mapping,需要质控,去宿主的reads,还要去除pcr重复,可见我之前的分享。
bwa mem -t 20 /mnt/h/db/ecoli/ncbi_dataset/data/GCA_000005845.2/GCA_000005845.2_ASM584v2_genomic.fna Lib-Z3-A12_L2.1.fq.gz Lib-Z3-A12_L2.2.fq.gz > ECOLI.sam
#SAM转bam
samtools view -bS ECOLI.sam | samtools sort -o ECOLI.sam
#使用samtools的depth命令来计算每个位置的覆盖度,得到reads的分布情况:
samtools depth ECOLI.sam > coverage.txt
#可以使用统计软件或脚本来进一步分析coverage.txt文件,以获得reads在参考基因组上的分布情况,比如平均覆盖度、覆盖度分布图等。
import matplotlib.pyplot as plt # 读取数据文件 data = [] with open('D:/文献重要分享/coverage.txt', 'r') as file: for line in file: line = line.strip().split('\t') data.append((int(line[1]), int(line[2]))) # 提取位置和覆盖率数据 positions = [d[0] for d in data] coverages = [d[1] for d in data] # 绘制图表 plt.figure(figsize=(10, 5)) plt.plot(positions, coverages, marker='o', linestyle='-') plt.xlabel('Genomic Position') plt.ylabel('Coverage') plt.title('Genomic Coverage') plt.grid(True) plt.show()
可以先画成这样,之后可以再调整。
bwa,blast等软件都可以mapping,而且结果有很大差距,之后,可以实验一下。