環境はMacを想定しています。
(要:HDD空き容量200GBくらい、メモリ16GBくらい)
Windowsの人はゴメンナサイ(動作確認していません)

まずHomebrewをインストールしてください。
ファイル名のXは適宜変換してください。


p4-2, p10-1
圧縮されたFASTQファイルの中身を確認する
gzcat X_1.fastq.gz | less


p11-1
FASTQファイルに書かれたDNAの文字数を確認する
gzcat X_1.fastq.gz | awk 'NR%4==2{sum+=length} END {print sum}'


p15-2
Homebrewでインストール:FastQC
brew search fastqc
brew tap homebrew/science
brew install fastqc


FastQC結果用のディレクトリを作成
mkdir fastqc_before fastqc_after

FastQCを実行
fastqc -f fastq -t 8 -o fastqc_before X_1.fastq.gz X_2.fastq.gz


p15-6
Trimmomaticをインストール
brew install trimmomatic

TrimmomaticとFastQC実行用スクリプト
[ファイル名:01_trimming.sh]
#!/usr/bin/env sh

trimmomatic PE -phred33 -threads 8 \
-trimlog X.trimlog \
X_1.fastq.gz X_2.fastq.gz \
X_1.paired.fastq.gz X_2.unpaired.fastq.gz \
X_2.paired.fastq.gz X_2.unpaired.fastq.gz \
TRAILING:20 MINLEN:50

fastqc -f fastq -t 8 -o fastqc_after \
X_1.paired.fastq.gz X_2.paired.fastq.gz

(実行)
sh 01_trimming.sh


p17-1
FASTQ各文字のクオリティ(自信度)を読めるように変換し確認する
qline=`gzcat X_1.fastq.gz|head -4|tail -1`

for i in `seq 1 ${#qline}`; do
ascii=`printf '%d' \'${qline:$i-1:1}`
qual=`expr ${ascii} - 33`
printf '%.3f ' $((10**(-${qual}/10.0)))
done


p20-1
Homebrewでインストール:SAMtools, BWA
brew install samtools
brew install bwa


p20-3
GATKのインストールを確認
java -jar GenomeAnalysisTK-3.6/GenomeAnalysisTK.jar -version


p20-4
保存用ディレクトリ作成と移動
mkdir b37
cd b37

見本ゲノムなどのダウンロード
url=ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/2.8/b37

for dl_file in {human_g1k_v37.fasta.gz,human_g1k_v37.fasta.fai.gz,\
human_g1k_v37.dict.gz,Broad.human.exome.b37.interval_list.gz,\
dbsnp_138.b37.vcf.gz,dbsnp_138.b37.vcf.idx.gz}; do
curl -O ${url}/${dl_file}
done


p21-1
アラインメント(はりつけ)と後処理
[ファイル名:02_alignment.sh]
#!/usr/bin/env sh

bwa index -a b37/human_g1k_v37.fasta
ulimit -n 3000

bwa mem -t 8 \
-R '@RG\tID:X\tSM:X\tPL:Illumina' \
b37/human_g1k_v37.fasta \
X_1.paired.fastq.gz X_2.paired.fastq.gz | \
samtools view -@ 8 -1 -S - > X_aligned.bam

samtools sort -@ 8 X_aligned.bam X_aligned_sorted

samtools index X_aligned_sorted.bam X_aligned_sorted.bai

(実行)
sh 02_alignment.sh


p24-4
見本とのちがいを計算
[ファイル名:03_variant.sh]
#!/usr/bin/env sh

java -Xmx8g -jar GenomeAnalysisTK-3.6/\
GenomeAnalysisTK.jar \
-T HaplotypeCaller \
-R b37/human_g1k_v37.fasta \
-I X_aligned_sorted.bam \
--dbsnp b37/dbsnp_138.b37.vcf \
-L b37/Broad.human.exome.b37.interval_list \
-o X_variants.vcf

(実行)
sh 03_variant.sh


p24-6
はりついた結果を確認
samtools view X_aligned_sorted.bam | less -S


p25-1
はりついた結果を確認(染色体ごと)
less mapping_stat.txt


p25-2
はりついた数を確認
awk '{map+=$3} END {print map}' mapping_stat.txt


p29-4
はりつかなかった数を確認
awk '{unmap+=$4} END {print unmap}' mapping_stat.txt

はりついた割合を確認
awk '{map+=$3;unmap+=$4} END {print map/(map+unmap)}' mapping_stat.txt


p30-5
X, Y染色体へのはりつき具合の比較
常染色体(22本)
head -22 mapping_stat.txt | awk '{base+=$2;read+=$3} END {print read/base}'

X染色体
grep '^X' mapping_stat.txt | awk '{print $3/$2}'

Y染色体
grep '^Y' mapping_stat.txt | awk '{print $3/$2}'


p31-3
見本とのちがいを確認する
grep -v '^#' X_variants.vcf | less -S


p32-1
X染色体でのちがいの種類を確認する
grep '^X' X_variants.vcf | cut -f8 | cut -d';' -f1 | sort | uniq -c


p33-3
X染色体でのちがいを確認する
grep '^X' X_variants.vcf | cut -f 1,4,5,10 | less


p34-1
ちがいの場所と番号を確認する
grep -v '^#' X_variants.vcf | cut -f 1,2,3 | less


p34-3, p34-5, p36-1, p37-2
様々なちがいの情報を確認する
お酒
grep -w 'rs671' X_variants.vcf | cut -f1,2,3,4,5,6,10

耳垢
grep -w 'rs17822931' X_variants.vcf | cut -f1,2,3,4,5,6,10

血液型1
grep -w 'rs8176719' X_variants.vcf | cut -f1,2,3,4,5,6,10

血液型2
grep -w 'rs8176746' X_variants.vcf | cut -f1,2,3,4,5,6,10

血液型3
grep -w 'rs8176747' X_variants.vcf | cut -f1,2,3,4,5,6,10


p39-4
はりつかなかった数を確認
cut -f4 mapping_stat.txt | less


p40-41
ウイルスゲノムへのはりつけ
はりつかなかったこま切れを取り出す
samtools view -b -f 4 X_aligned_sorted.bam > X_unmapped.bam

処理できる形式にする
samtools bam2fq X_unmapped.bam > X_unmapped.fastq

ウイルスゲノム目次の作成
samtools faidx NC_001806.2.fasta
bwa index -a bwtsw NC_001806.2.fasta

ウイルスゲノムにはりつけ、後処理
bwa mem -t8 -M NC_001806.2.fasta X_unmapped.fastq | \
samtools view -@8 -1 -S -> X_unmapped_aligned.bam

samtools sort -@8 X_unmapped_aligned.bam X_unmapped_aligned_sorted

samtools index X_unmapped_aligned_sorted.bam X_unmapped_aligned_sorted.bai

samtools idxstats X_unmapped_aligned_sorted.bam > X_unmapped_stat.txt

結果の確認
less X_unmapped_stat.txt