ピーク内の配列のなかから既知のDNAモチーフ配列を発見する

発見されたモチーフ配列をDNA配列に対して検索する方法を述べる。これを行うモチベーションはいくつか考えられるが、主な理由は、発見したモチーフがどのピークに含まれているか、いくつ含まれているかを知る、ということである。これによって、発見したモチーフ配列とピーク/遺伝子との関係を理解することができる。この方法は、既知のモチーフ配列を収集したデータベースの PWM をゲノム配列に検索する方法と全く同じである。

> hit.fwd <- matchPWM(oct4.motif.pwms$m1, oct4.seqs[[4]])
> hit.rev <- matchPWM(reverseComplement(oct4.motif.pwms$m1), oct4.seqs[[4]])
## スコアを計算する
> PWMscoreStartingAt(oct4.motif.pwms$m1, subject(hit.fwd), start(hit.fwd))
> PWMscoreStartingAt(oct4.motif.pwms$m1, subject(hit.rev), start(hit.rev))

matchPWM はフォワード鎖のみ検索することに注意。配列を reverseComplement() で逆相補鎖に変換する必要がある。hit.rev はヒットがないので、PWMscoreStartingAt() の戻り値は numeric(0) になる。

複数のピーク内DNA配列に対して、まとめて検索するには以下のようにする

oct4.motif.search.fwd <- lapply(                                               
  oct4.seqs,                                                                   
  function(x) {                                                                
    matchPWM(oct4.motif.pwms$m1, x)                                     
  }                                                                            
)                                                                              
oct4.motif.search.fwd.score <- lapply(
  oct4.motif.search.fwd,
  function(hits) {
    PWMscoreStartingAt(
      oct4.motif.pwms$m1,
      subject(hits),
      start(hits)
    )
  }
)