In [1]:
# load example MD data

from msmbuilder.example_datasets import FsPeptide
from msmbuilder.featurizer import DihedralFeaturizer

fs = FsPeptide().get().trajectories
n_atoms = fs[0].n_atoms
fs_dih_feat = DihedralFeaturizer().transform(fs)


loading trajectory_1.xtc...
loading trajectory_10.xtc...
loading trajectory_11.xtc...
loading trajectory_12.xtc...
loading trajectory_13.xtc...
loading trajectory_14.xtc...
loading trajectory_15.xtc...
loading trajectory_16.xtc...
loading trajectory_17.xtc...
loading trajectory_18.xtc...
loading trajectory_19.xtc...
loading trajectory_2.xtc...
loading trajectory_20.xtc...
loading trajectory_21.xtc...
loading trajectory_22.xtc...
loading trajectory_23.xtc...
loading trajectory_24.xtc...
loading trajectory_25.xtc...
loading trajectory_26.xtc...
loading trajectory_27.xtc...
loading trajectory_28.xtc...
loading trajectory_3.xtc...
loading trajectory_4.xtc...
loading trajectory_5.xtc...
loading trajectory_6.xtc...
loading trajectory_7.xtc...
loading trajectory_8.xtc...
loading trajectory_9.xtc...

In [13]:
print(len(fs_dih_feat),fs_dih_feat[0].shape)
ndim = fs_dih_feat[0].shape[1]


(28, (10000, 84))

In [30]:
[len(traj) for traj in fs_dih_feat]


Out[30]:
[10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000,
 10000]

In [31]:
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

In [114]:
# without time-lag: target = input

zero_mean = lambda X:X - X.mean(0)

X_train = np.vstack([traj[:8000] for traj in fs_dih_feat])
y_train = np.vstack([traj[:8000] for traj in fs_dih_feat])

X_test = np.vstack([traj[8000:] for traj in fs_dih_feat])
y_test = np.vstack([traj[8000:] for traj in fs_dih_feat])

In [115]:
# with time-lag: target = the frame tau steps after the input

tau = 1
X_train_t = np.vstack([traj[:8000-tau] for traj in fs_dih_feat])
y_train_t = np.vstack([traj[tau:8000] for traj in fs_dih_feat])

X_test_t = np.vstack([traj[8000:-tau] for traj in fs_dih_feat])
y_test_t = np.vstack([traj[8000+tau:] for traj in fs_dih_feat])

In [118]:
# build model
from keras.models import Sequential
from keras.layers.core import Dense, Dropout, Activation
from keras.optimizers import SGD

def initialize_model(ndim=84,bottleneck=20):
    model = Sequential()
    model.add(Dense(ndim, ndim/2, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dense(ndim/2, bottleneck, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dense(bottleneck, ndim/2, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dense(ndim/2, ndim, init='uniform'))
    model.add(Activation('tanh'))

    sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
    model.compile(loss='mean_squared_error', optimizer=sgd)
    return model

In [119]:
model = initialize_model()

In [106]:
score_before = model.evaluate(X_test, y_test, batch_size=16)
print(score_before)


56000/56000 [==============================] - 1s     
0.217301841268

In [108]:
model.fit(X_train, y_train, nb_epoch=5, batch_size=16)
score = model.evaluate(X_test, y_test, batch_size=16)


Epoch 0
224000/224000 [==============================] - 12s - loss: 0.0975    
Epoch 1
224000/224000 [==============================] - 12s - loss: 0.0648    
Epoch 2
224000/224000 [==============================] - 12s - loss: 0.0606    
Epoch 3
224000/224000 [==============================] - 12s - loss: 0.0587    
Epoch 4
224000/224000 [==============================] - 12s - loss: 0.0573    
56000/56000 [==============================] - 1s     

In [107]:
print(score)


0.0490611214678

In [109]:
X_reconstructed = model.predict(X_train)

In [110]:
np.mean(((X_reconstructed - X_train)**2).sum(1))


Out[110]:
4.7564325394314757

In [111]:
X_reconstructed_test = model.predict(X_test)
np.mean(((X_reconstructed_test - X_test)**2).sum(1))


Out[111]:
5.6648203428348829

In [112]:
from sklearn.decomposition import PCA
pca = PCA(20)
pca.fit(X_train)
y = pca.transform(X_train)
X_reconstructed_pca = pca.inverse_transform(y)
np.mean(((X_reconstructed_pca - X_train)**2).sum(1))


Out[112]:
5.2748446

In [113]:
pca = PCA(20)
pca.fit(X_train)
y = pca.transform(X_test)
X_reconstructed_pca_test = pca.inverse_transform(y)
np.mean(((X_reconstructed_pca_test - X_test)**2).sum(1))


Out[113]:
5.7975378

In [ ]:
# so it looks like we're overfitting! let's see if dropout fixes this

In [98]:
def initialize_dropout_model(ndim=84,bottleneck=20):
    model = Sequential()
    model.add(Dense(ndim, ndim/2, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.5))
    model.add(Dense(ndim/2, bottleneck, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.5))
    model.add(Dense(bottleneck, ndim/2, init='uniform'))
    model.add(Activation('tanh'))
    model.add(Dropout(0.5))
    model.add(Dense(ndim/2, ndim, init='uniform'))
    model.add(Activation('tanh'))

    sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
    model.compile(loss='mean_squared_error', optimizer=sgd)
    return model

In [99]:
model_d = initialize_dropout_model()
score_before_d = model_d.evaluate(X_test, y_test, batch_size=16)
print(score_before_d)


56000/56000 [==============================] - 1s     
0.499997515815

In [100]:
model_d.fit(X_train, y_train, nb_epoch=5, batch_size=16)
score_d = model_d.evaluate(X_test, y_test, batch_size=16)


Epoch 0
224000/224000 [==============================] - 13s - loss: 0.1971    
Epoch 1
224000/224000 [==============================] - 14s - loss: 0.1768    
Epoch 2
224000/224000 [==============================] - 13s - loss: 0.1676    
Epoch 3
224000/224000 [==============================] - 13s - loss: 0.1618    
Epoch 4
224000/224000 [==============================] - 13s - loss: 0.1591    
56000/56000 [==============================] - 2s     

In [ ]:


In [101]:
X_reconstructed_test_d = model_d.predict(X_test)
np.mean(((X_reconstructed_test_d - X_test)**2).sum(1))


Out[101]:
12.542372326842933

In [87]:
model_t = initialize_model()

In [67]:
score_t_before = model_t.evaluate(X_test_t, y_test_t, batch_size=16)
print(score_t_before)


55972/55972 [==============================] - 1s     
0.500124928788

In [68]:
model_t.fit(X_train_t, y_train_t, nb_epoch=5, batch_size=16)
score_t = model.evaluate(X_test_t, y_test_t, batch_size=16)


Epoch 0
223972/223972 [==============================] - 12s - loss: 0.1574    
Epoch 1
223972/223972 [==============================] - 12s - loss: 0.1492    
Epoch 2
223972/223972 [==============================] - 12s - loss: 0.1486    
Epoch 3
223972/223972 [==============================] - 12s - loss: 0.1478    
Epoch 4
223972/223972 [==============================] - 12s - loss: 0.1473    
55972/55972 [==============================] - 1s     

In [69]:
print(score_t)


0.130770606093

In [70]:
X_train[0]


Out[70]:
array([-0.99183977, -0.96380568,  0.76381123, -0.95633799, -0.99000674,
       -0.98337376, -0.7332539 , -0.65258944, -0.88104635, -0.41120651,
       -0.99899232, -0.57467234, -0.81647223, -0.88175702, -0.64476657,
        0.86235702,  0.74185914, -0.74406517, -0.88981295, -0.99596512,
       -0.96402812,  0.12749065,  0.26660579,  0.64543974,  0.29226288,
        0.14102009,  0.18159303,  0.67995495,  0.75771171,  0.47302994,
       -0.91154224,  0.044881  , -0.81838357,  0.57738471,  0.47170395,
       -0.76437956,  0.50630069,  0.67055577,  0.66810703,  0.45632541,
       -0.08974114,  0.26580018, -0.63624775, -0.6840781 ,  0.45409024,
        0.94701457,  0.56205529, -0.3752068 , -0.5833227 , -0.47958723,
       -0.30344114,  0.17257567,  0.83907872,  0.47501677, -0.52139014,
       -0.14408888, -0.25162369,  0.59073681,  0.7006309 , -0.54538411,
       -0.44660074, -0.26289323,  0.9856469 ,  0.77148479,  0.72940874,
        0.89095569,  0.32119066, -0.82709962,  0.92694116,  0.81224054,
        0.87749422,  0.95285016,  0.98499626,  0.54400998, -0.87997675,
        0.85331839,  0.98956478,  0.96782517,  0.80686432,  0.71352386,
        0.83818626,  0.89473337,  0.96482491, -0.16881987], dtype=float32)

In [72]:
X_train.max(),X_train.min()


Out[72]:
(1.0, -1.0)

In [75]:
model_t.predict(X_train[:10])


Out[75]:
array([[ -7.96021700e-01,  -7.93986619e-01,  -6.36180162e-01,
         -8.47349226e-01,  -8.58565688e-01,  -8.39037776e-01,
         -9.49761331e-01,  -9.13124204e-01,  -9.69934762e-01,
         -8.31109107e-01,  -8.99948478e-01,  -8.21225882e-01,
         -9.71444607e-01,  -8.60877275e-01,  -7.47213244e-01,
         -1.75116897e-01,   1.05961919e-01,  -3.43644112e-01,
         -8.11412990e-01,  -8.02834451e-01,  -5.76415837e-01,
          3.74361396e-01,   2.26654530e-01,   2.77057290e-03,
         -1.47431195e-02,   3.03767323e-02,   4.25179452e-01,
          3.14984322e-01,   2.18271226e-01,   2.63046801e-01,
          2.04513609e-01,  -4.85163182e-02,   7.60705769e-02,
          2.34572709e-01,   5.80834821e-02,  -1.11691110e-01,
          3.55886459e-01,   4.76908386e-01,   3.10939670e-01,
          3.06345783e-02,  -1.28974110e-01,  -1.55152604e-02,
         -2.50662535e-01,  -1.80942357e-01,  -1.22285411e-01,
         -8.16266239e-02,   3.60424608e-01,  -4.91279155e-01,
         -5.29736102e-01,  -5.48828125e-01,  -5.20538807e-01,
         -3.16054702e-01,  -2.07482547e-01,  -3.75912488e-02,
         -2.44624048e-01,  -3.92893732e-01,   7.55259395e-03,
          2.35450402e-01,   1.53381526e-01,  -1.19319260e-02,
         -2.36277655e-01,  -6.55826852e-02,   1.87474608e-01,
          7.40500212e-01,   8.47499967e-01,   6.93218112e-01,
          4.09568608e-01,  -6.99643314e-01,   5.96917033e-01,
          7.21699893e-01,   8.60192537e-01,   7.63695061e-01,
          7.34441519e-01,   6.01149678e-01,  -3.96561027e-02,
          5.66967607e-01,   7.48663664e-01,   4.79451776e-01,
          4.06568468e-01,   6.47555351e-01,   5.80172777e-01,
          6.49170935e-01,   3.49345028e-01,   6.34728521e-02],
       [ -8.05496812e-01,  -8.04918408e-01,  -6.48223042e-01,
         -8.31235766e-01,  -8.43944430e-01,  -8.29623103e-01,
         -9.43041325e-01,  -9.67451453e-01,  -9.37329412e-01,
         -8.52510512e-01,  -9.06656981e-01,  -8.41505408e-01,
         -9.39506292e-01,  -8.69128764e-01,  -7.98779011e-01,
         -1.55779600e-01,   4.56755757e-02,  -2.90643364e-01,
         -8.41794074e-01,  -8.13030958e-01,  -6.13888025e-01,
          3.60945970e-01,   1.81869000e-01,  -5.50283343e-02,
         -5.65948188e-02,   5.57382405e-02,   4.60611016e-01,
          3.33586216e-01,   2.02806622e-01,   3.19597423e-01,
          2.28288919e-01,   1.26632750e-02,   8.17129314e-02,
          2.36488909e-01,   9.16338414e-02,  -7.44135603e-02,
          3.58916938e-01,   4.39301848e-01,   3.22589636e-01,
          2.28652842e-02,  -1.50012851e-01,  -3.16963345e-02,
         -2.47692123e-01,  -1.26700833e-01,  -6.11051470e-02,
          3.62040699e-02,   3.52146119e-01,  -5.23832202e-01,
         -5.54665506e-01,  -5.68041921e-01,  -5.46901226e-01,
         -3.68835628e-01,  -3.07940900e-01,  -9.96073484e-02,
         -2.44052082e-01,  -4.01072890e-01,  -3.95201966e-02,
          1.74994186e-01,   1.59393817e-01,  -2.97699869e-03,
         -2.27174014e-01,  -5.81066161e-02,   2.43255913e-01,
          7.56737113e-01,   7.77357936e-01,   5.96812606e-01,
          1.80853367e-01,  -7.14470446e-01,   6.75592065e-01,
          7.49449611e-01,   8.53047371e-01,   8.14089417e-01,
          7.90808916e-01,   7.31860638e-01,   7.40100145e-02,
          5.56916714e-01,   7.44439423e-01,   5.00557005e-01,
          5.32261848e-01,   6.80699468e-01,   6.14748716e-01,
          5.97866237e-01,   3.30609947e-01,  -1.24600358e-01],
       [ -8.04188609e-01,  -7.97017932e-01,  -6.38041914e-01,
         -8.32061231e-01,  -8.46806884e-01,  -8.25176001e-01,
         -9.29160357e-01,  -9.69408214e-01,  -9.33681548e-01,
         -8.34485412e-01,  -9.06556666e-01,  -8.29273045e-01,
         -9.33422804e-01,  -8.64488363e-01,  -7.72268236e-01,
         -1.57604873e-01,   5.75281382e-02,  -3.04749548e-01,
         -8.27774405e-01,  -8.13840389e-01,  -5.92926383e-01,
          3.65031213e-01,   1.82144925e-01,  -5.55967391e-02,
         -5.31636626e-02,   1.66122466e-02,   4.34204698e-01,
          3.30860376e-01,   1.80723980e-01,   2.90492833e-01,
          2.13232502e-01,  -8.13674927e-03,   5.49143702e-02,
          2.26782948e-01,   7.35671222e-02,  -1.04124852e-01,
          3.53229582e-01,   4.27540421e-01,   3.10839295e-01,
          2.31832266e-02,  -1.60916179e-01,  -2.43694782e-02,
         -2.45468065e-01,  -1.23827003e-01,  -5.73905259e-02,
          1.87214315e-02,   3.95093650e-01,  -4.69004571e-01,
         -5.32266796e-01,  -5.35415649e-01,  -5.23042917e-01,
         -3.29075933e-01,  -2.80386567e-01,  -5.62096238e-02,
         -2.04506874e-01,  -3.71205509e-01,   8.75259936e-03,
          1.97012112e-01,   1.88574016e-01,   6.43834472e-04,
         -2.18395948e-01,  -4.92348224e-02,   2.52053499e-01,
          7.53349900e-01,   7.80677676e-01,   6.02822065e-01,
          2.44235188e-01,  -7.49044716e-01,   5.96870601e-01,
          7.31697261e-01,   8.15667272e-01,   7.79518723e-01,
          7.51718283e-01,   7.28473186e-01,   5.92815876e-03,
          5.38809061e-01,   7.17304468e-01,   4.41053599e-01,
          5.10672569e-01,   6.20678961e-01,   5.94946623e-01,
          5.90099156e-01,   3.17923963e-01,  -1.30326867e-01],
       [ -8.02517295e-01,  -8.03206742e-01,  -6.57400966e-01,
         -8.21273804e-01,  -8.45728397e-01,  -8.27823520e-01,
         -9.37679052e-01,  -9.62671638e-01,  -9.39131558e-01,
         -8.43603790e-01,  -8.96186054e-01,  -8.25279176e-01,
         -9.73047018e-01,  -8.76099050e-01,  -7.72885978e-01,
         -2.16777861e-01,   1.73628926e-02,  -3.50864083e-01,
         -8.08324397e-01,  -8.07413816e-01,  -6.18852377e-01,
          3.48358870e-01,   1.99285284e-01,  -4.85963225e-02,
         -6.30331635e-02,   7.49969035e-02,   4.47086751e-01,
          3.08355957e-01,   1.89956337e-01,   2.99772024e-01,
          2.17323869e-01,  -6.25346601e-03,   1.08183496e-01,
          2.32392728e-01,   1.07511945e-01,  -6.47895783e-03,
          3.70503485e-01,   4.44231391e-01,   2.84199089e-01,
          4.91474457e-02,  -1.25959501e-01,  -3.06721143e-02,
         -2.35039607e-01,  -1.44109353e-01,  -7.26560354e-02,
          4.35295403e-02,   3.47883195e-01,  -5.15004337e-01,
         -5.36364138e-01,  -5.43005526e-01,  -5.05781531e-01,
         -3.23914111e-01,  -2.78317302e-01,  -1.05049074e-01,
         -2.93879688e-01,  -3.89487684e-01,  -9.40013006e-02,
          1.12075284e-01,   7.56133497e-02,  -9.90977883e-03,
         -1.99537739e-01,  -5.10767773e-02,   2.42193758e-01,
          7.12074637e-01,   7.99915135e-01,   6.26032293e-01,
          1.74801469e-01,  -7.18763649e-01,   6.65426850e-01,
          7.29571044e-01,   8.18297625e-01,   7.62065768e-01,
          7.28327751e-01,   6.69106603e-01,   4.46745753e-02,
          5.88042974e-01,   6.91811442e-01,   6.08567536e-01,
          5.62863886e-01,   7.45476425e-01,   5.89977026e-01,
          5.91648042e-01,   3.14821392e-01,  -1.19499080e-01],
       [ -8.01895261e-01,  -8.02949190e-01,  -6.42290652e-01,
         -8.29101920e-01,  -8.46625626e-01,  -8.29448462e-01,
         -9.48061287e-01,  -9.29209292e-01,  -9.29704070e-01,
         -8.41043413e-01,  -8.99069309e-01,  -8.24595928e-01,
         -9.66284394e-01,  -8.76962960e-01,  -7.64656484e-01,
         -1.69159114e-01,   6.41044378e-02,  -3.38372529e-01,
         -8.09196830e-01,  -8.07758749e-01,  -5.91534019e-01,
          3.72571170e-01,   2.06965655e-01,  -4.84810024e-02,
         -5.87855875e-02,   5.08028120e-02,   4.49556708e-01,
          3.06080073e-01,   1.94854409e-01,   2.95555651e-01,
          2.12786347e-01,  -2.27703303e-02,   9.13960189e-02,
          2.23333776e-01,   6.53891638e-02,  -7.39332661e-02,
          3.77579540e-01,   4.58850592e-01,   2.92903185e-01,
          2.82579921e-02,  -1.40334681e-01,  -2.43488625e-02,
         -2.60508031e-01,  -1.58136904e-01,  -7.30930418e-02,
          2.73196399e-02,   3.80563349e-01,  -5.06831646e-01,
         -5.28974771e-01,  -5.32434046e-01,  -4.96729672e-01,
         -3.09633106e-01,  -2.44122177e-01,  -6.56959713e-02,
         -2.57092595e-01,  -3.73997778e-01,  -5.78439236e-03,
          1.92224905e-01,   1.18591309e-01,  -2.38710642e-03,
         -1.95935845e-01,  -2.33871117e-02,   2.54528433e-01,
          7.60786414e-01,   8.41732323e-01,   6.39528036e-01,
          2.16265589e-01,  -7.65642941e-01,   6.48767352e-01,
          7.33255982e-01,   8.42293561e-01,   7.68067300e-01,
          7.11588860e-01,   6.45192623e-01,   1.09999776e-02,
          5.86393774e-01,   6.92342579e-01,   4.79358017e-01,
          4.80516046e-01,   7.20900774e-01,   6.03390396e-01,
          6.01479411e-01,   2.70586550e-01,  -1.31401062e-01],
       [ -8.05160642e-01,  -7.78818548e-01,  -6.17892563e-01,
         -8.52835894e-01,  -8.52568984e-01,  -8.36053669e-01,
         -9.47798073e-01,  -9.54165339e-01,  -9.54825401e-01,
         -8.54019761e-01,  -9.03565407e-01,  -8.43573451e-01,
         -9.78897929e-01,  -8.81936371e-01,  -8.00393939e-01,
         -1.89140975e-01,   4.72763777e-02,  -3.76180172e-01,
         -8.29053998e-01,  -8.04461360e-01,  -5.81961870e-01,
          3.26302201e-01,   1.48441955e-01,  -5.00510633e-03,
         -1.03019178e-03,  -7.11604953e-04,   4.49818671e-01,
          3.53703648e-01,   2.16394648e-01,   3.19138616e-01,
          2.44240701e-01,   1.17439032e-03,   9.86485481e-02,
          2.66674638e-01,   1.09747872e-01,  -1.13734044e-01,
          3.71117920e-01,   4.56957400e-01,   2.95444965e-01,
          1.67590920e-02,  -1.27007023e-01,  -3.25786173e-02,
         -2.06095204e-01,  -7.35892802e-02,  -7.15315044e-02,
         -1.02700129e-01,   3.62565845e-01,  -5.16986310e-01,
         -5.59060574e-01,  -5.87586999e-01,  -5.68962097e-01,
         -3.71706933e-01,  -2.97710806e-01,  -5.50196767e-02,
         -2.87278920e-01,  -4.16678995e-01,  -8.65674019e-03,
          1.70011029e-01,   1.35705650e-01,  -4.05752361e-02,
         -2.20732063e-01,  -4.25797477e-02,   2.36262307e-01,
          7.02621460e-01,   6.41774237e-01,   5.78389347e-01,
          4.49100405e-01,  -6.97652400e-01,   6.37379587e-01,
          7.46824920e-01,   8.62283230e-01,   8.26503396e-01,
          8.08242679e-01,   7.09245503e-01,  -2.67401934e-02,
          6.15197897e-01,   7.69826651e-01,   4.90957618e-01,
          5.01590550e-01,   6.80073261e-01,   6.21988058e-01,
          6.00124538e-01,   3.34359318e-01,  -9.81171802e-02],
       [ -8.09486389e-01,  -7.78557777e-01,  -6.25748038e-01,
         -8.52574587e-01,  -8.60516489e-01,  -8.42032790e-01,
         -9.47550952e-01,  -9.03043330e-01,  -9.36999977e-01,
         -8.44031394e-01,  -8.94652605e-01,  -8.32639039e-01,
         -1.01301289e+00,  -8.84220660e-01,  -7.81257570e-01,
         -2.13529408e-01,   3.65089774e-02,  -4.12297070e-01,
         -8.11628222e-01,  -8.02389860e-01,  -5.80414891e-01,
          3.33617657e-01,   1.61500826e-01,   1.99313536e-02,
          2.14754045e-02,   9.91947949e-03,   4.26005036e-01,
          3.20579559e-01,   2.12730289e-01,   2.70646542e-01,
          2.06326365e-01,  -1.25655979e-02,   1.10037997e-01,
          2.41272017e-01,   7.99278468e-02,  -1.18438564e-01,
          3.83761406e-01,   4.62411702e-01,   2.67461509e-01,
          1.30817648e-02,  -1.26132846e-01,  -3.26632001e-02,
         -2.28983685e-01,  -9.12408382e-02,  -1.08791903e-01,
         -1.37222379e-01,   3.24941069e-01,  -4.92186964e-01,
         -5.20625830e-01,  -5.24224579e-01,  -4.96002555e-01,
         -2.80871570e-01,  -2.35847145e-01,  -4.19062674e-02,
         -2.82996267e-01,  -4.01282310e-01,   2.38412917e-02,
          1.69293329e-01,   9.79560614e-02,  -3.98421139e-02,
         -1.95523053e-01,  -1.00112855e-02,   2.47081369e-01,
          7.28133440e-01,   6.43570185e-01,   6.20744407e-01,
          5.09310722e-01,  -6.25034988e-01,   6.09531641e-01,
          7.37696350e-01,   8.40083957e-01,   7.73838639e-01,
          6.49254680e-01,   6.15316033e-01,  -4.38156724e-02,
          6.20995879e-01,   7.39346623e-01,   4.10851747e-01,
          4.76372361e-01,   6.93770647e-01,   6.11327767e-01,
          6.09721422e-01,   2.63751030e-01,  -1.26967639e-01],
       [ -8.12242150e-01,  -7.95593858e-01,  -6.43481910e-01,
         -8.30313146e-01,  -8.52059186e-01,  -8.37961257e-01,
         -9.47511852e-01,  -9.18542385e-01,  -9.28713202e-01,
         -8.44064534e-01,  -8.94931257e-01,  -8.29943776e-01,
         -9.99157131e-01,  -8.80691111e-01,  -7.85918176e-01,
         -2.06377149e-01,   1.71647668e-02,  -3.77477705e-01,
         -8.17772210e-01,  -8.06664109e-01,  -5.99064112e-01,
          3.63127649e-01,   1.82869941e-01,  -2.37774998e-02,
         -1.80559009e-02,   4.28837389e-02,   4.30303395e-01,
          3.06662470e-01,   1.97534069e-01,   2.63721883e-01,
          1.79373845e-01,  -1.05154216e-02,   9.63524953e-02,
          2.20877901e-01,   8.22217017e-02,  -8.21642205e-02,
          3.88540208e-01,   4.43456829e-01,   2.77682930e-01,
          2.57690884e-02,  -1.33444726e-01,  -2.82642692e-02,
         -2.64520228e-01,  -1.25372529e-01,  -9.31760222e-02,
         -3.42212021e-02,   3.35167319e-01,  -4.92363304e-01,
         -5.17796934e-01,  -5.08545160e-01,  -4.81099337e-01,
         -2.63708860e-01,  -2.39828140e-01,  -5.76470196e-02,
         -2.62582153e-01,  -3.94201458e-01,  -1.75239146e-02,
          1.37604043e-01,   9.33580101e-02,  -2.59720832e-02,
         -1.93334341e-01,  -2.05976069e-02,   2.47726202e-01,
          7.78068781e-01,   7.40470886e-01,   6.30606055e-01,
          3.24158967e-01,  -6.59186184e-01,   6.30966127e-01,
          7.39874780e-01,   8.33234966e-01,   7.68973291e-01,
          6.10518515e-01,   6.27463460e-01,  -1.10727549e-02,
          5.76974869e-01,   7.23683536e-01,   4.40269113e-01,
          5.39765596e-01,   7.03541636e-01,   6.05065405e-01,
          6.00728810e-01,   2.64795095e-01,  -1.27223819e-01],
       [ -8.11350584e-01,  -7.96285748e-01,  -6.63239658e-01,
         -8.19833696e-01,  -8.61914754e-01,  -8.53970051e-01,
         -9.72806931e-01,  -8.71715367e-01,  -8.79691005e-01,
         -8.45606327e-01,  -8.89837742e-01,  -8.28890800e-01,
         -9.98262823e-01,  -8.75187933e-01,  -8.02294254e-01,
         -2.01627076e-01,  -3.92079353e-02,  -3.21104407e-01,
         -8.31998527e-01,  -8.21325362e-01,  -6.23623669e-01,
          3.19384038e-01,   2.10860744e-01,  -2.55146027e-02,
         -3.77964079e-02,   1.18485771e-01,   4.24941897e-01,
          2.63069212e-01,   2.01732159e-01,   2.20117375e-01,
          9.90751311e-02,  -1.25714988e-02,   7.79835135e-02,
          1.70194834e-01,   4.13636342e-02,  -6.76810965e-02,
          4.19607162e-01,   4.22638565e-01,   3.10997009e-01,
          2.33793855e-02,  -1.33033454e-01,  -1.94135681e-02,
         -2.10367188e-01,  -1.39415875e-01,  -1.00028321e-01,
          2.96822786e-02,   2.29222417e-01,  -5.02840221e-01,
         -4.97118026e-01,  -4.38753128e-01,  -4.04671818e-01,
         -1.52594000e-01,  -1.87844679e-01,  -5.21717072e-02,
         -2.08136469e-01,  -3.66443634e-01,   7.76946545e-04,
          1.12486020e-01,   6.83554113e-02,  -2.00145692e-02,
         -1.78781271e-01,  -1.39699057e-02,   2.52227902e-01,
          6.25509143e-01,   7.45748878e-01,   6.24314487e-01,
          1.40872300e-01,  -5.01214504e-01,   6.73468530e-01,
          7.61778891e-01,   8.53329659e-01,   7.67596006e-01,
          3.95206660e-01,   5.69629133e-01,   2.31131315e-02,
          5.14760733e-01,   6.74258292e-01,   3.10767293e-01,
          5.62984943e-01,   7.22923040e-01,   6.64104342e-01,
          5.90362787e-01,   2.18784899e-01,  -1.35493159e-01],
       [ -8.11572731e-01,  -8.06255460e-01,  -6.57702625e-01,
         -8.22947562e-01,  -8.61502588e-01,  -8.50544512e-01,
         -9.71735656e-01,  -8.76233876e-01,  -8.66779864e-01,
         -8.31751525e-01,  -8.88998389e-01,  -8.17672133e-01,
         -9.67530131e-01,  -8.71386290e-01,  -7.62163818e-01,
         -1.94168746e-01,  -3.21012735e-03,  -3.24674189e-01,
         -8.14623952e-01,  -8.20117056e-01,  -6.07997417e-01,
          3.70178521e-01,   2.04789266e-01,  -3.80022973e-02,
         -3.02007347e-02,   9.72901434e-02,   4.16001081e-01,
          2.63073742e-01,   1.95365682e-01,   2.10931525e-01,
          1.02140889e-01,  -3.18028778e-02,   6.55589253e-02,
          1.70509487e-01,   1.36930496e-02,  -8.48819688e-02,
          4.00782257e-01,   4.26167488e-01,   2.98265040e-01,
          2.71474477e-02,  -1.41954467e-01,  -1.61141381e-02,
         -2.73986161e-01,  -1.52697638e-01,  -9.74882841e-02,
          2.54236758e-02,   2.70912856e-01,  -4.81100082e-01,
         -4.95656371e-01,  -4.41146046e-01,  -3.92170459e-01,
         -1.38465792e-01,  -1.63776428e-01,  -2.31902003e-02,
         -1.77510798e-01,  -3.27040732e-01,   4.81338352e-02,
          1.65499970e-01,   9.46500599e-02,  -6.10728562e-03,
         -1.69872731e-01,  -7.22856075e-03,   2.60089636e-01,
          7.66372681e-01,   7.83078551e-01,   6.26279712e-01,
          1.76330388e-01,  -5.57856023e-01,   6.26226842e-01,
          7.51476526e-01,   8.62598300e-01,   7.49024034e-01,
          3.99775743e-01,   5.57644069e-01,  -9.86337662e-03,
          5.25155306e-01,   6.24944627e-01,   2.91020006e-01,
          4.87556577e-01,   6.92153752e-01,   6.34768009e-01,
          5.87615490e-01,   2.14351267e-01,  -1.47835344e-01]])

In [127]:
fs = FsPeptide().get()


loading trajectory_1.xtc...
loading trajectory_10.xtc...
loading trajectory_11.xtc...
loading trajectory_12.xtc...
loading trajectory_13.xtc...
loading trajectory_14.xtc...
loading trajectory_15.xtc...
loading trajectory_16.xtc...
loading trajectory_17.xtc...
loading trajectory_18.xtc...
loading trajectory_19.xtc...
loading trajectory_2.xtc...
loading trajectory_20.xtc...
loading trajectory_21.xtc...
loading trajectory_22.xtc...
loading trajectory_23.xtc...
loading trajectory_24.xtc...
loading trajectory_25.xtc...
loading trajectory_26.xtc...
loading trajectory_27.xtc...
loading trajectory_28.xtc...
loading trajectory_3.xtc...
loading trajectory_4.xtc...
loading trajectory_5.xtc...
loading trajectory_6.xtc...
loading trajectory_7.xtc...
loading trajectory_8.xtc...
loading trajectory_9.xtc...

In [128]:
fs?

In [131]:
print(fs.DESCR)


This dataset consists of 28 molecular dynamics trajectories of Fs peptide
(Ace-A_5(AAARA)_3A-NME), a widely studied model system for protein folding.
Each trajectory is 500 ns in length, and saved at a 50 ps time interval (14
us aggegrate sampling). The simulations were performed using the AMBER99SB-ILDN
force field with GBSA-OBC implicit solvent at 300K, starting from randomly
sampled conformations from an initial 400K unfolding simulation. The
simulations were performed with OpenMM 6.0.1.

The dataset, including the script used to generate the dataset
is available on figshare at

http://dx.doi.org/10.6084/m9.figshare.1030363


In [139]:
fs_t = fs.trajectories
fs_t[0]


Out[139]:
<mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x168980390>

In [135]:
import mdtraj as md
md.compute_chi1(fs)


---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-135-effca9c116c7> in <module>()
      1 import mdtraj as md
----> 2 md.compute_chi1(fs)

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/dihedral.pyc in compute_chi1(traj, periodic, opt)
    382         the frames.
    383     """
--> 384     rids, indices = zip(*(_atom_sequence(traj, atoms) for atoms in CHI1_ATOMS))
    385     id_sort = np.argsort(np.concatenate(rids))
    386     if not any(x.size for x in indices):

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/dihedral.pyc in <genexpr>((atoms,))
    382         the frames.
    383     """
--> 384     rids, indices = zip(*(_atom_sequence(traj, atoms) for atoms in CHI1_ATOMS))
    385     id_sort = np.argsort(np.concatenate(rids))
    386     if not any(x.size for x in indices):

/Users/joshuafass/anaconda/envs/py27/lib/python2.7/site-packages/mdtraj/geometry/dihedral.pyc in _atom_sequence(traj, atom_names, residue_offsets)
    194     atom_names = _strip_offsets(atom_names)
    195 
--> 196     atom_dict = _construct_atom_dict(traj.top)
    197 
    198     atom_indices = []

AttributeError: 'Bunch' object has no attribute 'top'

In [136]:
fs


Out[136]:
{'DESCR': 'This dataset consists of 28 molecular dynamics trajectories of Fs peptide\n(Ace-A_5(AAARA)_3A-NME), a widely studied model system for protein folding.\nEach trajectory is 500 ns in length, and saved at a 50 ps time interval (14\nus aggegrate sampling). The simulations were performed using the AMBER99SB-ILDN\nforce field with GBSA-OBC implicit solvent at 300K, starting from randomly\nsampled conformations from an initial 400K unfolding simulation. The\nsimulations were performed with OpenMM 6.0.1.\n\nThe dataset, including the script used to generate the dataset\nis available on figshare at\n\nhttp://dx.doi.org/10.6084/m9.figshare.1030363\n',
 'trajectories': [<mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x168980390>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x168a66e90>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x168a66210>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x169d7acd0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x150f8d050>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177d83cd0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x167e4ef10>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x169d7afd0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x169d7ae10>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1781ac410>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1781ac150>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1781ac550>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x167f8fd10>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1781acc50>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1781ac090>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f543d0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54f50>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54cd0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54c50>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f545d0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54bd0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54450>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54d10>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54090>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54d50>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x177f54690>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x1699580d0>,
  <mdtraj.Trajectory with 10000 frames, 264 atoms, 23 residues, without unitcells at 0x168679f10>]}