metamaker.py 文件源码

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

项目:metlab 作者: norling 项目源码 文件源码
def _make_quality(self, seq):
        """
        Simulates read quality from an error function.
        Qualities are in Sanger Fastq format (Phred+33), i.e. quality is 
        represented by an integer from 0 to 93, represented by the ascii 
        characters 33-126. 
        Errors are represented as 10^-0.0 (random base) to 10^-9.3 (super 
        accurate).

        ref: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2847217/?tool=pubmed

        This might be re-written in the future using Biopythons QualityIO,
        http://www.biopython.org/DIST/docs/api/Bio.SeqIO.QualityIO-module.html
        """

        output = ""
        for i, q in enumerate(seq):
            if len(self.quality_cache) <= i:
                f = numpy.poly1d(self.quality_mean)
                self.quality_cache += [f(len(self.quality_cache))]
            if len(self.variance_cache) <= i:
                v = numpy.poly1d(self.quality_var)
                self.variance_cache += [v(len(self.variance_cache))]

            quality = self.quality_cache[i]
            var = numpy.random.normal(0, numpy.sqrt(self.variance_cache[i]))
            if not numpy.isnan(var):
                quality += var
            quality = min(93, max(int(quality), 0))
            output += "%c" % (33+quality)

        return output
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号