python - 在 MySQL 查询中选择相交和侧翼区域

标签 python mysql mysql-python

我正在使用一个 mysql 数据库,其中包含一个带有基因组岛的表,格式如下:

+----+-------+----------+----------+-----------------------------------------------+
| id | chrom | start    | end      | line_string                                   |
+----+-------+----------+----------+-----------------------------------------------+
|  1 |     1 | 36568608 | 36569851 |                 ??    ?o?A      ??   ?p?A       |
|  2 |     1 | 82313020 | 82313491 |                 ??   ????A      ??   L??A         |
+----+-------+----------+----------+-----------------------------------------------+

线串的格式为:GeomFromText('Linestring(chrom start, chrom end)') “开始”和“结束”的数字指的是碱基对位置

我目前正在我的 python 脚本中选择岛屿与非岛屿区域,使用:

SELECT 'Island' as Island FROM islands 
WHERE MBRIntersects(GeomFromText('Linestring(%d %d, %d %d)'), line_string) 
UNION ALL SELECT 'non-Island' LIMIT 1 % (Chr, Start, Chr, End)

但是,我想修改此查询,将岛屿海岸和大陆架定义为:

岛屿海岸 - 来自岛屿的 2,000 个碱基对

岛屿架 - 来自岛屿的 2,000 至 4,000 个碱基对

最佳答案

我使用以下方法解决了这个问题:

SELECT 'Island' as Island FROM methylation.islands FORCE INDEX (locations)
            WHERE MBRIntersects(GeomFromText('Linestring(%d %d, %d %d)'), line_string) 
        UNION ALL SELECT 'Shore' FROM methylation.islands FORCE INDEX (locations) 
            WHERE MBRIntersects(GeomFromText('Linestring(%d %d, %d %d)'), line_string)
        UNION ALL SELECT 'Shelf' FROM methylation.islands FORCE INDEX (locations) 
            WHERE MBRIntersects(GeomFromText('Linestring(%d %d, %d %d)'), line_string)
        UNION ALL SELECT 'Other' LIMIT 1 
% (Chr, Start, Chr, End, Chr, Start-2000, Chr, End+2000, Chr, Start-4000, Chr, End+4000)

以这种方式,任何“岛屿”都会被列出,接下来如果它距岛屿 +/- 2,000 个碱基对,它会被列为“海岸”,接下来如果它是 +/- 4,000 个碱基对,它会被列为“海岸” “架子”。最后,其他一切都被视为“其他”。通过使用LIMIT 1,仅返回第一个找到的术语。

关于python - 在 MySQL 查询中选择相交和侧翼区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26532188/

相关文章:

python正则表达式替换匹配字符串的一部分

python - 串口数据

python - groupby 包含列表的列

mysql - 有人可以告诉我这个查询有什么问题吗?

python - 如何使用 MySQLdb 从 MySQL 创建 JSON 结构数组并控制 JSON 风格化字段名称?

python - pip install mysql-python 失败并出现环境错误 : mysql_config not found

python - Python 可以实例化一个变量并同时返回它的值或引用吗?

php - 捕获组中的正则表达式括号

python - 如果我想要查询 "date-1",如何使用Python2.7从MYSQLdb查询数据?

php - 可移植版本控制?