#c #sdf #rdkit
#c #sdf #rdkit
Вопрос:
Я использую сторонний код на python из arxiv, который использует RDKit в качестве библиотеки. В качестве аргумента он принимает файл .sdf с данными о молекулах химических веществ, но затем RDKit выдает ошибку:
OSError: File error: Bad input file file.sdf
Я следовал инструкциям, установил все необходимые пакеты, загрузил файлы, как они сказали, увеличил пространство подкачки на моем компьютере, потому что .sdf довольно большой, удалил большую часть данных этого файла… но я не могу запустить его, ни одна из этих попыток не увенчалась успехом.
Я просматривал пакет RDKit, и это фрагмент кода, который вызывает ошибку:
LocalForwardSDMolSupplier(std::string filename, bool sanitize, bool removeHs,
bool strictParsing) {
std::istream *tmpStream = nullptr;
tmpStream = static_cast<std::istream *>(
new std::ifstream(filename.c_str(), std::ios_base::binary));
if (!tmpStream || (!(*tmpStream)) || (tmpStream->bad())) {
std::ostringstream errout;
errout << "Bad input file " << filename;
throw RDKit::BadFileException(errout.str());
}
dp_inStream = tmpStream;
df_owner = true;
df_sanitize = sanitize;
df_removeHs = removeHs;
df_strictParsing = strictParsing;
POSTCONDITION(dp_inStream, "bad instream");
}
Кажется, это C , которого я не знаю.
Я ожидаю увидеть, как работает этот код, с какими входами и выходами, чтобы адаптироваться к моему коду. Я хотел бы ознакомиться с этим файлом .sdf, но, возможно, для моих целей подойдет другой.
Комментарии:
1. Не могли бы вы также включить код python?
2. RDKit сообщает, что нет файла ‘files.sdf’. Это может означать, что вы используете неправильное имя файла или файл находится в неправильном каталоге.
Ответ №1:
Наконец, я обнаружил в исходном коде, что путь к этому файлу был неправильным. Ему нужно было добавить ../
before, потому что он вызывал файл в другой папке, не из master, а из одной из вложенных папок.
Спасибо, ребята!