R ищет функцию, которой нет? - PullRequest
1 голос
/ 16 апреля 2020

У меня странная проблема с R.

По сути, я следую этому аналитическому конвейеру, чтобы понять, как он работает. В какой-то момент (сразу после первого вступительного абзаца, последних нескольких строк истории) я нахожу этот фрагмент кода:

#--- clustering ---#
for (n in names(all.sce)) {
    g <- buildSNNGraph(all.sce[[n]], k=10, use.dimred='PCA')
    clust <- igraph::cluster_walktrap(g)$membership
    colLabels(all.sce[[n]])  <- factor(clust)
}

, который вызывает эту функцию colLabels , которая выдает очень странная ошибка:

Error in colLabels(allEnsembl[[n]]) <- factor(clust) :    cant find the
function "colLabels<-"

Теперь, так как я работаю с данными определенного типа c, то есть данными с одной ячейкой (здесь биоинформатика), я изучил эту функцию, и она, кажется, частично этого пакета с именем SingleCellExperiment , который я могу успешно загрузить перед запуском вышеуказанного фрагмента кода.

Как только я обнаружил ошибку, я заглянул в справку R, которая на самом деле ничего не может найти:

> help(colLabels)

No documentation for 'colLabels' in specified packages and libraries: you could try '??colLabels'

> ??colLabels

No vignettes or demos or help files found with alias or concept or title matching 'colLabels' using fuzzy matching.

Проблема в том ... почему ошибка указывает на функцию (очевидно), называемую colLabels <- </strong>?

EDIT: другие функции из указанного пакета т. е. доступны страницы SingleCellExperiment, work и help.

EDIT 2: я импортировал необходимую библиотеку. Я также посмотрел на версию, которую я установил, и, похоже, проблема связана с версиями. Использование sessionInfo() R говорит мне, что у меня версия 1.8.0, которая соответствует заявленной на сайте Bioconductor . Доступна версия пакетов, а также документация в формате PDF относится к 1.8.0. НО Я заметил, что в предыдущей ссылке , которую я прикрепил, я имел в виду версию для разработки ... возможно, мне нужно ее установить (?)

РЕДАКТИРОВАТЬ 3: хорошо, у меня есть другие проблемы сейчас. Проблема в квесте была проблемой, связанной с версией пакета, так как официальный SingleCellExperiment был 1.8.0, в то время как do c, который я обнаружил, был связан с 1.9.3, который был версией для разработки. После установки справка для функции работает, а сама функция - нет. sessionInfo() теперь заявляет, что у меня версия 1.9.3, но другие функции больше не работают, поэтому я не знаю.

Ответы [ 2 ]

2 голосов
/ 16 апреля 2020

Функция colLabels была добавлена ​​только в версии 1.9.3. Это выйдет в следующем выпуске Bioconductor в конце этого месяца, см. здесь . Тем временем вы можете либо:

установить R 4.0.0 и начать использовать Bio C -devel для получения доступа к 1.9.3, либо просто получить и установить значения из метки sce $, которая выполняет то же самое.

Это цитаты Аарона Луна (разработчика пакета SingleCellExperiment) Git Память .

2 голосов
/ 16 апреля 2020

Это поведение по умолчанию R.

Если вы вызываете не импортированную или несуществующую функцию, сообщение об ошибке выглядит следующим образом:

> non_existing_function(x)
Error in non_existing_function(x) : 
  could not find function "non_existing_function"

Если вы вызываете не В импортированной или несуществующей функции вместе с оператором присваивания сообщение об ошибке выглядит следующим образом:

> non_existing_function(x) <- y
Error in non_existing_function(x) <- y : 
  could not find function "non_existing_function<-"

Необходимо импортировать пакет SingleCellExperiment, чтобы можно было использовать colLabels:

library(SingleCellExperiment)

Обновление: вам обязательно нужно использовать версию dev (1.9.3). Если вы проверите руководство для текущей стабильной версии (1.8.0), там нет функции colLables, но есть руководство для версии dev (1.9.3) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...