NGSのdataやUnixコマンドなどほとんど触ったことがなかった初心者です。 Excel fileで持っているゲノム領域の情報をBEDフォーマットのfileにしたいのですが、やり方がわかりません。アドバイスいただけましたら幸甚です。 今、BEDToolsのcoverageBedのスクリプトを実行しようとしているのですが、read countを知りたい領域のBED fileがうまく出来ないために白紙の結果が得られてしまいます。具体的には、chrom chromStart chromEnd name score strandの順に並んだExcel fileをタブ区切りテキスト(.txt)で保存して名前を.bedに変えて領域のBED fileとして使ってみたのですが、BED fileとして認識されていないようでした。UCSCからとってきた遺伝子領域のBED fileではきちんとcoverageの結果が返ってくるので、.txt fileからBED fileをつくる方法がありそうなのは感じるのですが、どのようにしたらいいかわかりません。 助けて頂けたら幸いです。 ちなみに、以下の内容で領域を設定した場合を例に試しています。
よろしくお願いいたします。 touran |
coverageBedを実行する時に-sオプションを付けておりますか? 結果が、白紙になる理由は、下の原因では説明がつかないのですが、 問題の原因は、windows依存の改行コードに由来する可能性があります。 質問文中にあるデータをExcelに貼りつけて、もう1行テストレコードを作り、 "dataFromExcel.bed"という名前で保存して、実行してみました。 以下、windowsマシンのcygwin上でインストールしたBEDtoolsでcoverageBedを実行した結果です。 -aと-bは同じファイルを渡しています。
上記の結果は、coverageBedの本来の挙動からするとおかしな結果です。 上記の結果中のタブ文字(\tに変換)や、windows改行コードに含まれるCR(\rに変換される)などの 特殊文字を表示してみると以下のようになっています。
特殊文字の変換前の結果では、上記の"\r"のところから右側しか表示されていないことが分かるでしょうか。 windowsのExcelでタブ区切りテキストとしてファイルを保存すると改行コードの中に"\r"という特殊文字が 入ってしまうのですが、これは、BEDtoolsからすると文字として認識されてしまうので、 結果、strandの列が"+\r"であるとみなされてしまうのだと思います。この状態で-sオプションを効かせると、 同じstrandのデータが無いため、結果が0になったりする気がします。(おそらく) 以下のsedコマンド操作で、改行文字を置換かけたあと、同じ操作を実行した所、挙動としてまともな結果が得られました。
改行コードの変換のしかたについては、上記のsedをcygwin上で実行する他、 私は、"サクラエディタ"などのエディタで 正規表現置換で"\r"を空文字""に変換するなども良く使います。 この辺の情報も参考になります。 http://oshiete.goo.ne.jp/qa/856844.html 要はCR(キャリッジリターン)を除去できれば良いので選択肢はいろいろあるとは思います。 試してみてはどうでしょう。 nob_fj ♦さま 丁寧な回答ありがとうございました。strandの指定はしたりしなかったりしていましたが、結果は同じでしたので、エディタの問題であるというご指摘ごもっともです。 MacOSXのターミナルを使っているのですが、テキストはテキストエディットを使って編集していました。 それがいけなかったみたいです。おっしゃる通り、サクラエディタに似た”mi”というものを使って編集したらbed fileとして認識されて、無事カウントを得ることが出来ました。 大変助かりました。
(Apr 13 '12 at 17:25)
touran
|
私も改行コードが問題なのではないかと思います。 あ、すれ違いでちょうど解決したところだったようですね(^ ^); 回答日 Apr 13 '12 at 17:29 38brain 具体的な対処法を回答くださいましてありがとうございました。エディタを使うだけでいろいろ便利になることがわかり、個人的には非常にためになりました。
(Apr 13 '12 at 20:15)
touran
|