RolyPolyCoily / NGSv2

NGS教本v2
7 stars 6 forks source link

91ページ#遺伝子IDと遺伝子名の対応情報を取得について #6

Open nakane-scc opened 3 years ago

nakane-scc commented 3 years ago

mart <- biomaRt::useMart(biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl", host = 'ensembl.org') と入力すると、 Ensembl site unresponsive, trying useast mirror curl::curl_fetch_memory(url, handle = handle) でエラー: SSL certificate problem: unable to get local issuer certificate というエラーメッセージが出ました。調べたところ、CA証明書の検証エラーが原因で、「-k / --insecure オプションを利用すればよい」という記載が見つかったのですが、どこにオプションをつければいいのかわかりません。

また、次の

t2g <- biomaRt::getBM(attributes = c("ensembl_transcript_id", "ensembl_gene_id", "external_gene_name"), mart = mart) では、 martCheck(mart) でエラー: オブジェクト 'mart' がありません というエラーが出ているのですが、これは前の作業がうまく行っていないことが原因でしょうか。前のコマンドとは無関係でしたら、対応策をご教授いただければ幸いです。

よろしくお願いいたします。

nakane-scc commented 3 years ago

前述のエラーはUbuntuを使った時のもので、改めてマックでやってみたところ、 Rの4.0.5だと、91ページ最初の

if (!requireNamespace("BiocManager", quietly = TRUE))

  • install.packages("BiocManager") BiocManager::install("biomaRt") というところで、以下のようなエラーが発生します。

Bioconductor version 3.12 (BiocManager 1.30.13), R 4.0.5 (2021-03-31) Installing package(s) 'BiocVersion', 'biomaRt' also installing the dependencies ‘fastmap’, ‘bit’, ‘cachem’, ‘fansi’, ‘cli’, ‘utf8’, ‘bit64’, ‘blob’, ‘memoise’, ‘pkgconfig’, ‘Rcpp’, ‘plogr’, ‘ellipsis’, ‘lifecycle’, ‘rlang’, ‘vctrs’, ‘sys’, ‘assertthat’, ‘purrr’, ‘tibble’, ‘tidyselect’, ‘withr’, ‘generics’, ‘pillar’, ‘BiocGenerics’, ‘Biobase’, ‘IRanges’, ‘DBI’, ‘RSQLite’, ‘S4Vectors’, ‘hms’, ‘prettyunits’, ‘R6’, ‘crayon’, ‘glue’, ‘magrittr’, ‘stringi’, ‘curl’, ‘jsonlite’, ‘mime’, ‘askpass’, ‘dbplyr’, ‘dplyr’, ‘XML’, ‘AnnotationDbi’, ‘progress’, ‘stringr’, ‘httr’, ‘openssl’, ‘BiocFileCache’, ‘rappdirs’, ‘xml2’

readRDS(dest) でエラー: コネクションからの読み取りエラーが発生しました

Rを3.6.3にすると、最初のところでエラーが出ることはなくなるのですが、「#遺伝子IDと遺伝子名の対応情報を取得」するところで、

t2g <- biomaRt::getBM(attributes = c("ensembl_transcript_id", "ensembl_gene_id", "external_gene_name"), mart = mart) と入力すると、

UseMethod("filter") でエラー: 'filter' をクラス "c('tbl_SQLiteConnection', 'tbl_dbi', 'tbl_sql', 'tbl_lazy', 'tbl')" のオブジェクトに適用できるようなメソッドがありません

というエラーが発生し、やはり先に進めません。

対応策をご教授いただければ幸いです。

nakane-scc commented 3 years ago

エラーではないのですが、 t2g[t2g[,3] == "", "ext_gene"] <- "NA" というコマンドの意味がわからないので、どういう操作をしているのか、教えていただけないでしょうか。

RolyPolyCoily commented 3 years ago

お返事遅くなって申し訳ございません。 エラーを再現できずにおります。Google検索でも解決できそうな情報は見つけられておりません。 いまこちらから提示できる案は下記の手順で、 0.テスト用に仮想環境(test)を準備する

conda create -n test
conda activate test

1.AnacondaでRをインストールする(Anaconda経由でのインストールが済んでいたら結構です) conda install -c conda-forge r-base=4.0.5 2.AnacondaでRパッケージ(biomaRt)をインストールする conda install -c conda-forge r-base=4.0.5 というものです。

これにより、

R
library(biomaRt)
library(dplyr)
ensembl = biomaRt::useEnsembl(biomart="ensembl")
biomaRt::listDatasets(ensembl)
mart <- biomaRt::useMart(biomart = "ENSEMBL_MART_ENSEMBL", dataset = "hsapiens_gene_ensembl", host = 'ensembl.org')

の一連の処理が正常に動くかと思います。

RolyPolyCoily commented 3 years ago

t2g[t2g[,3] == "", "ext_gene"] <- "NA" こちらは遺伝子シンボルが空欄になっている遺伝子が含まれており後々トラブルのもとになるかと思ったのでNAとしました。 t2g[t2g$ext_gene == "","ext_gene"]=NA のほうが良かったかなとも思います。