京橋のバイオインフォマティシャンの日常

南国のビーチパラソルの下で、Rプログラムを打ってる日常を求めて、、Daily Life of Bioinformatician in Kyobashi of Osaka

Rで、デフォルトパッケージ以外のパッケージを削除するTips

特定パッケージだけを削除する方法

Rのデフォルトパッケージを残して、 追加でインストールしたパッケージだけを削除する方法をメモしておく。

パッケージがいろいろと増えてくると、 パッケージすべてを削除したいとか、 1つのパッケージだけを削除したいといったことを考え出す。

今回は、少し変則的だけど、インストールしたパッケージを削除して、 Rのはじめの環境でインストールされているパッケージだけを残すというのをやってみたい。

R環境での実行例

インストールパッケージのリスト取得(installed.packages())とか、Rの正規表現(%in%)とか、 パッケージ削除(remove.packages)を組み合わせてやってみる。

#デフォルトの29パッケージ
Pack <- c("base","boot","class","cluster","codetools",
          "compiler","datasets","foreign","graphics",
          "grDevices","grid","KernSmooth","lattice",
          "MASS","Matrix","methods","mgcv","nlme","nnet",
          "parallel","rpart","spatial","splines","stats",
          "stats4","survival","tcltk","tools","utils")

#デフォルトパッケージ以外を選択する
a <- data.frame(installed.packages())$Package
b <- a[!a %in% Pack]

#インストールしたパッケージを削除する
utils::remove.packages(pkgs=b)

補足: 他の関数群

#検索されるパッケージ・パス表示
search()
searchpaths()

#ロードされているパッケージ名の表示
loadedNamespaces()

【SRA Toolkitの続編】Mac版のSRA Toolkitを設定して、fastq-dumpの高速版「fasterq-dump」を試してみた件

SRA Toolkitの設定

SRA Toolkitの設定は、以前の記事を参考のこと。

skume.net

Mac版のSRA Toolkitを設定すれば、 そのままの設定で、fasterq-dumpコマンドも実行できる。

fasterq-dumpコマンドで、FASTQファイルを高速に取得する

SRA toolsの2.9.1リリースで、fastq-dumpツールに代わる「fasterq-dump」ツールが利用可能になった。

その名の通り、fasterq-dumpコマンドは、一時ファイルやマルチスレッドを利用して、 より高速に動作し、SRAオブジェクトのFASTQファイルへの大規模な変換に適している。 コマンドのオプションは、従来のfastq-dumpコマンドといくつかの相違点があるので注意が必要である。

fasterq-dumpの基本形

まずは、fasterq-dumpの使い方を以下に示す。

fasterq-dump [ options ] [ SRA accessions(s) / ID ]

fastq-dumpでは、ペアリードを左端と右端に分離するためのオプション設定(--split-3)が必要であるが、 fasterq-dumpではデフォルト設定となっている。

fastq-dumpコマンドと同じく、SRAアクセッション番号を指定して実行する。 以下のコマンドは同等であるが、fasterq-dumpを使用した方が高速に実行される。

#fastq-dumpの実行例
fastq-dump [SRR_ID] --split-3 --skip-technical

#fasterq-dumpの実行例
fasterq-dump [SRR_ID]

以下に、Run ID: SRR17327096での実行結果を示した。

B

#プログレス表示にて実行
fasterq-dump SRR17327096 -p
#join   :|-------------------------------------------------- 100%   
#concat :|-------------------------------------------------- 100%   
#spots read      : 110,774
#reads read      : 221,548
#reads written   : 221,548

ls
#SRR17327096_1.fastq   SRR17327096_2.fastq

100MBくらいのサイズだとよく分からんけど、気持ち早い気がする。

複数のSRAオブジェクトに対する、fasterq-dumpの実行

シェルスクリプトで複数のファイルに対して処理する場合には、 以下のコードが使える。

while read line; do; 
  fasterq-dump -p $line; 
  done < ./SRR_Acc_ListR.txt

ここで、SRR_Acc_ListR.txtには、下記例のように、1行に1つずつ、SRR IDを記載した形とする。 この時の注意ポイントとして、txtファイルの最終行に、必ず空行を入れておくこと。

fasterq-dumpのオプション

 Options:
  -o|--outfile                     output-file 
  -O|--outdir                      output-dir 
  -b|--bufsize                     size of file-buffer dflt=1MB 
  -c|--curcache                    size of cursor-cache dflt=10MB 
  -m|--mem                         memory limit for sorting dflt=100MB 
  -t|--temp                        where to put temp. files dflt=curr dir 
  -e|--threads                     how many thread dflt=6 
  -p|--progress                    show progress 
  -x|--details                     print details 
  -s|--split-spot                  split spots into reads 
  -S|--split-files                 write reads into different files 
  -3|--split-3                     writes single reads in special file 
  --concatenate-reads              writes whole spots into one file 
  -Z|--stdout                      print output to stdout 
  -f|--force                       force to overwrite existing file(s) 
  -N|--rowid-as-name               use row-id as name 
  --skip-technical                 skip technical reads 
  --include-technical              include technical reads 
  -P|--print-read-nr               print read-numbers 
  -M|--min-read-len                filter by sequence-len 
  --table                          which seq-table to use in case of pacbio 
  --strict                         terminate on invalid read 
  -B|--bases                       filter by bases 
  -A|--append                      append to output-file 
  --fasta                          produce FASTA output 
  --fasta-unsorted                 produce FASTA output, unsorted 
  --seq-defline                    custom defline for sequence:  $ac=accession, 
                                   $sn=spot-name,  $sg=spot-group, $si=spot-id,  
                                   $ri=read-id, $rl=read-length 
  --qual-defline                   custom defline for qualities:  same as 
                                   seq-defline 
  -U|--only-unaligned              process only unaligned reads 
  -a|--only-aligned                process only aligned reads 
  --ngc <PATH>                     PATH to ngc file 

  -h|--help                        Output brief explanation for the program. 
  -V|--version                     Display the version of the program then 
                                   quit. 
  -L|--log-level <level>           Logging level as number or enum string. One 
                                   of (fatal|sys|int|err|warn|info|debug) or 
                                   (0-6) Current/default is warn 
  -v|--verbose                     Increase the verbosity of the program 
                                   status messages. Use multiple times for more 
                                   verbosity. Negates quiet. 
  -q|--quiet                       Turn off all status messages for the 
                                   program. Negated by verbose. 
  --option-file <file>             Read more options and parameters from the 
                                   file. 

補足

single-endか、paired-endの判定プログラム

fastq-dumpの-split-spotオプションを使う、シンプルな方法で、 SRAファイルがシングルエンドかペアエンドかを判断できる。

以下に、シェルスクリプトでの実行コードを示す。

srr="SRR17327096";
numLines=$(fastq-dump -X 1 -Z --split-spot $srr | wc -l);
if [ $numLines -eq 4 ];
then;
  echo "$srr is single-end";
else;
  echo "$srr is paired-end";
fi

fastq-dumpコマンドとの相違点

  • -Z(--stdout) オプションは、split-3とsplit-files では機能しない。 この場合、ツールはファイルの生成にフォールバックする。

  • --gzipや--bizp2のオプションがないので、ファイルを出力した後に別処理で圧縮する必要がある。

  • accessionには、-Aオプションがない。accessionまたは絶対パスを指定することになる。

  • fastq-dumpは複数のaccessionsを取らず、1つだけ取る。

  • -N(--minSpotId) と -X(--maxSpotId) オプションはない。

  • fastq-dumpは、Linux、MacOS、Windowsの3つのプラットフォームで利用できる。

参考資料

rnnh.github.io

www.biostars.org

R言語/rstudio 初心者におすすめ入門本・参考書・R本: 厳選 5 選+α !!

はじめに

R言語は、統計データ分析やグラフィクス(データの可視化)を提供する、プログラム言語です。 R言語は、無料のオープンソース・ソフトウェアとして利用できます。

R言語の公式ホームページ(https://www.r-project.org/)

R言語は、統計解析やグラフィクス(データの可視化)に適した命令システムを持つ、インタープリタ型のプログラム言語として開発されました。 インタープリタ型は、Python言語やPerl言語などとも同じ方式で、 命令文を一つずつコンパイルして、コンピュータに都度解釈させながら実行する方式です。

R環境を使えば、データの前処理、各種統計検定、回帰分析、ランダムフォレストや深層学習のような機械学習法、解析したデータに適した可視化が可能です。 R言語は、「Python(パイソン)」と並び、統計分析やバイオインフォマティクスを手がける人々にとって、人気のプログラム言語です。

R言語は、1993年ごろに、ニュージーランドのオークランド大学のRoss IhakaとRobert Clifford Gentlemanにより作られたと言われています*1。 そのため、ニュージーランドのオークランド大学がRの発祥の地と言われています。

R言語は、過去に日本国内の「年収が高いプログラミング言語」ランキングでも、何度か1位になっていて、世界中ではユーザーが多く、データ解析界隈で評価が高い、プログラミング言語でもあります。

R言語は、統計解析、医療統計や可視化だけと思われがちですが、近年は、金融工学や機械学習、データマイニング、テキスト解析、ソーシャルネットワーク、ビッグデータの解析などの幅広い分野で活用されています。これらR言語が深く関係する分野では、ビジネスの多くの分野に浸透しつつあり、今後もR言語の需要が高まると考えられています。

近年、データ解析者が対象とするデータはどんどん大きくなり、データごとに特徴があり複雑化しています。あらかじめ用意されているような解析ツール群ではデータの特徴や複雑さに対応できなくなってきています。 その点で、R言語の解析環境はこれまで誰もトライしていないような、新たな解析ワークフローを柔軟に試すことできます。

この記事では、R言語についての知識を深めて、今後のデータ処理や解析の実務に役立てていきたい、入門者・初学者向けに、「R言語のおすすめ入門本」を紹介します。

R言語の入門書を探している人はぜひ参考にしてみてください。

R言語のおすすめ入門本 5 選 + アルファを紹介!!

改訂2版 RユーザのためのRStudio[実践]入門〜tidyverseによるモダンな分析フローの世界


改訂2版 RユーザのためのRStudio[実践]入門〜tidyverseによるモダンな分析フローの世界は、R言語のIDE(統合開発環境)であるRStudioと、モダンなデータ分析を実現するtidyverseパッケージに関わる入門書となっている。

インストールなどの基本的な内容から、モダンなデータ分析を実現するtidyverseパッケージにフォーカスして、初級から中級者的なR言語の内容までを幅広くカバーしている良書と言われています。

R言語の基礎から、中級的なプログラミングを学びたい人、R / RStudioでモダンな分析環境を手にしたい、分析フローを意識した業務/解析をしたい方におすすめの本です。

R言語ではじめるプログラミングとデータ分析


R言語ではじめるプログラミングとデータ分析は、 R言語の初歩と、データ分析の基本に加えて、「データ分析の生産性を上げてくれる便利なパッケージ群」について解説しています。

初心者向けのR言語の入門書を探している人におすすめの本です。

Rでらくらくデータ分析入門 ~効率的なデータ加工のための基礎知識


R言語ではじめるプログラミングとデータ分析は、 ビジネスパーソンに向けて、脱Excel、プログラミングの入口につながるRでのデータ分析入門書として位置付けられています。

この本は、オンラインコースのUdemyでベストセラーとなった人気コース「医師が教えるR言語での医療データ分析入門」をベースとなっています。「Excelより効率的にデータを加工して周りと差をつけたい」、「プログラミングに興味あるし実務にも生かしてみたい」、そんな人に最適な導入となるはずです。

プログラミング未経験者で、R言語で初めてプログラミングを行うという人におすすめの本です。

Rをはじめよう生命科学のためのRStudio入門


「Rをはじめよう生命科学のためのRStudio入門」は、 「R? 聞いたことならあるけど」という初学者、学生に、「Rならいつも使っているよ」という方向にもっていくためにまとめられている本です。

データの準備の仕方とRへの読み込み方、データ読み込み後の使い方、データの可視化、基礎的な統計検定などについて詳しく解説されています。

初学者にとっては避けて通れない知識について、丁寧にまとめてられているので、Rを初めて扱うための、最低限の常識や知識が必要な人におすすめの本です。

The R Tips 第3版 データ解析環境Rの基本技・グラフィックス活用集


R界隈の大御所、舟尾暢男 先生の著書となります。 「The R Tips 第3版 データ解析環境Rの基本技・グラフィックス活用集」は、 Rの熟練度に合わせた2部構成になっており、初心者向けにはR入門編、さらに中級者で、統計や数値計算、プログラミング技法やデータハンドリング等、グラフィックスなど実行したい人はR-Tips 編で学ぶことができます。

この本は、全体を通して、R初心者に向けて、詳細な仕様や動作などが平易な言葉で書かれており、また包括的なテキストとして通読しておくと後々の引き出しになります。長年おすすめされる名著です。

統計解析、数値計算、プログラム、シミュレーション、プロット図から複雑なグラフィックスまで初級から中級者まで使い方自由自在の1冊です。

Rによるデータ分析のレシピ


「Rによるデータ分析のレシピ」、こちらも、舟尾暢男 先生の著書となります。

この本は、R言語・RStudio環境を使った、データ分析の新しい入門書となっています。 連続データやカテゴリデータの要約、シミュレーションや統計的検定の考え方、ベイズ解析、モデル解析までを、レシピのスタイルで手順を追って説明しています。

R初心者にとって、Rのコーディングと統計学の勉強が一度にできるとお得な入門書となっています。

R言語と統計

超入門! Rでできるビジュアル統計学 学会・論文発表に役立つデータ可視化マニュアル


「超入門! Rでできるビジュアル統計学 学会・論文発表に役立つデータ可視化マニュアル」は、 R言語の基本から、質的・量的な変数、地理空間データ、カラーグラフの可視化に加えて、記述統計学とそれに基づいたチャートの意味を幅広く解説している、 超実践的可視化マニュアルとなっています。

実際の初学ユーザーの声を載せて、つまずきポイントなどが分かりやすくなっています。 これまでの手が届かなかった、「かゆい」ところに手が届く、入門書となっています。

初心者向けのR言語の入門書を探している人に、絶対に買いの一冊です。

超入門! すべての医療従事者のためのRstudioではじめる医療統計


超入門! すべての医療従事者のためのRstudioではじめる医療統計は、 統計学の入門書ではなく、統計ソフトRの操作を習得するためのマニュアルとして書かれた一冊です。

Rの使い方を操作マニュアルとして、詳しく解説されています。 分析の前処理の仕方など、操作の上でのマニュアルがきちんと書いてあるので、 統計学の入門書とあわせて読めばストレスなく分析に入ることができるでしょう。

これから医療統計をはじめようとしている、R言語の初心者向けにRの操作スキルを身につけたい人におすすめの本です。

R言語の応用と機械学習などなど

RとShinyで作るWebアプリケーション

「RとShinyで作るWebアプリケーション」は、RパッケージであるShinyを使ってWebアプリケーションを作り方を解説しています。 Shinyの基礎から、具体的なアプリケーションの作成・公開まで丁寧に解説**しています。

日本語でshinyを学べる貴重な本で、Shinyで初めてWebアプリを作る方にとっては、非常に参考になります。

機械学習を行う応用的なアプリをストーリーに沿って、一から作製していきます。

RとKerasによるディープラーニング

本書は、Python Keras開発者のFrançois Cholletと、RStudio創設者でRコミュニティで絶大な信頼を集めるJ. J. Allaireによる共著です。 ディープラーニングを学びたいRユーザ向けに、まず概念の説明と、それを実装したサンプルを示していて、実際にサンプルコードを動かしながら学ぶことができます。

機械学習の基礎から、、CNN、RNN、GANなど有名かつ役立つアルゴリズムもわかりやすく解説されています。

実際、アマゾンEC2のGPUコンピューティングのインスタンスで簡単に始められます。

アマゾンEC2側でRStudioをwebブラウザで実行できる、RStudio serverを起動して、Kerasをインストールします。

GCP の Deep Learning VM Image を使って Deep Learning の勉強をする - Qiita

Rによる機械学習入門

本書「Rによる機械学習入門」は、 基本的な統計手法、予測に対する誤差の測り方、統計モデルによる機械学習、機械学習のアルゴリズム、スパース学習などをていねいに解説しています。

文系、社会科学系の方には、Rの中級者や機械学習などを勉強のための次なるステップアップのために適した、1冊かもしれません。

また、Rを使用した画像認識についても解説しています。

データサイエンスのための Rプログラミングスキル

「データサイエンスのための Rプログラミングスキル」は、統計モデリングや機械学習モデルの構築に加えて、API連携やデータの整形など、様々な包括的スキルを学ぶための手引書です。

プログラミング言語としてのデータサイエンスのRだけでなく、コマンドライン、git、Markdown、GitHubの使い方まで幅広く説明してくれています。

データサイエンスの初学者でも分かりやすく平易な文章となっています。

Rによる機械学習 第3版

「Rによる機械学習[第3版]」は、 Brett Lantz, "Machine Learning with R - Third Edition”, Packt Publishing, 2019の邦訳版で、 「機械学習」で語られることの多い手法(最近傍法や回帰法、ナイーブベイズ や決定木を使った分類法)を網羅しています。

翻訳本ですが、非常にわかりやすく丁寧に書かれているので読みやすいです。

本書を通じて、実際にデモデータをダウンロードして、手を動かしながら、機械学習の実装を試すことができます。

まとめ

今回は、「R言語のおすすめ入門本」について解説しました。

将来のRプログラム使いを目指す人は、まず今回ご紹介した本から読みすすめることで、 いつか立派なRマスターになられて、どこかのR界隈で、お会いできることを楽しみにしています。