2014-10-23 3 views
0

나는 형식의 게놈 섬이있는 테이블과 MySQL 데이터베이스를 사용하고 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)') 숫자와 사용 나는 현재 내 파이썬 스크립트에서 섬 대 비 섬 지역을 선택하고

염기쌍 위치를 참조하십시오 "끝"

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) 

그러나, 나는 또한 정의 섬 해안 및 선반을 제공하기 위해이 쿼리를 수정하고 싶습니다 :

는 섬 해안 - 섬

에서 2000 개 염기쌍은 는

섬 선반 - 섬

에서 2,000 4,000 염기쌍
+0

유전체학에 속하지 않은 사람들에게 당신의 용어는 기하학과 해양학의 수수께끼 같은 혼합물입니다. 일반적인'line_string' 값에서'shore' 또는'shelf'를 얻는 방법을 이해하도록 도와 줄 수 있습니까? –

+0

@OllieJones : 섬, 해안 및 선반이라는 용어는 생물 학자가 CpG 밀집 지역 및 그 주변 환경에 사용하는 용어입니다. 그들은 실제 질문과 관련이 없습니다. 교차 게놈 영역을 검색하는 더 빠른 방법으로 기하학적 용어를 사용합니다. DNA의 영역을 x 축이 염색체 번호로, y 축이 염색체의 위치로 문자열로 상상해보십시오. 이 방법으로 교차 게놈 좌표를 쉽게 확인할 수 있습니다. – user2165857

답변

1

내가 해결 사용하여 문제점 : "섬"입니다 이런 식으로 아무것도에서

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 개 염기쌍의 다음 경우와 같은 표시됩니다 +/- 4000 염기쌍은 "그녀 lf ". 마지막으로 다른 모든 것은 "기타"로 간주됩니다. LIMIT 1을 사용하면 첫 번째로 발견 된 용어 만 반환됩니다.

관련 문제