def get_chrom_length(self, chrom):
"""
Extract chromosome length from fasta.
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
"""
fastafile = pysam.FastaFile(self.filepath)
lengths = dict(zip(fastafile.references, fastafile.lengths))
try:
lens = lengths[chrom]
fastafile.close()
return lens
except:
self.logger.error(
"{} not present in {}. Exiting.".format(
chrom, self.filepath))
logging.shutdown()
raise RuntimeError(
"Chromosome name not present in fasta. Exiting")
评论列表
文章目录