暗能星系

    • 登录
    • 搜索

    使用pysam处理bam文件

    刘茜
    1
    1
    7
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • I
      ice-melt 最后由 ice-melt 编辑

      安装依赖

      pip install pysam==0.19.1

      使用示例及说明

      # 读取文件
      with pysam.AlignmentFile(file, mode) as reader:
          for r in reader:
              # 可以通过循环遍历bam中的每一行
              print(r) # r中包含很多属性,具体可以通过调试查看
      

      注意:

      • 当文件为 .bam 文件时, mode= "rb"
      • 当文件为 .sam 文件时, mode= "r"
      • 当文件为 CRAM 文件时, mode= "rc"
      # 当文件包含索引时,可以读取特定区域
      for r in reader.fetch('chrM', 300, 310):
          print(r)
      
      # 获取比对到指定碱基的结果,且碱基质量>30
      for pileupcolumn in reader.pileup("chrM", 300, 301):
          for read in [al for al in pileupcolumn.pileups if al.alignment.mapq>30]:
              if not read.is_del and not read.is_refskip:
                  if read.alignment.pos + 1 == 301:
                      print(read.alignment.reference_name,\
                            read.alignment.pos + 1,\
                          read.alignment.query_sequence[read.query_position])
      

      注意:

      • pysam中碱基位置都是从0开始计算
      • read.alignment与前述r是相同的对象实例
      1 条回复 最后回复 回复 引用 0
      • First post
        Last post
      Powered by 暗能星系