Corso di Laurea Magistrale in Scienze Chimiche, Curriculum "Struttura, dinamica e reattività chimica"

Struttura e Dinamica Molecolare di Sistemi Biologici - 2010/2011

Laboratorio 5 - (10 gennaio 2011)


Simulazioni MD-REM

Descrizione

Si applica il metodo di scambio di repliche (REM) ad una simulazione MD. Il metodo adottato è lo ``Hamiltonian Replica Exchange'': le varie repliche, invece di avere temperatura crescente, hanno potenziale scalato di un fattore decrescente. Il risultato è lo stesso, ma così

Nella terminologia del programma ORAC, una ``replica'' ($1,2,...,n$) individua un determinato campo di forze, cioè fattore di scala del potenziale; ciascuna traiettoria, che viene registrata su una directory separata (PAR0000 ...), è soggetta via via a scambi di potenziale, cioè di replica. Per ricostruire la statistica della replica 1 (a potenziale pieno) si devono raccogliere tratti di traiettoria della replica nelle varie directory.

I dati aggiuntivi necessari per una simulazione MD-REM sono:

  1. numero di repliche
  2. fattore di potenziale di ciascuna replica
  3. l'intervallo di tempo per i tentativi di scambio

Esecuzione

preparare ambiente parallelo e dati

Si deve usare la versione parallela di ORAC (ad es. orac-p) e gestire l'esecuzione parallela con MPI

  1. preparare un file mpd.hosts contenente la lista dei nodi da usare:

    [frame=single,label=mpd.hosts] 
      nd21
      nd22
      nd23
      nd24
      nd25
      nd26
      nd27
      nd28
    

  2. far partire MPI con il numero di nodi richiesto (N.B. ogni nodo ha più processori; il numero delle repliche viene specificato quando si lancia il programma):

    #> mpdboot -n 8
  3. input (partenza fredda)

    [frame=single,label=rem-cold.in] 
      &REM
        SETUP 0.75 1
        REMSTEP 100.
        PRINT 100000.
      &END
      ...
    

    Nella riga SETUP si specifica soltanto il valore minimo del fattore di scala del potenziale ($0.75$); i fattori sono scalati in modo uniforme nell'intevallo $1-0.75$

    Con valori dell'ultimo parametro $\neq1$ i fattori sono letti dal file REM.set ($=2$), oppure ricavati da un restart ($=0$).

    Si possono anche specificare diversi fattori di scala per diverse porzioni del potenziale:

    [frame=single,label=rem-cold.in] 
      &REM
        SETUP 1.0 0.01 0.5 1
        REMSTEP 100.
        PRINT 100000.
      &END
      ...
    

    in questo esempio si sono applicati fattori di scala minimi di $1.0$ (niente scalatura), $0.01$, e $0.5$, rispettivamente, alle tre porzioni di potenziale. Una scalatura sulle torsioni molto maggiore di quella sul potenziale non bonded è efficiente in sistemi di cui si studi la stabilità conformazionale in soluzione.

  4. lanciare il job parallelo

    Per lanciare il programma con 32 repliche:

    #> mpiexec -n 32 orac-p < rem-cold.in
  5. restart

    Per proseguire un run precedente, oltre al normale input per un restart (nei blocchi &RUN e &INOUT) va modificato anche il blocco &REM specificando che si tratta di un restart:

    [frame=single,label=rem-warm.in,commandchars=\\\{\}] 
      &REM
        SETUP 0.75 \bf{0}
        ...
      &END
      ...
      &RUN
        CONTROL  1
        ...
      &END
      &INOUT
        RESTART
          read ...
        END
      &END
    

Simulazioni