Sg = 1.0 - (number of sequences with a gap / n)
정의를 이렇게 해 놓으니 갭이 많을수록 gap score는 작아진다. 상식적으로 생각해도 이해가 잘 안된다. 갭이 많으면 gap score도 크게 나타나는 것이 자연스럽지 않을까? 어쩌면 'score가 커야 좋은 것'이라는 인식에 맞추어서 이렇게 정의를 내렸는지도 모른다. 이를 트리밍에 적용하려면 'trimal -gt 0.190'과 같이 적용한다. 즉, gap score가 최소한 0.19가 되지 않는 컬럼은 MSA에서 잘라(트림)내라는 뜻이다. 100개의 시퀀스 중에서 19개 혹은 그 이상이 염기를 제시하고 있어야 트리밍을 당하지 않는다는 것이다. '-nogaps'는 '-gt 1'과 동등하며, 어느 한 시퀀스라도 갭이 있으면 그 컬럼을 제거한다는 뜻이다. 반대로 '-noallgaps'는 모든 염기서열이 갭으로만 구성된 컬럼을 제거하게 된다.
CipKIT에서는 gappyness라는 지표를 쓴다. gapyness의 정의는 다음과 같다.
Gappyness = number of gaps / entries in alignment
갭이 많으면 gappyness도 커진다. Gap score보다는 직관적으로 이해하기 더 좋은 지표이다. 그리고 gap score + gappyness = 1.0이 됨을 쉽게 알 수 있다. ClipKIT에서 gappyness를 기준으로 트리밍을 하려면 'clipkit -m gappy -g 0.8'이라고 옵션을 제공하면 된다. 기본 gappyness는 0.9이다.
정해진 threshold 값을 옵션으로 주지 않고 프로그램이 스스로 결정하게 만들 수도 있다. CipKIT에서는 smart-gap이라는 방법이 이에 해당한다. 이를 사용하면 일정한 값을 주어서 실행한 것보다 트리밍한 뒤 남는 MSA의 길이가 더 길다고 한다.
ClipKIT의 개발자에게 경의를 표하는 바이다.
댓글 없음:
댓글 쓰기