GithubHelp home page GithubHelp logo

tintinet.jl's Introduction

TintiNet.jl

TintiNet.jl is the package that implements the Topological Inference by Neural Transformer-Inceptor Network architecture, as developed and described by G. Bottino and L. Martínez in the manuscript Estimation of protein topological properties from single sequences using a fast language model (in preparation)

This repository is a work in progress and lacks some relevant functionality, but contains a working example for training and running inference on a TintiNet if the user has access to a CUDA-capable GPU with 5 GB or more.


Setting up

In order to follow this tutorial, you will first need to ensure you have CUDA (major version 11 - we used 11.4) and CUDNN (major version 8 - we used 8.2) installed in your system. CUDA and CUDNN are proprietary software and can be downloaded from https://developer.nvidia.com/

You will also need a Julia language installation. We recommend version 1.6. To obtain Julia, visit https://julialang.org/downloads/ and follow the instructions.

Installing packages

If you are new to Julia, there is a package manager included that will help you install TintiNet.jl. in the REPL, you can type ] to bring up the package command-line and simply install the TintiNet package by typing $julia> ]add https://github.com/Hugemiler/TintiNet.jl.git. It should install any dependencies, provided you have already set up CUDA and CUDNN adequately.


Running the Example

In this repository, we provide an example script that allows you to build a specific version of the IGBT TintiNet. The script will allow you to tinker with this specific architecture and train it on over 30k protein sequences, saving model and optimizer checkpoints.

Tutorial

  1. Setting up:
  • Clone this repository
  • Unzip the file datasets.tar.gz in the same folder.
  • (optional) Edit the header structures hyperpar and config in the examples/train_TintiNet_IGBT_classifier.jl file to alter the network size if necessary.
  1. Predicting 1D properties on protein samples using the pretrained models
  • Ensure Julia is in our PATH
  • Navigate to the exmples directory and run the prediction script with $> julia predict_TintiNet_IGBT.jl inputfile outputdir. Argument inputfile receives a FASTA document with a list of proteins (refer to example_samples.fasta for structure), and argument outputdirreceives the path to a director where the prediction outputs will be written. We provide an example inputfile comprised of the first 200 entries of CATH-S40. To use this inputfile, run command $> julia predict_TintiNet_IGBT.jl example_samples.fasta example_outputs
  1. Training the Classifier network and using your model for inference
  • Uncomment the last line of examples/train_TintiNet_IGBT_classifier.jl and run the file using $julia> include("train_TintiNet_IGBT_classifier.jl") from the REPL.
  • The generated model files will be stored in the examples folder. Take note of the training log and select a checkpoint.
  • To run prediction using your own trained model, edit line @load "./example_classifier_model.bson" checkpoint_model in predict_TintiNet_IGBT.jl to point to your checkpoint.
  1. Training the Regressor network and using your model for inference
  • Uncomment the last line of examples/train_TintiNet_IGBT_regressor.jl and run the file using $julia> include("train_TintiNet_IGBT_regressor.jl") from the REPL.
  • The generated model files will be stored in the examples folder. Take note of the training log and select a checkpoint.
  • To run prediction using your own trained model, edit line @load "./example_regressor_model.bson" checkpoint_model in predict_TintiNet_IGBT.jl to point to your checkpoint.

tintinet.jl's People

Contributors

hugemiler avatar lmiq avatar

Stargazers

Theo Portlock avatar PingYen avatar 是夕流芳 avatar Hiroki Ban avatar  avatar Nikita avatar Carlo Lucibello avatar Keith Hughitt avatar  avatar Elias Carvalho avatar Diego Javier Zea avatar Joe Greener avatar Vinicius Piccoli avatar  avatar Kevin Bonham avatar

Watchers

 avatar

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.