2017-08-25 7 views
0

Je suis en train de faire des simulations en cascade parallèles GROMACS 4.6.5 et je suis saisie des commandes à l'aide d'un script bash:Simuler Interaction utilisateur Dans Gromacs Bash

#!/bin/bash 
pdb2gmx -f step_04_01.pdb -o step_04_01.gro -water none -ff amber99sb -ignh 
grompp -f minim.mdp -c step_04_01.gro -p topol.top -o em.tpr 
mdrun -v -deffnm em 
grompp -f nvt.mdp -c em.gro -p topol.top -o nvt.tpr 
mdrun -v -deffnm nvt 
grompp -f md.mdp -c nvt.gro -t nvt.cpt -p topol.top -o step_04_01.tpr 
mdrun -v -deffnm step_04_01 
trjconv -s step_04_01.tpr -f step_04_01.xtc -pbc mol -o step_04_01_pbc.xtc 
g_rms -s itasser_2znh.tpr -f step_04_01_pbc.xtc -o step_04_01_rmsd.xvg 

Les commandes telles que trjconv et g_rms nécessitent une interaction utilisateur Sélectionnez les options. Par exemple lors de l'exécution trjconv vous donne:

Select group for output 
Group  0 (  System) has 6241 elements 
Group  1 (  Protein) has 6241 elements 
Group  2 (  Protein-H) has 3126 elements 
Group  3 (  C-alpha) has 394 elements 
Group  4 (  Backbone) has 1182 elements 
Group  5 (  MainChain) has 1577 elements 
Group  6 ( MainChain+Cb) has 1949 elements 
Group  7 ( MainChain+H) has 1956 elements 
Group  8 (  SideChain) has 4285 elements 
Group  9 ( SideChain-H) has 1549 elements 
Select a group: 

Et l'utilisateur devrait entrer par exemple. 0 dans le terminal pour sélectionner Group 0. Je l'ai essayé d'utiliser expect et send, par exemple:

trjconv -s step_04_01.tpr -f step_04_01.xtc -pbc mol -o step_04_01_pbc.xtc 
expect "Select group: " 
send "0" 

Toutefois, cela ne fonctionne pas. J'ai également essayé d'utiliser -flag comme dans http://www.gromacs.org/Documentation/How-tos/Using_Commands_in_Scripts#Within_Script mais il dit que ce n'est pas une entrée reconnue.

Est-ce que mon expect \ send est correctement formaté? Existe-t-il un autre moyen de contourner cela dans GROMACS?

Répondre

1

Je ne sais pas gromacs mais je pense qu'ils sont juste pour vous demander d'utiliser la syntaxe bash:

yourcomand ... <<EOF 
1st answer to a question 
2nd answer to a question 
EOF 

alors vous pourriez avoir

trjconv -s step_04_01.tpr -f step_04_01.xtc -pbc mol -o step_04_01_pbc.xtc <<EOF 
0 
EOF 
+0

Oui qui fonctionne, merci! – Charlietrypsin