PCRプライマー

Operational taxonomic unit (OTU)

Amplicon sequence variant (ASV)

W1:解析データ

サンプルID DNA抽出キット 保存バッファ リード数
SRR6325813 QMINI Native 282517
SRR6325815 QMINI LysisBuffer 266259
SRR6325816 QMINI RNA-later 359984
SRR6325817 QMINI PBS 325660
SRR6325828 MOBIO RNA-later 206939
SRR6325829 MOBIO PBS 261767
SRR6325830 MOBIO Native 238627
SRR6325831 MOBIO LysisBuffer 225548
SRR6325859 GENIAL LysisBuffer 290383
SRR6325860 GENIAL Native 253908
SRR6325861 GENIAL PBS 120789
SRR6325862 GENIAL RNA-later 258792
  • W1.4:For20200428LectureDADA2.tar.gz
    表2で示されている12サンプル分のリードファイルをまとめたものです。PCR増幅は515F-806Rプライマーで行い、増幅された300 bp弱のアンプリコンをIllumina MiSeqのペア―ドエンド(250 bp×2)で得たリードです。1サンプルにつき、Forward側のファイル(*_1.fastq)とReverse側のファイル(*_2.fastq)の2つのファイルが得られますので、合計24ファイルで構成されます。

DADA2のインストール

W2:インストール実行

if (!requireNamespace("BiocManager", quietly=T))
    install.packages("BiocManager")
BiocManager::install("dada2", update=F)

W3:パッケージのロード

library(dada2)

W4:list.files関数

W4.1:基本形とpathオプション

list.files関数は、指定したディレクトリ内にあるファイル情報を得るためのものです。1つ目のコマンドは、オプションを全てデフォルトで実行する場合です。2つ目は、表示させたい場所を指定するためのpathオプションのデフォルト”.”を明示しただけです。両者は同じ結果になります。

list.files()
##  [1] "JSLAB23.html"       "JSLAB23.Rmd"        "SRR6325813_1.fastq"
##  [4] "SRR6325813_2.fastq" "SRR6325815_1.fastq" "SRR6325815_2.fastq"
##  [7] "SRR6325816_1.fastq" "SRR6325816_2.fastq" "SRR6325817_1.fastq"
## [10] "SRR6325817_2.fastq" "SRR6325828_1.fastq" "SRR6325828_2.fastq"
## [13] "SRR6325829_1.fastq" "SRR6325829_2.fastq" "SRR6325830_1.fastq"
## [16] "SRR6325830_2.fastq" "SRR6325831_1.fastq" "SRR6325831_2.fastq"
## [19] "SRR6325859_1.fastq" "SRR6325859_2.fastq" "SRR6325860_1.fastq"
## [22] "SRR6325860_2.fastq" "SRR6325861_1.fastq" "SRR6325861_2.fastq"
## [25] "SRR6325862_1.fastq" "SRR6325862_2.fastq"
list.files(path = ".")
##  [1] "JSLAB23.html"       "JSLAB23.Rmd"        "SRR6325813_1.fastq"
##  [4] "SRR6325813_2.fastq" "SRR6325815_1.fastq" "SRR6325815_2.fastq"
##  [7] "SRR6325816_1.fastq" "SRR6325816_2.fastq" "SRR6325817_1.fastq"
## [10] "SRR6325817_2.fastq" "SRR6325828_1.fastq" "SRR6325828_2.fastq"
## [13] "SRR6325829_1.fastq" "SRR6325829_2.fastq" "SRR6325830_1.fastq"
## [16] "SRR6325830_2.fastq" "SRR6325831_1.fastq" "SRR6325831_2.fastq"
## [19] "SRR6325859_1.fastq" "SRR6325859_2.fastq" "SRR6325860_1.fastq"
## [22] "SRR6325860_2.fastq" "SRR6325861_1.fastq" "SRR6325861_2.fastq"
## [25] "SRR6325862_1.fastq" "SRR6325862_2.fastq"

W4.2:patternオプション(相対パス)

patternオプションをつけることで、任意の文字列を含むファイルのみに限定することができます。以下は"_1.fastq"という文字を指定して、Forward側に限定するやり方です。1つ目のコマンドは、pathオプションを明示せずデフォルトで実行した結果です。2つ目のコマンドは、pathオプションのデフォルト”.”を明示しただけです。両者は同じ結果になります。

list.files(pattern = "_1.fastq")
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"
list.files(pattern = "_1.fastq", path = ".")
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"

W4.3:patternオプション(絶対パス)

現在のディレクトリの場所を表示するgetwd関数実行結果(つまり絶対パス情報)をbashoというオブジェクトに格納し、それをlist.files関数のpathオプションに与えています。

basho <- getwd()
basho
## [1] "C:/Users/kadota/Desktop/dataset"
list.files(pattern = "_1.fastq", path = basho)
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"

W4.4:full.namesオプション

full.namesオプションをTRUEにすると、pathオプションで指定したパス情報を含めたファイル名になります。1つ目のコマンドが相対パス、2つ目のコマンドが絶対パスになります。

list.files(pattern = "_1.fastq", path = ".", full.names = TRUE)
##  [1] "./SRR6325813_1.fastq" "./SRR6325815_1.fastq" "./SRR6325816_1.fastq"
##  [4] "./SRR6325817_1.fastq" "./SRR6325828_1.fastq" "./SRR6325829_1.fastq"
##  [7] "./SRR6325830_1.fastq" "./SRR6325831_1.fastq" "./SRR6325859_1.fastq"
## [10] "./SRR6325860_1.fastq" "./SRR6325861_1.fastq" "./SRR6325862_1.fastq"
list.files(pattern = "_1.fastq", path = basho, full.names = TRUE)
##  [1] "C:/Users/kadota/Desktop/dataset/SRR6325813_1.fastq"
##  [2] "C:/Users/kadota/Desktop/dataset/SRR6325815_1.fastq"
##  [3] "C:/Users/kadota/Desktop/dataset/SRR6325816_1.fastq"
##  [4] "C:/Users/kadota/Desktop/dataset/SRR6325817_1.fastq"
##  [5] "C:/Users/kadota/Desktop/dataset/SRR6325828_1.fastq"
##  [6] "C:/Users/kadota/Desktop/dataset/SRR6325829_1.fastq"
##  [7] "C:/Users/kadota/Desktop/dataset/SRR6325830_1.fastq"
##  [8] "C:/Users/kadota/Desktop/dataset/SRR6325831_1.fastq"
##  [9] "C:/Users/kadota/Desktop/dataset/SRR6325859_1.fastq"
## [10] "C:/Users/kadota/Desktop/dataset/SRR6325860_1.fastq"
## [11] "C:/Users/kadota/Desktop/dataset/SRR6325861_1.fastq"
## [12] "C:/Users/kadota/Desktop/dataset/SRR6325862_1.fastq"

W5:文字列操作

W5.1 basename関数(相対パスの場合)

basename関数は、パス情報を含むファイル名の文字列ベクトルを入力として、パス情報を含まないファイル名の文字列ベクトルを得る際に用いられます。

fnFs <- list.files(pattern = "_1.fastq", path = ".", full.names = TRUE)
fnFs
##  [1] "./SRR6325813_1.fastq" "./SRR6325815_1.fastq" "./SRR6325816_1.fastq"
##  [4] "./SRR6325817_1.fastq" "./SRR6325828_1.fastq" "./SRR6325829_1.fastq"
##  [7] "./SRR6325830_1.fastq" "./SRR6325831_1.fastq" "./SRR6325859_1.fastq"
## [10] "./SRR6325860_1.fastq" "./SRR6325861_1.fastq" "./SRR6325862_1.fastq"
basename(fnFs)
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"

W5.2 basename関数(絶対パスの場合)

basename関数は、パス情報を含むファイル名の文字列ベクトルを入力として、パス情報を含まないファイル名の文字列ベクトルを得る際に用いられます。

basho <- getwd()
fnFs <- list.files(pattern = "_1.fastq", path = basho, full.names = TRUE)
fnFs
##  [1] "C:/Users/kadota/Desktop/dataset/SRR6325813_1.fastq"
##  [2] "C:/Users/kadota/Desktop/dataset/SRR6325815_1.fastq"
##  [3] "C:/Users/kadota/Desktop/dataset/SRR6325816_1.fastq"
##  [4] "C:/Users/kadota/Desktop/dataset/SRR6325817_1.fastq"
##  [5] "C:/Users/kadota/Desktop/dataset/SRR6325828_1.fastq"
##  [6] "C:/Users/kadota/Desktop/dataset/SRR6325829_1.fastq"
##  [7] "C:/Users/kadota/Desktop/dataset/SRR6325830_1.fastq"
##  [8] "C:/Users/kadota/Desktop/dataset/SRR6325831_1.fastq"
##  [9] "C:/Users/kadota/Desktop/dataset/SRR6325859_1.fastq"
## [10] "C:/Users/kadota/Desktop/dataset/SRR6325860_1.fastq"
## [11] "C:/Users/kadota/Desktop/dataset/SRR6325861_1.fastq"
## [12] "C:/Users/kadota/Desktop/dataset/SRR6325862_1.fastq"
basename(fnFs)
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"

W5.3 strsplit関数

basename関数は、パス情報を含むファイル名の文字列ベクトルを入力として、パス情報を含まないファイル名の文字列ベクトルを得る際に用いられます。

basename(fnFs)
##  [1] "SRR6325813_1.fastq" "SRR6325815_1.fastq" "SRR6325816_1.fastq"
##  [4] "SRR6325817_1.fastq" "SRR6325828_1.fastq" "SRR6325829_1.fastq"
##  [7] "SRR6325830_1.fastq" "SRR6325831_1.fastq" "SRR6325859_1.fastq"
## [10] "SRR6325860_1.fastq" "SRR6325861_1.fastq" "SRR6325862_1.fastq"
strsplit(basename(fnFs), "_")
## [[1]]
## [1] "SRR6325813" "1.fastq"   
## 
## [[2]]
## [1] "SRR6325815" "1.fastq"   
## 
## [[3]]
## [1] "SRR6325816" "1.fastq"   
## 
## [[4]]
## [1] "SRR6325817" "1.fastq"   
## 
## [[5]]
## [1] "SRR6325828" "1.fastq"   
## 
## [[6]]
## [1] "SRR6325829" "1.fastq"   
## 
## [[7]]
## [1] "SRR6325830" "1.fastq"   
## 
## [[8]]
## [1] "SRR6325831" "1.fastq"   
## 
## [[9]]
## [1] "SRR6325859" "1.fastq"   
## 
## [[10]]
## [1] "SRR6325860" "1.fastq"   
## 
## [[11]]
## [1] "SRR6325861" "1.fastq"   
## 
## [[12]]
## [1] "SRR6325862" "1.fastq"

W5.4 sapply関数

sapply関数は、リスト形式のオブジェクトに対して逐次的な処理を行いたい場合に用いられます。ここでは、さきほどのstrsplit実行結果をhogeというオブジェクトに一旦格納したのち、それをsapply関数の入力として用いています。出力結果は、表2のサンプルIDに相当します。

hoge <- strsplit(basename(fnFs), "_")
sapply(X = hoge, FUN = `[`, 1)
##  [1] "SRR6325813" "SRR6325815" "SRR6325816" "SRR6325817" "SRR6325828"
##  [6] "SRR6325829" "SRR6325830" "SRR6325831" "SRR6325859" "SRR6325860"
## [11] "SRR6325861" "SRR6325862"

W5.5 paste0関数

paste0関数は、文字列同士の連結を行いたいときに用います。ここでは、さきほどのsapply実行結果をsampleIDというオブジェクトに一旦格納したのち、それをpaste0関数の入力として用いています。文字列ベクトルであるsampleIDの各要素の右側に”_F_filt.fastq”という文字列を連結させています。ここまでが、なんらかの処理実行結果を出力させるための任意のファイル名を生成する基本形です。

sampleID <- sapply(X = hoge, FUN = `[`, 1)
paste0(sampleID, "_F_filt.fastq")
##  [1] "SRR6325813_F_filt.fastq" "SRR6325815_F_filt.fastq"
##  [3] "SRR6325816_F_filt.fastq" "SRR6325817_F_filt.fastq"
##  [5] "SRR6325828_F_filt.fastq" "SRR6325829_F_filt.fastq"
##  [7] "SRR6325830_F_filt.fastq" "SRR6325831_F_filt.fastq"
##  [9] "SRR6325859_F_filt.fastq" "SRR6325860_F_filt.fastq"
## [11] "SRR6325861_F_filt.fastq" "SRR6325862_F_filt.fastq"

W5.6 paste関数

paste関数は、文字列同士の連結を行いたいときに用います。paste0関数と基本的に同じですが、paste関数のほうが間に挟む文字(区切り文字)を指定できる点が異なります。paste関数のデフォルトは、区切り文字を指定するsepオプションの値がスペース(" ")です。従って、paste0関数は、paste関数をsep = ""オプションをつけて実行することと同義です。

sampleID <- sapply(X = hoge, FUN = `[`, 1)
paste(sampleID, "_F_filt.fastq")
##  [1] "SRR6325813 _F_filt.fastq" "SRR6325815 _F_filt.fastq"
##  [3] "SRR6325816 _F_filt.fastq" "SRR6325817 _F_filt.fastq"
##  [5] "SRR6325828 _F_filt.fastq" "SRR6325829 _F_filt.fastq"
##  [7] "SRR6325830 _F_filt.fastq" "SRR6325831 _F_filt.fastq"
##  [9] "SRR6325859 _F_filt.fastq" "SRR6325860 _F_filt.fastq"
## [11] "SRR6325861 _F_filt.fastq" "SRR6325862 _F_filt.fastq"
paste(sampleID, "_F_filt.fastq", sep = "")
##  [1] "SRR6325813_F_filt.fastq" "SRR6325815_F_filt.fastq"
##  [3] "SRR6325816_F_filt.fastq" "SRR6325817_F_filt.fastq"
##  [5] "SRR6325828_F_filt.fastq" "SRR6325829_F_filt.fastq"
##  [7] "SRR6325830_F_filt.fastq" "SRR6325831_F_filt.fastq"
##  [9] "SRR6325859_F_filt.fastq" "SRR6325860_F_filt.fastq"
## [11] "SRR6325861_F_filt.fastq" "SRR6325862_F_filt.fastq"

W5.7 file.path関数

file.path関数は、ファイルのパス情報をうまく生成したいときに用います。ここでは、現在のディレクトリ直下に”processed”というディレクトリを作成し、その中に先ほどのpaste0実行結果に相当する処理後のファイル名を連結させたものを作成します。

basho <- getwd()
fnFs <- list.files(pattern = "_1.fastq", path = basho, full.names = TRUE)
hoge <- strsplit(basename(fnFs), "_")
sampleID <- sapply(X = hoge, FUN = `[`, 1)
filtFs <- file.path(basho, "processed", paste0(sampleID, "_F_filt.fastq"))
filtFs
##  [1] "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_F_filt.fastq"
##  [2] "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_F_filt.fastq"
##  [3] "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_F_filt.fastq"
##  [4] "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_F_filt.fastq"
##  [5] "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_F_filt.fastq"
##  [6] "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_F_filt.fastq"
##  [7] "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_F_filt.fastq"
##  [8] "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_F_filt.fastq"
##  [9] "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_F_filt.fastq"
## [10] "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_F_filt.fastq"
## [11] "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_F_filt.fastq"
## [12] "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_F_filt.fastq"

一見するとfile.path関数の有用性がわかりにくいヒトは、以下で示すようなfile.pathの部分をpaste0に置き換えた結果と比較すると納得できると思います。つまり、file.pathのほうがスラッシュ(/)をうまく挿入してくれます。

paste0(basho, "processed", paste0(sampleID, "_F_filt.fastq"))
##  [1] "C:/Users/kadota/Desktop/datasetprocessedSRR6325813_F_filt.fastq"
##  [2] "C:/Users/kadota/Desktop/datasetprocessedSRR6325815_F_filt.fastq"
##  [3] "C:/Users/kadota/Desktop/datasetprocessedSRR6325816_F_filt.fastq"
##  [4] "C:/Users/kadota/Desktop/datasetprocessedSRR6325817_F_filt.fastq"
##  [5] "C:/Users/kadota/Desktop/datasetprocessedSRR6325828_F_filt.fastq"
##  [6] "C:/Users/kadota/Desktop/datasetprocessedSRR6325829_F_filt.fastq"
##  [7] "C:/Users/kadota/Desktop/datasetprocessedSRR6325830_F_filt.fastq"
##  [8] "C:/Users/kadota/Desktop/datasetprocessedSRR6325831_F_filt.fastq"
##  [9] "C:/Users/kadota/Desktop/datasetprocessedSRR6325859_F_filt.fastq"
## [10] "C:/Users/kadota/Desktop/datasetprocessedSRR6325860_F_filt.fastq"
## [11] "C:/Users/kadota/Desktop/datasetprocessedSRR6325861_F_filt.fastq"
## [12] "C:/Users/kadota/Desktop/datasetprocessedSRR6325862_F_filt.fastq"

file.path関数の代わりに、sep = "/"オプションをつけてpaste関数を実行しても構いません。

paste(basho, "processed", paste0(sampleID, "_F_filt.fastq"), sep = "/")
##  [1] "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_F_filt.fastq"
##  [2] "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_F_filt.fastq"
##  [3] "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_F_filt.fastq"
##  [4] "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_F_filt.fastq"
##  [5] "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_F_filt.fastq"
##  [6] "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_F_filt.fastq"
##  [7] "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_F_filt.fastq"
##  [8] "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_F_filt.fastq"
##  [9] "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_F_filt.fastq"
## [10] "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_F_filt.fastq"
## [11] "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_F_filt.fastq"
## [12] "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_F_filt.fastq"

W5.8 names関数

これは少しわかりにくい概念ですが、names関数はベクトルの各要素に名前をつけたいときに用います。実際取り扱うのはForward側とReverse側の両方ですが、通常これらはペアとして取り扱います。それゆえ、対応する要素の中身の文字列(つまりファイル名)で異なっていたとしても、要素につけられた名前を一致させておくことでペアとして認識させることができるメリットがあります。ここでは、要素につける名前としてサンプルID(オブジェクト名としてはsampleID)を割り当てています。

filtFs
##  [1] "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_F_filt.fastq"
##  [2] "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_F_filt.fastq"
##  [3] "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_F_filt.fastq"
##  [4] "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_F_filt.fastq"
##  [5] "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_F_filt.fastq"
##  [6] "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_F_filt.fastq"
##  [7] "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_F_filt.fastq"
##  [8] "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_F_filt.fastq"
##  [9] "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_F_filt.fastq"
## [10] "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_F_filt.fastq"
## [11] "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_F_filt.fastq"
## [12] "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_F_filt.fastq"
names(filtFs) <- sampleID
filtFs
##                                                          SRR6325813 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_F_filt.fastq" 
##                                                          SRR6325815 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_F_filt.fastq" 
##                                                          SRR6325816 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_F_filt.fastq" 
##                                                          SRR6325817 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_F_filt.fastq" 
##                                                          SRR6325828 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_F_filt.fastq" 
##                                                          SRR6325829 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_F_filt.fastq" 
##                                                          SRR6325830 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_F_filt.fastq" 
##                                                          SRR6325831 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_F_filt.fastq" 
##                                                          SRR6325859 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_F_filt.fastq" 
##                                                          SRR6325860 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_F_filt.fastq" 
##                                                          SRR6325861 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_F_filt.fastq" 
##                                                          SRR6325862 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_F_filt.fastq"

W6 入出力ファイルの作成

W6.1 絶対パスの場合

ここまではForward側のファイルのみでしたので、Reverse側も含めて全体をまとめて実行するスクリプトを示します。スクリプトに本当は不要な部分も含まれますが、Forward側とReverse側ともに同じように記載することを優先させています。filtFsfiltRsが前処理後のファイルの絶対パス情報になります。

basho <- getwd()
# Forward側
fnFs <- list.files(pattern = "_1.fastq", path = basho, full.names = TRUE)
hoge <- strsplit(basename(fnFs), "_")
sampleID <- sapply(X = hoge, FUN = `[`, 1)
filtFs <- file.path(basho, "processed", paste0(sampleID, "_F_filt.fastq"))
names(filtFs) <- sampleID
filtFs
##                                                          SRR6325813 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_F_filt.fastq" 
##                                                          SRR6325815 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_F_filt.fastq" 
##                                                          SRR6325816 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_F_filt.fastq" 
##                                                          SRR6325817 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_F_filt.fastq" 
##                                                          SRR6325828 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_F_filt.fastq" 
##                                                          SRR6325829 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_F_filt.fastq" 
##                                                          SRR6325830 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_F_filt.fastq" 
##                                                          SRR6325831 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_F_filt.fastq" 
##                                                          SRR6325859 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_F_filt.fastq" 
##                                                          SRR6325860 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_F_filt.fastq" 
##                                                          SRR6325861 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_F_filt.fastq" 
##                                                          SRR6325862 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_F_filt.fastq"
# Reverse側
fnRs <- list.files(pattern = "_2.fastq", path = basho, full.names = TRUE)
hoge <- strsplit(basename(fnRs), "_")
sampleID <- sapply(X = hoge, FUN = `[`, 1)
filtRs <- file.path(basho, "processed", paste0(sampleID, "_R_filt.fastq"))
names(filtRs) <- sampleID
filtRs
##                                                          SRR6325813 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325813_R_filt.fastq" 
##                                                          SRR6325815 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325815_R_filt.fastq" 
##                                                          SRR6325816 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325816_R_filt.fastq" 
##                                                          SRR6325817 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325817_R_filt.fastq" 
##                                                          SRR6325828 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325828_R_filt.fastq" 
##                                                          SRR6325829 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325829_R_filt.fastq" 
##                                                          SRR6325830 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325830_R_filt.fastq" 
##                                                          SRR6325831 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325831_R_filt.fastq" 
##                                                          SRR6325859 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325859_R_filt.fastq" 
##                                                          SRR6325860 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325860_R_filt.fastq" 
##                                                          SRR6325861 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325861_R_filt.fastq" 
##                                                          SRR6325862 
## "C:/Users/kadota/Desktop/dataset/processed/SRR6325862_R_filt.fastq"

W6.2 相対パスの場合

basho <- "."
# Forward側
fnFs <- list.files(pattern = "_1.fastq", path = basho, full.names = TRUE)
hoge <- strsplit(basename(fnFs), "_")
sampleID <- sapply(X = hoge, FUN = `[`, 1)
filtFs <- file.path(basho, "processed", paste0(sampleID, "_F_filt.fastq"))
names(filtFs) <- sampleID
filtFs
##                            SRR6325813                            SRR6325815 
## "./processed/SRR6325813_F_filt.fastq" "./processed/SRR6325815_F_filt.fastq" 
##                            SRR6325816                            SRR6325817 
## "./processed/SRR6325816_F_filt.fastq" "./processed/SRR6325817_F_filt.fastq" 
##                            SRR6325828                            SRR6325829 
## "./processed/SRR6325828_F_filt.fastq" "./processed/SRR6325829_F_filt.fastq" 
##                            SRR6325830                            SRR6325831 
## "./processed/SRR6325830_F_filt.fastq" "./processed/SRR6325831_F_filt.fastq" 
##                            SRR6325859                            SRR6325860 
## "./processed/SRR6325859_F_filt.fastq" "./processed/SRR6325860_F_filt.fastq" 
##                            SRR6325861                            SRR6325862 
## "./processed/SRR6325861_F_filt.fastq" "./processed/SRR6325862_F_filt.fastq"
# Reverse側
fnRs <- list.files(pattern = "_2.fastq", path = basho, full.names = TRUE)
hoge <- strsplit(basename(fnRs), "_")
sampleID <- sapply(X = hoge, FUN = `[`, 1)
filtRs <- file.path(basho, "processed", paste0(sampleID, "_R_filt.fastq"))
names(filtRs) <- sampleID
filtRs
##                            SRR6325813                            SRR6325815 
## "./processed/SRR6325813_R_filt.fastq" "./processed/SRR6325815_R_filt.fastq" 
##                            SRR6325816                            SRR6325817 
## "./processed/SRR6325816_R_filt.fastq" "./processed/SRR6325817_R_filt.fastq" 
##                            SRR6325828                            SRR6325829 
## "./processed/SRR6325828_R_filt.fastq" "./processed/SRR6325829_R_filt.fastq" 
##                            SRR6325830                            SRR6325831 
## "./processed/SRR6325830_R_filt.fastq" "./processed/SRR6325831_R_filt.fastq" 
##                            SRR6325859                            SRR6325860 
## "./processed/SRR6325859_R_filt.fastq" "./processed/SRR6325860_R_filt.fastq" 
##                            SRR6325861                            SRR6325862 
## "./processed/SRR6325861_R_filt.fastq" "./processed/SRR6325862_R_filt.fastq"