如何缓存读取?

use*_*109 14 python caching bioinformatics samtools pysam

我正在使用python/pysam来分析测序数据.在其教程(pysam - 读取和编写SAM文件的界面)中,命令配合说:

'这种方法对于高吞吐量处理来说太慢了.如果需要使用其配合处理读取,则从读取名称的排序文件开始工作,或者更好的是缓存读取.

你会如何"缓存读取"?

nox*_*fox 9

缓存是加速长时间运行的典型方法.它为了计算速度而牺牲了内存.

假设你有一个函数,给定一组参数总是返回相同的结果.不幸的是,这个功能非常慢,你需要调用它相当多的时间来减慢你的程序.

您可以做的是存储有限数量的{parameters:result}组合,并在使用相同参数调用函数时跳过其逻辑.

这是一个肮脏的技巧,但非常有效,特别是如果参数组合与功能速度相比较低.

在Python 3中,有一个用于此目的的装饰器.
在Python 2中,可以提供帮助,但您需要更多的工作.