Giter Site home page Giter Site logo

cu-ssp's Introduction

cu-ssp

Implementation of High Quality Prediction of Protein Q8 Secondary Structure by Diverse Neural Network Architectures, Iddo Drori, Isht Dwivedi, Pranav Shrestha, Jeffrey Wan, Yueqi Wang, Yunchu He, Anthony Mazza, Hugh Krogh-Freeman, Dimitri Leggas, Kendal Sandridge, Linyong Nan, Kaveri Thakoor, Chinmay Joshi, Sonam Goenka, Chen Keasar, Itsik Pe’er NIPS Workshop on Machine Learning for Molecules and Materials, 2018.

We tackle the problem of protein secondary structure prediction using a common task framework. This lead to the introduction of multiple ideas for neural architectures based on state of the art building blocks, used in this task for the first time. We take a principled machine learning approach, which provides genuine, unbiased performance measures, correcting longstanding errors in the application domain. We focus on the Q8 resolution of secondary structure, an active area for continuously improving methods. We use an ensemble of strong predictors to achieve accuracy of 70.7% (on the CB513 test set using the CB6133filtered training set). These results are statistically indistinguishable from those of the top existing predictors. In the spirit of reproducible research we make our data, models and code available, aiming to set a gold standard for purity of training and testing sets. Such good practices lower entry barriers to this domain and facilitate reproducible, extendable research.

Q3 (left) and Q8 (right) secondary structure spheres of protein 1AKD in CB513 dataset:

Models

Model 1: Bidirectional GRU with convolution blocks

Model 2: U-Net with convolution blocks

Model 3: Temoporal convolutional network

Model 4: Bidirectional GRUs

Model 5: Bidirectional LSTM with attention

Model 6: Convolutions and bidirectional LSTM

Acknowledgments

We would like to thank the 100 CS/DSI/Stats graduate students at Columbia University of the Fall 2018 Deep Learning course for their participation in an in class protein secondary structure prediction competition. The models which achieved top performance in the competition were invited to participate in this follow-up work, which lead to the discovery of new architectures with state of the art performance. We would like to thank Tomer Sidi of BGU for thorough examination of the correct measures used for performance comparison. We would like to thank Jian Zhou and Olga Troyanskaya of Princeton for making their CB6133 dataset available and for updating their CB6133 dataset splits following our work. Chen Keasar is partially supported by grants 1122/14 from the Israel Science Foundation (ISF).

Q3 (left) and Q8 (right) secondary structure spheres of protein 1F52 in CB513 dataset:

cu-ssp's People

Contributors

chinmay41018 avatar idrori avatar isht7 avatar shrestha-pranav avatar sonamg1 avatar yueqiw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cu-ssp's Issues

Error in building Model

I am trying to reproduce your result for research purposes.
but I am getting an error in TimeDistributed Layer
"TimeDistributedLayer should be passed aninput_shape ` with at least 3 dimensions, received: (None, 64)"

could you please guide me on how to resolve this issue?

The Model Code is given below.
def build_model():
input = Input(shape = (None, ))
profiles_input = Input(shape = (None, 22))

Defining an embedding layer mapping from the words (n_words) to a vector of len 128

x1 = Embedding(input_dim = n_words, output_dim = 250, input_length = None)(input)
x1 = concatenate([x1, profiles_input], axis = 2)

x2 = Embedding(input_dim = n_words, output_dim = 125, input_length = None)(input)
x2 = concatenate([x2, profiles_input], axis = 2)

x1 = Dense(1200, activation = "relu")(x1)
x1 = Dropout(0.5)(x1)

Defining a bidirectional LSTM using the embedded representation of the inputs

x2 = Bidirectional(CuDNNGRU(units = 500, return_sequences = True))(x2)
x2 = Bidirectional(CuDNNGRU(units = 100, return_sequences = True))(x2)
COMBO_MOVE = concatenate([x1, x2])
w = Dense(500, activation = "relu")(COMBO_MOVE) # try 500
w = Dropout(0.4)(w)
w = tcn.TCN()(w)
y = TimeDistributed(Dense(n_tags, activation = "softmax"))(w)

Defining the model as a whole and printing the summary

model = Model([input, profiles_input], y)
#model.summary()

Setting up the model with categorical x-entropy loss and the custom accuracy function as accuracy

adamOptimizer = Adam(lr=0.0025, beta_1=0.8, beta_2=0.8, epsilon=None, decay=0.0001, amsgrad=False)
model.compile(optimizer = adamOptimizer, loss = "categorical_crossentropy", metrics = ["accuracy", accuracy])
return model

ValueError: Found two metrics with the same name: accuracy

Sorry to interrupt. I had problems running Mode1 and Model5. “ValueError: Found two metrics with the same name: accuracy”. That's what I got wrong. In terms of the runtime environment, I tried several, but I'll just list a few:

    1:python=3.8.3   keras=2.7.0    tensorflow=2.7.0(CPU)
    2:python=3.8.3   cudatoolkit=11.3.1   cudnn= 8.2.1   tensorflow-gpu=2.6.0(GPU)

As you can see, the same problem exists when running both environments.So, I can only botheryou, is it my environment or something else?Please answer, thank you.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.