'rb')# 定义集合,避免reads重复,其大小就是unique reads的数量region_reads=set()count=0forreadinbam_file.fetch(chr,start,stop):region_reads.add(read.query_name)count=count+1# 打印结果print('{} unique reads in {}:{}-{}'.format(
获取bam文件特定区域的文件内容,返回一个迭代器,可以使用for循环获取数据 fetch(contig=None,# 基因组区域染色体的编号 strstart=None,# 基因组区域的开始(包括从 0 开始) intstop=None,# 基因组区域的结束(从 0 开始除外) intregion=None,tid=None,until_eof=False,# 若为True,按原文件顺序输出)print(f1....
Pysam操作BAM文件 Pysam包是一个处理基因组数据的python模块,它打包了htslib-1.3、samtools-1.3 和 bcftools-1.3的核心功能,...
通过index统计该BAM文件中在各个染色体上mapped/unmapped的reads个数 1bf.get_index_statistics() fetch函数定位特定区域 有时候我们并不需要遍历整一份BAM文件,我们可能只想获得区中的某一个区域(比如chr1中301-310中的信息),那么这个时候可以用Alignmen模块中的fetch函数: bam文件必须要index 1forrinbf.fetch('ch...
读取bam文件如下。 n1 = pysam.AlignmentFile('./atac_bam/scN1.pe.q10.sort.rmdup.bam', "rb") 为了能够读取特定位置的read,用samtools做index文件。 samtools index scN1.pe.q10.sort.rmdup.bam 然后用fetch的方法读取行。fetch返回的是一个迭代器(iterator),可以迭代读取内容。
bamfile=pysam.AlignmentFile("../barkeRTD/output.split.bam/B1/chr1H_part_1.bam",'rb')reads=bamfile.fetch("chr1H_part_1",102778300,102779978) reads是一个可以迭代的对象,可以依次访问每个read的情况,read的性质有 image.png image.png 可以探索的内容很多 ...
2.读取bam文件(pysam.AlignmentFile) bam是sam的二进制文件,因其占用空间少,所以都会使用bam进行存储和操作。 要读取bam文件,必须先创建一个AlignmentFile对象. for lineinsamfile: print(line) break 但顺序读取还不够灵活,我们有时需要随机读取(提示:sam不能随机读取),pysam的fetch方法提供了随机读取功能. ...
1.读写bam import pysam samfile = pysam.AlignmentFile(input_bam, "rb") #然后可以通过fetch方法来调取比对到某个区间对应的reads信息 for read in samfile.fetch('chr1', 100, 120): print read break samfile.close() 得到结果: EAS56_57:6:190:289:82 0 99 <<<7<<<;<<<8;;<7;4<;<;;...
对于samtools的封装,提现在操作bam文件上,既可以通过编程来读取bam文件中的内容,也可以实现samtools的调用;对tabix的封装,体现在利用索引来提取对应区域的record。 1. Fasta和Fastq Fasta和Fastq,也常称为fastx格式,对于读取而言,pysam提供了以下接口 >>> with pysam.FastxFile(fastq) as f: ...
在这个示例中,我们首先使用pysam.AlignmentFile函数打开一个BAM文件,然后使用fetch方法遍历每个测序记录。对于每个测序记录,我们遍历其查询质量值列表,并将质量值出现的次数保存在quality_counts字典中。最后,我们提取质量值和计数,并使用matplotlib库绘制了一个饼状图来展示质量值的分布情况。