bam.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:XYalign 作者: WilsonSayresLab 项目源码 文件源码
def get_chrom_length(self, chrom):
        """
        Extract chromosome length from BAM header.

        Parameters
        ----------

        chrom : str
            The name of the chromosome or scaffold.

        Returns
        -------

        length : int
            The length (integer) of the chromsome/scaffold

        Raises
        ------

        RuntimeError
            If chromosome name not present in bam header

        """
        bamfile = pysam.AlignmentFile(self.filepath, "rb")
        lengths = dict(zip(bamfile.references, bamfile.lengths))
        try:
            lens = lengths[chrom]
            bamfile.close()
            return lens
        except:
            self.logger.error(
                "{} not present in bam header for {}. Exiting.".format(
                    chrom, self.filepath))
            logging.shutdown()
            raise RuntimeError(
                "Chromosome name not present in bam header. Exiting")
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号