Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation


Logo

FoldGPT: Conditional Protein Structure Generation with GPT model

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Downstream Tasks
  5. Dataset
  6. License
  7. Contact
  8. Citation

About The Project

This project aims to generate protein structures using FoldLanguage via a GPT model. Here's why we introduce FoldGPT:

  • Condition Token: encoding full information (seq, struct, and func) of the known residues.
  • Prompt Token: encoding partial information (seq or func) of residues.
  • Mask Token: used for learning the feature of unkown residues.

Currently, we only encode the structural vq_id as conditional features, while leaving sequence and function conditions as future work to serve as a multimodal generative model.

(back to top)

Getting Started

conda env create -f environment.yml

Usage

Unconditional Structure Generation

export PYTHONPATH=project_path
CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/unconditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --length 150 --nums 20 --mask_mode unconditional

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 2.0, denoising steps are 20, the protein contains 150 residues.

LengthFig1Fig2Fig3
50refrefref
100refrefref
200refrefref
300refrefref

Conditional Structure Generation

CUDA_VISIBLE_DEVICES=0 python sampling.py --save_path results/conditional --config model_zoom/config.yaml --checkpoint model_zoom/params.ckpt --temperature 2.0 --num_iter 20 --nums 20 --mask_mode conditional --template 8vrwB.pdb --mask 39-51,85-98

One can use this script to generate protein structures from noise. The molel will save nums generated pdbs in save_path, the sampling temperature is 0.5, the protein contains 150 residues. The structure template is xxx.pdb, where residues in 39-51 and 85-98 are masked.

NameFigComment
8vrwB_refrefreference structure
8vrwB_inpaint1refinpainting residues from 20 to 30
8vrwB_inpaint2refinpainting residues from 60 to 80
8vrwB_inpaint3refinpainting residues from 110 to 140
8vrwB_loop_designrefloop design
scaffolding1refscaffolding
scaffolding2refscaffolding
scaffolding3refscaffolding

(back to top)

Dataset & Model

TODO

License

Distributed under the Apache 2.0 license License. See LICENSE.txt for more information.

(back to top)

Contact

Zhangyang Gao - gaozhangyang@westlake.edu.cn

(back to top)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages