Привет Луис Хосе Кастильо,
кажется, я столкнулся с той же проблемой, что и вы. Я хотел использовать Pymol из приложения Ruby on Rails и всегда получал его сообщение, когда запускал его из ruby:
CmdLoad: "mypol/4hhb.pdb" loaded as "4hhb".
Ray: render time: 0.02 sec. = 178776.9 frames/hour (0.02 sec. accum.).
В результате получился пустой прозрачный png. Если я запустил его в командной строке с тем же скриптом, я получил это сообщение и идеальный png:
CmdLoad: "4hhb.pdb" loaded as "4hhb".
Ray: render time: 4.04 sec. = 890.8 frames/hour (4.04 sec. accum.).
Я получил такое поведение на Ubuntu 20, Ubuntu 18 Server и в Docker. Я понял, что единственная разница заключалась в том, что я использовал относительные пути изнутри ruby, но всегда запускал все в одной и той же папке в командной строке. Итак, я просто делаю этот обходной путь для своего приложения Rails, и теперь он работает:
def get_protein_image(pdb_id)
dir_path = get_pdb_file(pdb_id)
`cp lib/png_from_pdb.py #{dir_path} && cd #{dir_path} && pymol protein.pdb png_from_pdb.py -qc`
end
Извините за рубиновый код здесь, но здесь основное решение, попробуйте запустить все в одной папке (я просто удаляю подпапку tmp после генерации png).
cp lib/png_from_pdb.py #{dir_path} && cd #{dir_path} && pymol protein.pdb png_from_pdb.py -qc
Надеюсь, этот трюк поможет и вам! С уважением, Стефан
person
Stephan Sinn
schedule
12.02.2021
cmd.load()
иcmd.volume()
частью проблемы или это просто нормальный формат. Изменится ли что-нибудь, если убрать пробелы, чтобы строка 2 выглядела так:cmd.load('./6vof.mrc', '6vof')
, а строка 3 выглядела так:cmd.volume('6vof_volume', '6vof')
? - person summea   schedule 11.02.2021