ピーク領域のいくつかの注釈を計算しているこの小さなコードがスクリプトにあります。以下のコードはスピードのボトルネックであり、CpGカウントを計算するためにこれを実行する必要がある約10万のリージョンがあるので、数時間かかる。それをスピードアップする方法はありますか?コードが長すぎます - スピードアップする方法
for (i in 1:nrow(dataMtx)){
peakCord<-gsub("chr", "", peakCord)
peakSeq<-system(sprintf("samtools faidx genome.fa %s", peakCord[i]), intern=T)
peakSeq<-gsub(">.*$", "", peakSeq)
peakSeq<-paste(peakSeq, collapse='')
dataMtx$CpGCount[i] <- sum(str_count(peakSeq, "CG"))
print(i)
}
あなたは 'apply()'関数とそれに関連するファミリーを試してみることができます。おそらくdata.tableまたはdplyrパッケージを使用したいと思うかもしれません。または、関数をコンパイルしてコンパイルしてください - 私は個人的にそれを試しませんでしたが。 – zacdav