我的Python项目的算法和数据结构

ddalg的Python项目详细描述


ddalg公司

我的Python项目的算法和数据结构。在

Build Status

区间树

区间树是一种数据结构,用于保存区间,并允许有效地找到与给定区间或点重叠的区间。阅读更多关于Wikipedia。在

实施说明

此实现使用半开区间,其中不包括begin坐标。半开区间用于例如BED genomic format。在

当前的实现需要在每个insert之后重新生成树,因此在read/write方式中使用该树时效率不高。在

用法

  • 在扩展Interval时实现自定义间隔对象。需要重写两个属性:
    • begin从0开始(排除)间隔的开始坐标
    • end-0基(包括)区间的结束坐标
      fromddalg.modelimportIntervalclassYourInterval(Interval):def__init__(self,begin:int,end:int):self._begin=beginself._end=end# anything else@propertydefbegin(self):returnself._begin@propertydefend(self):returnself._end
  • 创建间隔的集合并将其存储在间隔树中: ^{pr2}$ 在
  • {cd5>查询^:
    • 使用基于1的position
      itree.search(1)

      returns (0,3)

    • 使用半开interval坐标
      itree.get_overlaps(0,1)

      returns (0,3), effectively the same query as above

    • 对于所需覆盖范围最小的间隔
      itree.fuzzy_query(0,1,coverage=.90)

      return intervals with >=.9 overlap with respect to query coordinates

    • 对于具有最小jaccard索引的区间
      itree.jaccard_query(0,1,min_jaccard=.90)

      return intervals having jaccard_index>=.9 with respect to query coordinates

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置