시퀀싱 데이터에서 3′ 어댑터 서열 제거

small RNA 시퀀싱에서는 리드보다 RNA가 더 짧아서, 5′ 끝부터 읽을 경우에는 3′ 어댑터 시퀀스가 나오고, 프라이머를 뒤집어서 3′ 끝부터 읽으면 5′ 시퀀스가 나올 수 밖에 없다. small RNA가 아니더라도 CLIP에서는 보통 바인딩 사이트를 정확히 알기위해 짧게 쳐내서 시퀀싱하는 경향이 있어서, 보통 30nt 안쪽으로 들어오는 편이라 시퀀싱한 뒤에 어댑터 제거가 꼭 필요하다.

그렇지만 역시나 PCR 오류, 시퀀싱 오류, 어댑터 불량 등등 수많은 잡음때문에 역시 단순 문자열 비교로는 잘 안 통한다. 그래서 정규식을 쓰기도 하는데 영 속도가 만족스럽지 못하고, 모든 자리에서 어댑터 시퀀스랑 비교해서 미스매치를 세는 등의 방법(HTSeq 패키지)을 쓰기도 하는데, 갭을 전혀 허용하지 않아서 어댑터 합성 품질이 안 좋은 경우는 놓치는 것이 너무 많아서 결과를 보면 답답~하다.

최근 많이 쓰이는 방법으로 Needleman-WunschSmith-Waterman을 섞어서 어댑터의 5′ 끝에게는 지역정렬처럼 아무데서나 시작하게 하고, 3′ 끝에는 전체정렬처럼 끝까지 가게 하는 것이 있다. 그런데, 소프트웨어는 홈페이지에 오거나, 저자에게 말하면 준다고 다들 써 놓고서는 정작 홈페이지에 가면 아무 것도 없고, 메일 보내면 묵묵부답이라, 1년 넘게 정규식으로 불쌍하게 쓰다가, 결국 큰 마음먹고 토요일 밤을 투자했다. +_+

소스코드 받기 (파이썬용 C 확장 모듈)

실제로는 affine gap penalty를 써서 행렬이 3개지만, 그냥 linear gap penalty를 쓴 경우라고 하고 행렬을 예를 들어 보면,

  • 시퀀스 리드: CCAGTCCA
  • 어댑터 시퀀스: CCAG
  • 점수: match 2, mismatch -3, gap penalty -3

3' 어댑터 떼기Watch movie online The Transporter Refueled (2015)

이렇게 하면 짠~

3 thoughts on “시퀀싱 데이터에서 3′ 어댑터 서열 제거

  1. 찬석: 크.. 맨날 머리를 굴리는 종류의 것을 하지는 않아.. ㅋㅋ;;; C가 이렇게 재미있는지 한참 안 해보니 알겠네 ^_^;;

    yong27: 오… 일반화 하기엔 좀 번거로워서 -ㅇ-;;;;;

Leave a Comment