2019年12月18日水曜日

ディレクトリの移動とパス

3年生に最初の解析を教えている際に、ディレクトリの移動やパス指定でつまづいていることがわかった。コマンドライン操作が得意な人は色々と使いこなしていると思うのだが、とりあえず以下の点を知っていれば困らないだろうということをまとめる。

pwd   :   自分がいるディレクトリを表示する

cd /path/to/dir   :   /path/to/dirに移動する

cd   :   ホームディレクトリに移動する

cd ..   :  一つ上のディレクトリに移動する
 
cd ../..   :   2つ上のディレクトリに移動する

cd ~   :   ホームディレクトリに移動する

cd ~/Desktop   :   ホームディレクトリ下のDesktopに移動する

cd -   :   直前にいたディレクトリに移動する

.   :   カレントディレクトリ
..   :   一つ上のディレクトリ。ディレクトリは階層構造になっていて、パスの上の方は一意に決まる
~   :   ホームディレクトリ

macだと、テキストエディタのようなアプリケーションの上だとか下にパスを示してくれていることが多い。例えば、atomのウィンドウの上っ側にはホームディレクトリからのパスが表示されている。

また、左側のProjectに表示されているファイル名を副ボタンクリックして、ファイルのパスをコピーすることができる。

 そのほかのテキストエディタでもパスが表示されている。


macのFinderでも、パスを簡単にコピーすることができる。 finderメニューバーの「表示」から、「パスバーを表示」を選択すると、下側にパスが表示される。
アイコンを副ボタンクリックすると、'190926_1_par2.shのパス名をコピー'といったオプションが選択でき、簡単にfinder側に表示されたファイルのパスをコピーできる。


2019年12月11日水曜日

fastaファイルを取り扱う

大量にデータを含むfastaファイルを取り扱う必要があった。長さに応じて選別したり配列を取り出したりしたいのだが、そういえば何使えばよかったかなと思った。自分で最初から書いてもそこまで難しくはないだろうが、明らかに車輪の再発明っぽいしバグも紛れてしまうだろう。binの中をのぞいて、ucscのプログラムがたくさん入っている中から、faSizeなど使えそうなものを探した。

http://hgdownload.soe.ucsc.edu/admin/exe/macOSX.x86_64/README.txt

 また、fastaとfastqを扱う多機能ツールであるseqkitも以前インストールしていた。

https://bioinf.shenwei.me/seqkit/usage/

 どちらも多機能で、とりあえず使いたい機能を使うためにどのオプションを使おうかというところで悩む感じだが、思いついた時にパイプラインとして記録しておいたり、何がしかwrapper scriptを作っておいたらいいかもしれない。

色々やり方があるだろうし、もっと良いやり方もあると思うが、とりあえず思いついたものを記録していきたい。

(1)fastaやfastqを長い方から表示する

簡単な方法として、seqkitを使う。
 seqkit sort --by-length --reverse sequence.fa

ファイルに保存する場合は、
seqkit sort --by-length --reverse sequence.fa > result.fa

上だと全部が表示されるが、一定以上の長さのものだけ表示したい場合は、
seqkit sort --by-length --reverse sequence.fa | seqkit seq --min-len 500
seqkit sort --by-length --reverse sequence.fa | seqkit seq --min-len 500 > result.fa

これで、ある一定以上の長さの配列について、長いものから見て検討することができる。

(2)配列の名前と長さだけ表示する

faSize -detailed sequence.fa

この場合、自動的にseq IDだけになるようだ。

同じことをseqkitでやりたい場合
seqkit fx2tab --length --name --only-id sequence.fa

長さでソートされ、一定以上の長さの配列だけにして、配列長を表示したい場合
seqkit sort --by-length --reverse sequence.fa | seqkit seq --min-len 500 | seqkit fx2tab --length --name --only-id


思いついた都度、続く

(3) fastqファイルをfastaファイルに変換する

seqkitを使う場合、
seqkit fq2fa input.fastq

スレッドの数を増やす場合、
seqkit fq2fa --threads 8 input.fastq

ファイルを出力する場合
seqkit fq2fa input.fastq --out-file output.fasta

16スレッドを使い、fastqファイルをfastaファイルとして長さでソート、50Kb以上の配列を出力する場合、
seqkit fq2fa --threads 16 input.fastq | seqkit seq --min-len 50000 | seqkit sort --by-length --reverse
seqkit fq2fa --threads 16 input.fastq | seqkit seq --min-len 50000 | seqkit sort --by-length --reverse --out-file output.fa

 

(4) seqkitのグローバルフラッグ

Global Flags:
      --alphabet-guess-seq-length int   length of sequence prefix of the first FASTA record based on which seqkit guesses the sequence type (0 for whole seq) (default 10000)
      --id-ncbi                         FASTA head is NCBI-style, e.g. >gi|110645304|ref|NC_002516.2| Pseud...
      --id-regexp string                regular expression for parsing ID (default "^(\\S+)\\s?")
  -w, --line-width int                  line width when outputing FASTA format (0 for no wrap) (default 60)
  -o, --out-file string                 out file ("-" for stdout, suffix .gz for gzipped out) (default "-")
      --quiet                           be quiet and do not show extra information
  -t, --seq-type string                 sequence type (dna|rna|protein|unlimit|auto) (for auto, it automatically detect by the first sequence) (default "auto")
  -j, --threads int                     number of CPUs. (default value: 1 for single-CPU PC, 2 for others) (default 2)

 
思いついた都度、続く

2019年12月10日火曜日

qiita advent calendarにバイオインフォマティクスやメタゲノミクスのカレンダー

プログラミングやコンピュータ関係のtipsを共有するためのプラットフォームサイトでQiitaというのがあり、よく見ている。

https://qiita.com
Qiitaは、プログラマのための技術情報共有サービスです。 プログラミングに関するTips、 ノウハウ、メモを簡単に記録 & 公開することができます。

単純に困った時に調べるために使うことも多いが、ぼーっと見て回って面白い記事を見つけて楽しむことも多い。Qiitaは12月にクリスマスまでの日数をカウントダウンするアドベントカレンダーのサイトを設置している。

https://qiita.com/advent-calendar/2019
Qiita Advent Calendarとは、クリスマスまでの日数をカウントダウンするアドベントカレンダーの習慣にもとづいて毎年12月1日から25日までの期間限定で展開される記事投稿イベントです。毎年、Qiitaとクリスマスを最高に盛り上げる一大イベントとなっております。興味のあるトピックのカレンダーに参加し、この年末を最高に盛り上がる年末にしていきましょう🎉豪華景品がもらえるスポンサーカレンダーもありますので、ぜひ奮ってご参加ください🎄

12/1から12/25まで参加者がトピックのカレンダーを作って、記事をアップしていくというもので、プログラミング言語やデータベース、アプリケーションなどのガチIT系のカレンダーに加えて、学術というカテゴリーのカレンダーも30ほど作られている。今見てみると300人を超える参加者がいるようだ。学術にカテゴライズされるカレンダーにはDeep Learningや機械学習などのコンピュータサイエンス系のものに混じって、メタゲノムやバイオインフォマティクスなど、生物系のトピックスも立っており面白い。

例えば、メタゲノムの12/3の記事は「なぜメタゲノム解析するのか?」

https://qiita.com/i-za-world/items/6b448b52703a23e14a1b
メタゲノマーによるメタゲノマーの為のアドベントカレンダーではありますが、アドベントカレンダー初日なので、ここにいざわーるど解釈の「メタゲノム解析って何?」的なポエム記事を書いておきます。
バイオインフォマティクスのカレンダーは人気らしく、既に全ての日が埋まっているみたいだ。

https://qiita.com/advent-calendar/2019/bioinfo
バイオインフォマティクス(生命情報科学)分野のアドベントカレンダーです。分野の定義など細かいことは問いません。アルゴリズム、ツールの使い方、データベース関係、可視化、計算機の運用、バイオインフォに役立つライブラリやプログラミングテクニック、ワークフローエンジンなどなど、あなたなりのバイオインフォマティクスの知見を共有してください。


12/9の記事は「細菌のゲノムを一つだけ渡された時、どうするか」

https://qiita.com/xvtyzn/items/49cf51b6e6fee9df41af

細菌ゲノムの解析に使うツールなどの説明がされている。細菌ゲノムとかメタゲノムは触ったことがないので知らないツールが多い。色々解説してもらえているので、一通り見てみたいなと思った。

12/23にはナノポアの解析ツールの記事が予定されているようで、これもぜひ読んでみたい。

全然生物とは関係ないが、天文学というカレンダーがある。

https://qiita.com/advent-calendar/2019/tenmongaku

12/3の記事に「赤外線天文衛星「あかり」などの望遠鏡によって撮影された写真をいじってみたり」があり、なんか面白そう。写真も取得できるらしく、丁寧にスクリプトが書かれているので、時間ある時やってみたい。なかなか時間ないけど。