Я пишу bash-скрипт для автоматизации слепой стыковки (поиска сайтов связывания в белке).Для этого я разделил большую трехмерную сетку на меньшие перекрывающиеся сетки.
Я создал три файла, содержащих координаты x, y и z центров подрешеток соответственно.Другими словами, один файл содержит все возможные координаты x (по одной на строку), второй - все координаты y, а третий - все координаты z.Координаты имеют три десятичных знака и могут быть положительными или отрицательными.
Теперь я хотел бы найти все возможные комбинации x, y и z.Для каждой комбинации я хотел бы создать папку (называемую что-то вроде x1y1z1, x1y2z1, x1y3z1 и т. Д.), Содержащую текстовый файл с координатами x, y и z, которые соответствуют этой конкретной комбинации.
Я нашел решение связанных проблем, используя Python.Однако, так как я не знаком с Python и у меня уже есть большой bash-скрипт с множеством определенных переменных, я хотел бы знать, есть ли простой способ сделать это в bash или на любом другом языке, который я могу легко интегрироватьв моем существующем скрипте bash.
С уважением,
Miro
ОБНОВЛЕНИЕ:
Это адаптированная версия решения, указанная Мэттом D (спасибомиллион):
for x in $(cat centrex.tmp) ; do
for y in $(cat centrey.tmp) ; do
for z in $(cat centrez.tmp) ; do
xvar=$(expr "$x" : '\(.*\)=.*')
yvar=$(expr "$y" : '\(.*\)=.*')
zvar=$(expr "$z" : '\(.*\)=.*')
folder="${xvar}${yvar}${zvar}"
mkdir $folder
echo "center_x = "${x#*=} >> vinapar.conf
echo "center_y = "${y#*=} >> vinapar.conf
echo "center_z = "${z#*=} >> vinapar.conf
cp vinapar.conf $folder/
rm vinapar.conf
done
done
done
Причина для этого заключается в том, что я наконец отформатировал свои файлы centreX.tmp следующим образом:
x00=-15.349
x01=-10.349
x02=-5.349
...
Это позволяет мне называть папки в соответствии скусок перед знаком равенства (x01y23z09), а затем создайте файлы, содержащие фактические координаты.