Deeptools не может найти файл, который существует - PullRequest
3 голосов
/ 17 июня 2020

Мой стажер пытается использовать функцию bamCoverage deeptools, и она выдает ошибку '/my/dir/data.bam' file does not exist, несмотря на то, что файл находится там. Да, файл действительно существует, мы можем манипулировать им с помощью команд bash, так что нет реальной причины для его выдачи этой ошибки.

Согласно этот поток , это может быть проблема с pysam или python. Оба полностью обновлены. Вы знаете, как я могу дальше исследовать проблемы с pysam или python IO?

Все это происходит на сервере, который использует наша команда. Может быть, это проблема с путями python для его пользовательского сеанса?

Для справки, вот код, который я запускаю в своем bash терминале. Это довольно просто c:

my.name@server:/mnt/data1/my.name/PROJET_X/DATA/BIGWIG$ bamCoverage -p 8 -b /mnt/data1/my.name/PROJET_X/DATA/BAM_sort/G0-G00.Inputs.sorted.bam -o /mnt/data1/my.name/PROJET_X/DATA/BIGWIG/G0-G00.Inputs.RPGC.bw --normalizeUsing RPGC --effectiveGenomeSize 2913022398 -bs 10
The file '/mnt/data1/my.name/PROJET_X/DATA/BAM_sort/G0-G00.Inputs.sorted.bam' does not exist  
my.name@server:/mnt/data1/my.name/PROJET_X/DATA/BIGWIG$ ll /mnt/data1/my.name/PROJET_X/DATA/BAM_sort/G0-G00.Inputs.sorted.bam
-rwxr-xr-x 1 my.name bioinfo 4171366400 juin  22 10:14 /mnt/data1/my.name/PROJET_X/DATA/BAM_sort/G0-G00.Inputs.sorted.bam

Я использовал эту строку, наверное, 100 раз в прошлом году, но теперь она не может найти файл.

Я также пробовал установить deeptools в моем домашнем каталоге с помощью conda, но это дает те же ошибки.

EDIT: По-видимому, это была проблема только с этим единственным файлом. bamCoverage будет работать с другими файлами данных. Было бы неплохо, если бы deeptools сообщал вам, что вместо просто «файл не найден» ...

1 Ответ

0 голосов
/ 21 июня 2020

Было бы полезно увидеть, какой код здесь запускается - пожалуйста, предоставьте минимально воспроизводимый пример , включая полный вывод / ошибку, если это вообще возможно.

Прямо сейчас я могу придумать 4 возможных решения общих проблем:

  • Как упоминалось в комментариях, предоставление полного пути может быть одним из решений. Вы можете получить полный путь, используя команду pwd bash в папке, где хранится файл, а затем добавьте имя файла в конец строки.
  • Еще одна вещь, которая иногда помогает с относительными (локальные) пути: начинать путь с "." , поэтому путь будет примерно таким: './my/dir/data.bam'.
  • Другая проблема, с которой я столкнулся (в основном, при запуске вещи в Windows средах) заключалась в том, что вместо них нужно было использовать обратную косую черту: '\my\dir\data.bam'
  • Для полноты здесь я упомяну, что особенно для начинающих программистов путь часто ошибочно предоставляется без запятыми (чтобы преобразовать его в строку), но, похоже, здесь это не так.

Надеюсь, это поможет!

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