yNagaokaのブログ

このブログはNGS解析初心者がつまずいた部分と解決方法をまとめた覚書のようなものです。

samplelist.txtの作製方法に関しての覚書

初めに

Churrosを用いてChIP-seq解析を行うにはsamplelist.txtとsamplepairlist.txtが必要になります。少ないサンプル数であれば手動でリストを作製してもよいのですが、多いと手動だとしんどくなります。そこで効率よくsamplelist.txtを作製する方法をまとめようと思います。

 

今回はHuman iPSCとその親株細胞 (線維芽細胞[F]、内皮細胞[EC]、心筋前駆細胞[CPC])を用いてプロモーターとエンハンサーのマーカー(H3K4me1、H3K4me3、H3K27ac、H3K27me3の)のChIP-seq(n=84)解析を行った研究を例にします。

Churros

https://churros.readthedocs.io/en/latest/content/Tutorial.html

Reference

Zhao MT, Shao NY, Hu S, Ma N et al. Cell Type-Specific Chromatin Signatures Underline Regulatory DNA Elements in Human Induced Pluripotent Stem Cells and Somatic Cells. Circ Res 2017 Nov 10;121(11):1237-1250. PMID: 29030344

それぞれのリストの形式は下記

samplelist.txt (sampleとfastqfileの間はTab区切り)

samplename     fastqfile(rep1) ※rep2があれば,で区切って記載
HepG2_H2A.Z    fastq/SRR227639.fastq.gz,fastq/SRR227640.fastq.gz
HepG2_H3K4me3  fastq/SRR227563.fastq.gz,fastq/SRR227564.fastq.gz
HepG2_H3K27ac  fastq/SRR227575.fastq.gz,fastq/SRR227576.fastq.gz
HepG2_H3K27me3 fastq/SRR227598.fastq.gz,fastq/SRR227599.fastq.gz
HepG2_H3K36me3 fastq/SRR227447.fastq.gz,fastq/SRR227448.fastq.gz
HepG2_Control  fastq/SRR227552.fastq.gz,fastq/SRR227553.fastq.gz

samplepairlist.txt (各項目は , 区切り)

ChIP-samplename,Input-samplename,prefix,peak mode
HepG2_H2A.Z,HepG2_Control,HepG2_H2A.Z,sharp
HepG2_H3K4me3,HepG2_Control,HepG2_H3K4me3,sharp
HepG2_H3K27ac,HepG2_Control,HepG2_H3K27ac,sharp
HepG2_H3K27me3,HepG2_Control,HepG2_H3K27me3,broad
HepG2_H3K36me3,HepG2_Control,HepG2_H3K36me3,broad

まず論文からGEOのAssecion IDを探します。GSE97033にアクセスしRaw dataをゲットするためにSRAサイトに飛びます。

SRR5376453からSRR5376536までが欲しいデータなのでこれらをダウンロードします。

#!/bin/bash
mkdir -p fastq
for id in {453..536}
do
    fastq-dump --gzip SRR5376$id -O fastq
done

今回のデータはSingle-end readなのでオプションの--split-filesは無しです。

Single-end readのサンプルにこのオプションを付けるとSRRXXX_1.fastq.gzとなり後の処理がやや面倒になります。

さてここからリスト作製に移ります。samplenameはGEOに記載されているのもで良いので該当項目をcopy.txtにコピペします。

ここら辺一体をコピペしておきます。

出来上がったものが下記です。(長いので一部記載)

$ cat copy.txt
GSM2550183      F1-CiPSC-Input
GSM2550184      F1-CiPSC-K27ac
GSM2550185      F1-CiPSC-K27me3
GSM2550186      F1-CiPSC-K4me1
GSM2550187      F1-CiPSC-K4me3
GSM2550188      F1-CiPSC-p300
GSM2550189      F1-CiPSC-Pol2

1列目のGSM...というのが不要なのでカットしてsample.txtにします。

$ cat copy.txt | awk '{print $2}' > sample.txt
$ cat sample.txt
F1-CiPSC-Input
F1-CiPSC-K27ac
F1-CiPSC-K27me3
F1-CiPSC-K4me1
F1-CiPSC-K4me3
F1-CiPSC-p300
F1-CiPSC-Pol2

ちなみにコピぺしたうちの一部を使用したい場合は以下のようにNR==行番号で行を$列番号で列を指定することが可能です。ここでは2列目の2行目から4行目を指定しています。

$ cat copy.txt | awk 'NR==2,NR==4 {print $2}'
F1-CiPSC-K27ac
F1-CiPSC-K27me3
F1-CiPSC-K4me1

 

次に必要なのはfastqfileです。

今回は連番のサンプルなので以下のコマンドでlist.txtとして作製します。

>では単に上書きされてしまうので>>で追記するようにします。

for id in {453..536}
do
  echo fastq/SRR5376$id.fastq.gz >> list.txt
done
$ cat list.txt 
fastq/SRR5376536.fastq.gz
fastq/SRR5376453.fastq.gz
fastq/SRR5376454.fastq.gz
fastq/SRR5376455.fastq.gz
fastq/SRR5376456.fastq.gz
fastq/SRR5376457.fastq.gz
fastq/SRR5376458.fastq.gz

最後にsample.txtとlist.txtをマージすればsamplelist.txtの完成です。

$ paste sample.txt list.txt > samplelist.txt
$ cat samplelist.txt
F1-CiPSC-Input    fastq/SRR5376536.fastq.gz
F1-CiPSC-K27ac    fastq/SRR5376453.fastq.gz
F1-CiPSC-K27me3   fastq/SRR5376454.fastq.gz
F1-CiPSC-K4me1    fastq/SRR5376455.fastq.gz
F1-CiPSC-K4me3    fastq/SRR5376456.fastq.gz
F1-CiPSC-p300     fastq/SRR5376457.fastq.gz
F1-CiPSC-Pol2     fastq/SRR5376458.fastq.gz

列方向でファイルを結合したい場合はpasteコマンドを使います。デフォルトではタブ区切りでファイル同士が結合されます。

$ cat -T samplelist.txt
F1-CiPSC-Input^Ifastq/SRR5376536.fastq.gz
F1-CiPSC-K27ac^Ifastq/SRR5376453.fastq.gz
F1-CiPSC-K27me3^Ifastq/SRR5376454.fastq.gz
F1-CiPSC-K4me1^Ifastq/SRR5376455.fastq.gz
F1-CiPSC-K4me3^Ifastq/SRR5376456.fastq.gz
F1-CiPSC-p300^Ifastq/SRR5376457.fastq.gz
F1-CiPSC-Pol2^Ifastq/SRR5376458.fastq.gz

区切る文字を指定したい場合は-dオプションを使います。

$ paste -d , sample.txt list.txt 
F1-CiPSC-Input,fastq/SRR5376453.fastq.gz
F1-CiPSC-K27ac,fastq/SRR5376454.fastq.gz
F1-CiPSC-K27me3,fastq/SRR5376455.fastq.gz
F1-CiPSC-K4me1,fastq/SRR5376456.fastq.gz
F1-CiPSC-K4me3,fastq/SRR5376457.fastq.gz
F1-CiPSC-p300,fastq/SRR5376458.fastq.gz
F1-CiPSC-Pol2,fastq/SRR5376459.fastq.gz

これはsamplepairlist.txtを作るときに使えそうです。

初歩的な内容ですがこれらは非常に重要なコマンドなので使いこなせるようになるべきですね。