การซื้อคืนนี้มีรหัสสำหรับการออกแบบแอนติบอดีแบบเต็มอะตอมแบบ End-to-End ของเรา
มีข้อกำหนดเบื้องต้นที่จำเป็นและเป็นทางเลือก 1 รายการ: การตั้งค่าสภาพแวดล้อม conda (จำเป็น), การได้รับผู้ให้คะแนน (จำเป็น), การเตรียมข้อมูล pdb ของแอนติบอดี (จำเป็น) และการดาวน์โหลดเส้นพื้นฐาน (เป็นทางเลือก)
1. สิ่งแวดล้อม
เราได้จัดเตรียม env.yml
สำหรับการสร้างสภาพแวดล้อม conda แบบรันไทม์โดยการเรียกใช้:
conda env create -f env.yml
2. ผู้ทำประตู
ก่อนอื่นกรุณาเตรียมผู้บันทึกคะแนนสำหรับ TMscore และ DockQ ดังนี้:
ซอร์สโค้ดสำหรับการประเมิน TMscore อยู่ที่ evaluation/TMscore.cpp
กรุณาเรียบเรียงโดย:
g++ -static -O3 -ffast-math -lm -o evaluation/TMscore evaluation/TMscore.cpp
ในการจัดเตรียม DockQ Scorer โปรดโคลน GitHub อย่างเป็นทางการและรวบรวมข้อกำหนดเบื้องต้นตามคำแนะนำ หลังจากนั้น โปรดแก้ไขตัวแปร DOCKQ_DIR
ใน configs.py
ให้ชี้ไปยังไดเร็กทอรีที่มีโปรเจ็กต์ DockQ (เช่น ./DockQ)
ผู้บันทึกคะแนน lDDT อยู่ในสภาพแวดล้อมแบบ Conda และ
3. ข้อมูล PDB
โปรดดาวน์โหลดข้อมูลโครงสร้างทั้งหมดของแอนติบอดีจากหน้าดาวน์โหลดของ SabDab โปรดเข้าสู่แท็บ ดาวน์โหลด ทางด้านซ้ายของหน้าเว็บและดาวน์โหลดไฟล์ zip ที่เก็บถาวรสำหรับโครงสร้าง จากนั้นขยายขนาด:
wget https://opig.stats.ox.ac.uk/webapps/newsabdab/sabdab/archive/all/ -O all_structures.zip
unzip all_structures.zip
คุณควรได้รับโฟลเดอร์ชื่อ all_structures โดยมีลำดับชั้นดังต่อไปนี้:
├── all_structures
│ ├── chothia
│ ├── imgt
│ ├── raw
แต่ละโฟลเดอร์ย่อยประกอบด้วยไฟล์ pdb ที่เปลี่ยนหมายเลขใหม่ตามรูปแบบที่เกี่ยวข้อง เราใช้ IMGT ในรายงาน ดังนั้นโฟลเดอร์ย่อย imgt จึงเป็นสิ่งที่เราสนใจ
เนื่องจากไฟล์ pdb มีการประมวลผลจำนวนมาก โดยปกติแล้วผู้คนจะสร้างไฟล์สรุปสำหรับฐานข้อมูลโครงสร้างซึ่งจะบันทึกข้อมูลพื้นฐานเกี่ยวกับแต่ละโครงสร้างเพื่อการเข้าถึงที่รวดเร็ว เราได้ให้ข้อมูลสรุปของชุดข้อมูลที่ดึงมาเมื่อวันที่ 12 พฤศจิกายน 2022 ( summaries/sabdab_summary.tsv
) เนื่องจากชุดข้อมูลได้รับการอัปเดตเป็นประจำทุกสัปดาห์ หากคุณต้องการใช้เวอร์ชันล่าสุด โปรดดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการ
(ไม่บังคับ) 4. เส้นพื้นฐาน
หากคุณสนใจพื้นฐานไปป์ไลน์ รวมถึงโปรเจ็กต์ต่อไปนี้ และรวมการขึ้นต่อกันตามความต้องการของคุณ:
หลังจากเพิ่มโปรเจ็กต์เหล่านี้แล้ว โปรดอย่าลืมแก้ไขเส้นทางที่เกี่ยวข้องใน ./configs.py
นอกจากนี้เรายังจัดเตรียมสคริปต์สำหรับการเรียงซ้อนโมดูลใน ./scripts/pipeline_inference.sh
จุดตรวจสอบที่ได้รับการฝึกอบรมสำหรับแต่ละงานมีระบุไว้ที่หน้าเผยแพร่ GitHub หากต้องการใช้งาน โปรดดาวน์โหลดไฟล์ที่คุณสนใจและบันทึกไว้ในโฟลเดอร์ . ./checkpoints
เราจัดเตรียมชื่อ การกำหนดค่าการฝึกอบรม (ภายใต้ ./scripts/train/configs
train/configs ) และคำอธิบายของจุดตรวจสอบดังต่อไปนี้:
จุดตรวจ | กำหนดค่า | คำอธิบาย |
---|---|---|
cdrh3_design.ckpt | single_cdr_design.json | การออกแบบ CDR-H3 ที่จับกับอีพิโทป |
struct_prediction.ckpt | struct_prediction.json | การทำนายโครงสร้างที่ซับซ้อน |
affinity_opt.ckpt & ddg_predictor.ckp | single_cdr_opt.json | การปรับสัมพรรคภาพให้เหมาะสมบน CDR-H3 |
multi_cdr_design.ckpt | multi_cdr_design.json | ออกแบบ CDR ทั้งหมด 6 อันพร้อมกัน |
multi_cdr_opt.ckpt & multi_cdr_ddg_predictor | multi_cdr_opt.json | ปรับความสัมพันธ์ให้เหมาะสมบน CDR ทั้ง 6 ตัวพร้อมกัน |
full_design.ckpt | full_design.json | ออกแบบโดเมนตัวแปรทั้งหมด รวมถึงขอบเขตของเฟรมเวิร์ก |
ข้อมูล
ในการประมวลผลข้อมูลดิบล่วงหน้า อันดับแรกเราจำเป็นต้องสร้างข้อมูลสรุปสำหรับการวัดประสิทธิภาพแต่ละรายการในรูปแบบ json จากนั้นจึงแยกชุดข้อมูลออกเป็นชุดฝึก/ตรวจสอบความถูกต้อง/ทดสอบ และสุดท้ายแปลงข้อมูล pdb เป็นอ็อบเจ็กต์ Python เราได้จัดเตรียมสคริปต์สำหรับขั้นตอนเหล่านี้ทั้งหมดใน scripts/data_preprocess.sh
สมมติว่าข้อมูล pdb ที่เปลี่ยนหมายเลข IMGT อยู่ที่ all_structures/imgt/
และคุณต้องการจัดเก็บข้อมูลที่ประมวลผล (~ 5G) ไว้ที่ all_data
คุณก็สามารถเรียกใช้:
bash scripts/data_preprocess.sh all_structures/imgt all_data
ซึ่งใช้เวลาประมาณ 1 ชั่วโมงในการประมวลผลชุดทดสอบ SAbDab, RAbD, Igfold และ SKEMPI V2.0 เป็นเรื่องปกติที่จะเห็นข้อผิดพลาดที่รายงานในกระบวนการนี้ เนื่องจากโครงสร้างแอนติบอดีบางตัวมีคำอธิบายประกอบไม่ถูกต้องหรือมีรูปแบบที่ไม่ถูกต้อง ซึ่งจะหายไปในขั้นตอนการล้างข้อมูล
(ไม่บังคับ) เทมเพลตที่อนุรักษ์ไว้
เราได้จัดเตรียมเทมเพลตที่อนุรักษ์ไว้จาก SAbDab ใน . ./data/template.json
หากคุณสนใจในกระบวนการแยก คุณยังสามารถแยกแม่แบบที่สงวนไว้ออกจากชุดข้อมูลที่ระบุ (เช่น ชุดการฝึกสำหรับงานออกแบบ CDR-H3) โดยการรันคำสั่งต่อไปนี้:
python -m data.framework_templates
--dataset ./all_data/RAbD/train.json
--out ./data/new_template.json
เราใช้ SabDab สำหรับการฝึกอบรมและ RAbD สำหรับการทดสอบ ขั้นแรกโปรดแก้ไขการตั้งค่าใน scripts/train/configs/cdr_design.json
(เส้นทางไปยังชุดข้อมูลและไฮเปอร์พารามิเตอร์อื่นๆ) จากนั้นเรียกใช้คำสั่งด้านล่างเพื่อการฝึก:
GPU=0,1 bash scripts/train/train.sh scripts/train/configs/single_cdr_design.json
โดยปกติขั้นตอนการฝึกอบรมจะใช้เวลาประมาณ 7 ชั่วโมงกับ GeForce RTX 2080 Ti GPU จำนวน 2 ตัว นอกจากนี้เรายังได้จัดเตรียมจุดตรวจที่ได้รับการฝึกอบรมไว้ที่ checkpoints/cdrh3_design.ckpt
จากนั้นโปรดแก้ไขเส้นทางไปยังชุดการทดสอบใน scripts/test/test.sh
และเรียกใช้คำสั่งต่อไปนี้เพื่อทำการทดสอบ:
GPU=0 bash scripts/test/test.sh ./checkpoints/cdrh3_design.ckpt ./all_data/RAbD/test.json ./results
ซึ่งจะบันทึกผลลัพธ์ที่สร้างขึ้นเป็น ./results
เราใช้ SabDab สำหรับการฝึกอบรมและใช้ IgFold สำหรับการทดสอบ ขั้นตอนการฝึกอบรมและการทดสอบคล้ายคลึงกับขั้นตอนการออกแบบ CDR-H3 หลังจากแก้ไขการตั้งค่าใน scripts/train/configs/cdr_design.json
และ scripts/test/test.sh
ตามที่กล่าวไว้ก่อนหน้านี้ โปรดรันคำสั่งต่อไปนี้เพื่อการฝึก:
GPU=0,1 bash scripts/train/train.sh scripts/train/configs/struct_prediction.json
โดยปกติขั้นตอนการฝึกอบรมจะใช้เวลาประมาณ 8 ชั่วโมงบน GeForce RTX 2080 Ti GPU จำนวน 2 ตัว นอกจากนี้เรายังได้จัดเตรียมจุดตรวจที่ได้รับการฝึกอบรมไว้ที่ checkpoints/struct_prediction.ckpt
จากนั้นโปรดรันคำสั่งต่อไปนี้เพื่อทำการทดสอบ:
GPU=0 bash scripts/test/test.sh ./checkpoints/struct_prediction.ckpt ./all_data/IgFold/test.json ./results
เราใช้ SabDab สำหรับการฝึกและใช้แอนติบอดีใน SKEMPI V2.0 สำหรับการทดสอบ ในทำนองเดียวกัน โปรดแก้ไขการตั้งค่าใน scripts/train/configs/affinity_opt.json
, scripts/test/optimize_test.sh
และ scripts/train/train_predictor.sh
เพิ่มเติม จากนั้นโปรดดำเนินการฝึกอบรม dyMEANOpt (~ 5 ชม.):
GPU=0,1 bash scripts/train/train.sh scripts/train/configs/single_cdr_opt.json
จากนั้นเราจำเป็นต้องฝึกตัวทำนาย ddg เกี่ยวกับการเป็นตัวแทนของคอมเพล็กซ์ที่สร้างขึ้น (~ 40 นาที):
GPU=0 bash scripts/train/train_predictor.sh checkpoints/cdrh3_opt.ckpt
เราได้จัดเตรียมจุดตรวจที่ได้รับการฝึกอบรมไว้ที่ checkpoints/cdrh3_opt.ckpt
และ checkpoints/cdrh3_ddg_predictor.ckpt
การทดสอบการปรับให้เหมาะสมสามารถทำได้ผ่าน:
GPU=0 bash scripts/test/optimize_test.sh checkpoints/cdrh3_opt.ckpt checkpoints/cdrh3_ddg_predictor.ckpt ./all_data/SKEMPI/test.json 0 50
โดยจะทำการค้นหาเกรเดียนต์ 50 ขั้นตอนโดยไม่มีข้อจำกัดเกี่ยวกับจำนวนสูงสุดของสิ่งตกค้างที่เปลี่ยนแปลง (เปลี่ยน 0 เป็นตัวเลขใดก็ได้เพื่อจำกัดขอบเขตบนของ
นอกจากนี้เรายังมี API การอนุมานและ การสาธิตซิลิ โกสำหรับแอปพลิเคชันทั่วไปในปัญหาโลกแห่งความเป็นจริง ซึ่งอยู่ใน ./api
api และ ./demos
demos
เราจัดเตรียม API การออกแบบ และ API การปรับให้เหมาะสม ใน ./api
api ซึ่งสามารถรวมเข้ากับโค้ด Python ได้อย่างง่ายดาย
API การออกแบบ ( ./api/design.py
) สามารถใช้เพื่อสร้าง CDR ที่ถูกกำหนดลำดับของขอบเขตเฟรมเวิร์ก ไฟล์ PDB ของแอนติเจนตลอดจนคำจำกัดความของอีพิโทป เราจะใช้สถานการณ์ที่น่าสนใจเพื่ออธิบายการใช้งาน API การออกแบบ
เราต้องการออกแบบแอนติบอดีที่รวมกับสถานะเปิดของสมาชิกวงศ์ย่อย V 1 (TRPV1) ของแคตเตอร์แชนเนลที่มีศักยภาพของตัวรับชั่วคราว ซึ่งมีบทบาทสำคัญในความเจ็บปวดเฉียบพลันและต่อเนื่อง แทนที่จะประดิษฐ์อีพิโทปด้วยมือบน TRPV1 เราพยายามเลียนแบบสารยึดเกาะที่มีอยู่ซึ่งเป็นสารพิษแบบปมคู่ (DkTx) ดังนั้น อันดับแรกเราจำเป็นต้องแยกคำจำกัดความของอีพิโทปออกโดยการวิเคราะห์รูปแบบการจับของสารพิษ จากนั้นจึงออกแบบแอนติบอดีด้วยลำดับที่กำหนดของบริเวณเฟรมเวิร์ก
1. แยกคำจำกัดความของ Epitope
เราจัดเตรียมไฟล์ PDB ของสารเชิงซ้อนของวงศ์ย่อย V ของแคตไอออนแชนเนลที่มีศักยภาพของตัวรับชั่วคราว 1 (TRPV1, สาย ABCD) และทอกซินแบบปมคู่ (DkTx, สาย EF) ใน . ./demos/data/7l2m.pdb
PDB ดั้งเดิมมีหน่วยสมมาตร 4 หน่วย ดังนั้นเราจึงแยกสารพิษสองตัว (สาย EF) ตรงกลางด้วยตนเองเพื่อสร้างสายโซ่สมมาตร 4 สาย e,f,E,F แอนติบอดีแต่ละตัวจะต้องมุ่งเน้นไปที่หน่วยเดียวเท่านั้น ที่นี่เราเลือกเชน E เป็นตัวอย่าง
เราสร้างคำจำกัดความของอีพิโทปโดยการวิเคราะห์ส่วนต่อประสานการจับของเชน E กับ TRPV1:
python -m api.binding_interface
--pdb ./demos/data/7l2m.pdb
--receptor A B C D
--ligand E
--out ./demos/data/E_epitope.json
ตอนนี้คำจำกัดความของ epitope (เช่น สิ่งตกค้างของ TRPV1 บนอินเทอร์เฟซการโยง) จะถูกบันทึกไปที่ ./demos/data/E_epitope.json
ด้วยการเปลี่ยนค่าของอาร์กิวเมนต์ "ลิแกนด์" เป็น e, f และ F เราจะได้รับคำจำกัดความของอีพิโทปสำหรับหน่วยอื่นๆ (อย่าลืมแก้ไขเส้นทางเอาต์พุตด้วย)
2. รับลำดับของขอบเขตกรอบงาน
ขึ้นอยู่กับวัตถุประสงค์สุดท้ายของการออกแบบแอนติบอดี อาจต้องการบริเวณเฟรมเวิร์คที่มีคุณสมบัติทางเคมีกายภาพที่แตกต่างกัน เนื่องจากที่นี่เรานำเสนอเฉพาะกรณีการพิสูจน์แนวคิดเท่านั้น เราจึงสุ่มเลือกหนึ่งรายการจากชุดข้อมูลที่มีอยู่:
heavy chain (H): ' QVQLKESGPGLLQPSQTLSLTCTVSGISLSDYGVHWVRQAPGKGLEWMGIIGHAGGTDYNSNLKSRVSISRDTSKSQVFLKLNSLQQEDTAMYFC----------WGQGIQVTVSSA '
light chain (L): ' YTLTQPPLVSVALGQKATITCSGDKLSDVYVHWYQQKAGQAPVLVIYEDNRRPSGIPDHFSGSNSGNMATLTISKAQAGDEADYYCQSWDGTNSAWVFGSGTKVTVLGQ '
CDR-H3 ดั้งเดิมถูกปิดบังโดย "-" นอกจากนี้ยังรองรับการออกแบบ CDR หลายรายการ ซึ่งจะแสดงให้เห็นในภายหลัง
3. ออกแบบ CDR
ขั้นตอนสุดท้ายคือการออกแบบ CDR ด้วย API การออกแบบ :
from api . design import design
ckpt = './checkpoints/cdrh3_design.ckpt'
root_dir = './demos/data'
pdbs = [ os . path . join ( root_dir , '7l2m.pdb' ) for _ in range ( 4 )]
toxin_chains = [ 'E' , 'e' , 'F' , 'f' ]
remove_chains = [ toxin_chains for _ in range ( 4 )]
epitope_defs = [ os . path . join ( root_dir , c + '_epitope.json' ) for c in toxin_chains ]
identifiers = [ f' { c } _antibody' for c in toxin_chains ]
# use '-' for masking amino acids
frameworks = [
(
( 'H' , 'QVQLKESGPGLLQPSQTLSLTCTVSGISLSDYGVHWVRQAPGKGLEWMGIIGHAGGTDYNSNLKSRVSISRDTSKSQVFLKLNSLQQEDTAMYFC----------WGQGIQVTVSSA' ),
( 'L' , 'YTLTQPPLVSVALGQKATITCSGDKLSDVYVHWYQQKAGQAPVLVIYEDNRRPSGIPDHFSGSNSGNMATLTISKAQAGDEADYYCQSWDGTNSAWVFGSGTKVTVLGQ' )
)
for _ in pdbs
] # the first item of each tuple is heavy chain, the second is light chain
design ( ckpt = ckpt , # path to the checkpoint of the trained model
gpu = 0 , # the ID of the GPU to use
pdbs = pdbs , # paths to the PDB file of each antigen (here antigen is all TRPV1)
epitope_defs = epitope_defs , # paths to the epitope definitions
frameworks = frameworks , # the given sequences of the framework regions
out_dir = root_dir , # output directory
identifiers = identifiers , # name of each output antibody
remove_chains = remove_chains , # remove the original ligand
enable_openmm_relax = True , # use openmm to relax the generated structure
auto_detect_cdrs = False ) # manually use '-' to represent CDR residues
รหัสเหล่านี้ยังถูกเพิ่มเป็นตัวอย่างใน ./api/design.py
ดังนั้นคุณจึงสามารถเรียกใช้ได้โดยตรงโดย:
python -m api.design
ที่นี่เราใช้ "-" เพื่อทำเครื่องหมาย CDR-H3 ด้วยตนเอง แต่คุณยังสามารถตั้งค่า auto_detect_cdrs=True
เพื่อให้ CDR ถูกตัดสินใจโดยอัตโนมัติโดยระบบการกำหนดหมายเลข IMGT ประเภทของ CDR ที่จะออกแบบจะได้รับมาจากจุดตรวจสอบที่กำหนดโดยอัตโนมัติ ในปัจจุบัน API รองรับการออกแบบ CDR เดี่ยวหรือหลายตัวใหม่ เช่นเดียวกับการออกแบบแอนติบอดีแบบเต็ม (โดยการส่ง "-" * length
เป็นอินพุต)
การเปิดใช้งาน Openmm Relax จะทำให้กระบวนการสร้างช้าลงอย่างมาก แต่จะแก้ไขความยาวและมุมของพันธะให้สอดคล้องกับข้อจำกัดทางกายภาพ
Optimize API ( ./api/optimize.py
) ตรงไปตรงมา เราเพิ่มประสิทธิภาพ ./demos/data/1nca.pdb
เป็นตัวอย่าง:
from api . optimize import optimize , ComplexSummary
ckpt = './checkpoints/cdrh3_opt.ckpt'
predictor_ckpt = './checkpoints/cdrh3_ddg_predictor.ckpt'
root_dir = './demos/data/1nca_opt'
summary = ComplexSummary (
pdb = './demos/data/1nca.pdb' ,
heavy_chain = 'H' ,
light_chain = 'L' ,
antigen_chains = [ 'N' ]
)
optimize (
ckpt = ckpt , # path to the checkpoint of the trained model
predictor_ckpt = predictor_ckpt , # path to the checkpoint of the trained ddG predictor
gpu = 0 , # the ID of the GPU to use
cplx_summary = summary , # summary of the complex as well as its PDB file
num_residue_changes = [ 1 , 2 , 3 , 4 , 5 ], # generate 5 samples, changing at most 1, 2, 3, 4, and 5 residues, respectively
out_dir = root_dir , # output directory
batch_size = 16 , # batch size
num_workers = 4 , # number of workers to use
optimize_steps = 50 # number of steps for gradient desend
)
รหัสสำหรับตัวอย่างนี้จะถูกเพิ่มลงใน ./api/optimize.py
ด้วย ดังนั้นคุณจึงสามารถเรียกใช้ได้โดยตรงโดย:
python -m api.optimize
แล้วคุณจะได้ผลลัพธ์ดังนี้:
├── demos/data/1nca_opt
│ ├── 1nca_0_1.pdb
│ ├── 1nca_1_2.pdb
│ ├── 1nca_2_3.pdb
│ ├── 1nca_3_4.pdb
│ ├── 1nca_4_5.pdb
│ ├── 1nca_original.pdb
โดยที่ 1nca_original.pdb
เป็นคอมเพล็กซ์ดั้งเดิม และ 1nca_a_b.pdb
หมายถึง
API การทำนายโครงสร้างที่ซับซ้อน ( ./api/structure_prediction.py
) ทำนายโครงสร้างที่ซับซ้อนโดยพิจารณาจากแอนติเจน ลำดับของสายโซ่หนักและสายโซ่เบา และคำจำกัดความของอีพิโทป การเทียบท่าทั่วโลกยังคงมีความท้าทายมาก ดังนั้นเราจึงจำกัดขอบเขตให้แคบลงให้เหลือเพียงสิ่งที่น่าสนใจเท่านั้น เราทำนาย ./demos/data/1nca.pdb
เป็นตัวอย่าง:
from api . structure_prediction import structure_prediction
ckpt = './checkpoints/struct_prediction.ckpt'
root_dir = './demos/data'
n_sample = 10 # sample 10 conformations
pdbs = [ os . path . join ( root_dir , '1nca_antigen.pdb' ) for _ in range ( n_sample )]
epitope_defs = [ os . path . join ( root_dir , '1nca_epitope.json' ) for _ in range ( n_sample )]
identifiers = [ f'1nca_model_ { i } ' for i in range ( n_sample )]
seqs = [
(
( 'H' , 'QIQLVQSGPELKKPGETVKISCKASGYTFTNYGMNWVKQAPGKGLKWMGWINTNTGEPTYGEEFKGRFAFSLETSASTANLQINNLKNEDTATFFCARGEDNFGSLSDYWGQGTTVTVSS' ),
( 'L' , 'DIVMTQSPKFMSTSVGDRVTITCKASQDVSTAVVWYQQKPGQSPKLLIYWASTRHIGVPDRFAGSGSGTDYTLTISSVQAEDLALYYCQQHYSPPWTFGGGTKLEIK' )
)
for _ in pdbs
] # the first item of each tuple is heavy chain, the second is light chain
structure_prediction (
ckpt = ckpt , # path to the checkpoint of the trained model
gpu = 0 , # the ID of the GPU to use
pdbs = pdbs , # paths to the PDB file of each antigen (here antigen is all TRPV1)
epitope_defs = epitope_defs , # paths to the epitope definitions
seqs = seqs , # the given sequences of the framework regions
out_dir = root_dir , # output directory
identifiers = identifiers , # name of each output antibody
enable_openmm_relax = True ) # use openmm to relax the generated structure
รหัสสำหรับตัวอย่างนี้จะถูกเพิ่มลงใน ./api/structure_prediction.py
ด้วย ดังนั้นคุณจึงสามารถเรียกใช้ได้โดยตรงโดย:
python -m api.structure_prediction
แล้วคุณจะได้ผลลัพธ์ดังนี้:
├── demos/data
│ ├── 1nca_model_0.pdb
│ ├── 1nca_model_1.pdb
│ ├── 1nca_model_2.pdb
│ ├── ...
โดยควรมีตัวอย่างตัวอย่างทั้งหมด 10 รายการ โปรดทราบว่าสิ่งตกค้างสองสามตัวแรกหรือตัวสุดท้ายอาจถูกละทิ้งในผลลัพธ์ หากพวกมันอยู่นอกโดเมนที่แปรผันตามระบบการกำหนดหมายเลข IMGT
การแสดงผล ภายนอกร่างกาย มักใช้สำหรับการเลือกพันธุ์กลายในการจับจากคลังแอนติบอดี ที่นี่เราใช้เวอร์ชัน ในซิลิโก กับ API การออกแบบ โดยการสร้างและกรองตัวเลือกจากชุดข้อมูลที่มีอยู่เทียบกับแอนติเจนที่มีคำจำกัดความของอีพิโทป นอกจากนี้ เราจำเป็นต้องมีหน่วยเมตริกเพื่อประเมินว่าแอนติบอดีที่สร้างขึ้นจับกับเป้าหมายได้ดีเพียงใด ที่นี่เราใช้ FoldX เป็นตัวทำนายความสัมพันธ์ ดังนั้นในการรันการสาธิตนี้ คุณอาจต้องดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการก่อน และแก้ไขเส้นทางใน ./configs.py
ตามลำดับ เรายังคงใช้ตัวอย่าง TRPV1 ในส่วนก่อนหน้า และใช้เกณฑ์มาตรฐาน RAbD เป็นคลังแอนติบอดีที่จัดเตรียมขอบเขตเฟรมเวิร์ก:
python -m demos.display
--ckpt checkpoints/multi_cdr_design.ckpt
--pdb demos/data/7l2m.pdb
--epitope_def demos/data/E_epitope.json
--library ./all_data/rabd_all.json
--n_sample 30
--save_dir demos/display
--gpu 0
ซึ่งจะส่งผลให้มีผู้สมัคร 30 รายที่มีความสัมพันธ์ที่คาดการณ์โดย FoldX
ขอขอบคุณที่สนใจงานของเรา!
โปรดอย่าลังเลที่จะถามคำถามเกี่ยวกับอัลกอริธึม รหัส รวมถึงปัญหาที่พบในการใช้งาน เพื่อให้เราสามารถทำให้มันชัดเจนและดีขึ้น คุณสามารถสร้างปัญหาใน repo github หรือติดต่อเราที่ [email protected]
ไฟล์ด้านล่างถูกยืมมาจากแหล่งเก็บข้อมูลที่มีอยู่:
evaluation/TMscore.cpp
: https://zhanggroup.org/TM-score/evaluation/ddg
: https://github.com/HeliXonProtein/binding-ddg-predictor