Open Babel: как создать несколько выходных файлов (разделить вход)?

У меня есть файл.pdb, содержащий несколько конформеров одной молекулы. Теперь я хочу преобразовать каждый из этих конформеров в отдельный файл.xyz. Согласно открытой помощи Babel, это может быть сделано с -m вариант.

-m Produces multiple output files, to allow:
   Splitting: e.g.        babel infile.mol new.smi -m
    puts each molecule into new1.smi new2.smi etc
   Batch conversion: e.g. babel *.mol -osmi -m
    converts each input file to a .smi file

Но это преобразует только первую геометрию, а затем останавливается:

babel -ipdb confs.pdb -oxyz test.xyz -m
  1 molecule converted
  14 audit log messages

(Протестировано open babel 2.3.2 на Ubuntu и OSX)

Любое предложение, как это исправить или какую программу использовать вместо?

0 ответов

Разделите файл pdb с помощью этой команды linux:

grep -n 'MODEL\|ENDMDL' models.pdb | cut -d: -f 1 | \
 awk '{if(NR%2) printf "sed -n %d,",$1+1; else printf "%dp models.pdb > model_%03d.pdb\n", $1-1,NR/2;}' |  bash -sf

Входной файл - models.pdb, а разделенный файл будет называться model_0001.pdb, model_0002.pdb... и т. Д.

Подробнее здесь: https://strucbio.biologie.uni-konstanz.de/ccp4wiki/index.php/Split_NMR-style_multiple_model_pdb_files_into_individual_models

Другие вопросы по тегам