Python入門

Pythonとは

Pythonは、1991年にGuido van Rossum(グイド・ヴァンロッサム)氏により開発されたプログラミング言語です。C言語などのように機械に近い言語を「低級言語」と呼びますが、Pythonは比較的人間が理解しやすい「高級言語」に分類されます。Pythonは高級言語の中でも、特に習得が容易であるため、プログラミング初心者に向いている言語であると言われています。しかしながら、初心者だけが使用するプログラミング言語というわけではありません。Pythonは多くの企業で採用されており、実践的なプログラミング言語でもあります。特にデータ分析やWEBアプリ開発の分野で、よく利用されています。

Pythonを選ぶ理由

学習コストが低い

Pythonは比較的シンプルな文法ですので、学習にかかる時間も少なく済みます。

汎用的である

Pythonは他の言語と比べると多くの用途に利用できます。データ分析の分野に興味があるのであれば、Pythonが第一選択肢になるかと思います。WEBアプリ開発の分野でも多く利用されています。よく比較される言語であるPerlやRubyやPHPの場合、WEBアプリ開発には向いていますが、データ分析を本格的に行うには向いていません。

WEB上に情報が多い

これは、Pythonのユーザー数が多いことに起因します。ユーザー数が多ければ、その分、情報を発信する人が多くなります。

ライブラリが充実

ライブラリとは、よく使用される機能をひとまとまりにしたプログラムです。ライブラリが充実していれば、開発時間を短縮することが可能です。これも、Pythonのユーザー数が多いことに起因します。

バイオインフォマティクス解析でよく使う(かもしれない)gitコマンドのチートシート

現在いるブランチ名を表示する

$ git branch --contains

変更されたファイルすべてをaddする

$ git add -A

変更内容をコミット

$ git commit -m "comment"

masterブランチに移動

$ git checkout master

branch1ブランチを現在のブランチにマージ

$ git merge branch1

ローカルのmasterブランチをリモートのmasterにpush

$ git push origin master

ローカルのbranch1ブランチをリモートのmasterにpush

$ git push origin branch1:master

登録されているリモートリポジトリの確認

$ git remote -v

バイオインフォマティクス解析でよく使う(かもしれない)awkコマンドのチートシート

2列目の値を表示する

$ awk '{print $2}’ [ファイル名]

2列目の値が”foo”に一致する行だけを表示する

$ awk '$2 == "foo"' [ファイル名]

2列目の値の合計を表示する

$ awk '{a+=$2} END{print a;}' [ファイル名]

STARとhtseq-countでRNAseq解析を行う

データの準備

解析対象とするfastqファイルをダウンロードしていきます。
SRA Toolkitをインストールしていない場合には、以下のコマンドでインストールできます。

$ wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz
$ tar zxvf sratoolkit.current-ubuntu64.tar.gz

binフォルダにパスを通しておいてください。
以下のコマンドでSRR3485766のfastqファイルをダウンロードできます。

$ fastq-dump -A SRR3485766 --split-files 

これで、カレントディレクトリに SRR3485766_1.fastqとSRR3485766_2.fastqが作成されました。

マッピングの準備

参照配列をダウンロードします。

$ wget ftp://ftp.ensembl.org/pub/release-94/fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz
$ gunzip Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz
$ wget ftp://ftp.ensembl.org/pub/release-94/gtf/homo_sapiens/Homo_sapiens.GRCh38.94.gtf.gz
$ gunzip Homo_sapiens.GRCh38.94.gtf.gz

次に、STARのインデックスを作成していきます。
STARをインストールしていない場合には、以下のコマンドでインストールできます。

$ wget https://github.com/alexdobin/STAR/archive/2.6.1d.tar.gz
$ tar zxvf 2.6.1d.tar.gz

bin/Linux_x86_64にパスを通しておきます。
以下のコマンドでインデックスを作成します。

$ STAR \
  --runThreadN 8 \
  --runMode genomeGenerate \
  --genomeDir genome \
  --genomeFastaFiles Homo_sapiens.GRCh38.dna.primary_assembly.fa \
  --sjdbGTFfile Homo_sapiens.GRCh38.94.gtf 

マッピング

以下のコマンドで、マッピングをします。

$ STAR --genomeDir genome/ \
  --runThreadN 8 \
  --readFilesIn SRR3485766_1.fastq SRR3485766_2.fastq \
  --outSAMtype BAM SortedByCoordinate \
  --outFileNamePrefix sample1

リードカウント

HTSeqをインストールしていない場合には、以下のコマンドでインストールできます。

$ pip install numpy
$ pip install htseq

以下のコマンドで、リードカウントをします。

$ htseq-count -f bam -r pos -t exon \
  sample1Aligned.sortedByCoord.out.bam \
  Homo_sapiens.GRCh38.94.gtf \
  > result.txt

result.txtにリードカウント結果が得られました。