当前位置: 首页 > news >正文

PSP - 从头搭建 抗原类别 (GPCR) 的 蛋白质结构预测 项目流程

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/134595717

GPCRs(G Protein-Coupled Receptors,G蛋白偶联受体),又称为7次跨膜受体,是细胞信号传导中的重要蛋白质,当膜外的配体作用于该受体时,该受体的膜内部分与G蛋白相互结合激活G蛋白,进而启动不同的信号转导通路,参与多种生理和病理过程,如免疫调节、行为和情绪的调节、感觉的传递、内稳态的调节以及肿瘤的生长与转移等。G 蛋白偶联受体(GPCR)超家族包含约 600-1000个靶标,是已知最大的一类具有治疗价值的分子靶标,目前世界药物市场上至少有三分之一的小分子药物是GPCR的激动剂或拮抗剂。GPCR过表达细胞系已广泛用于药物筛选和自身免疫性疾病的病因和发病机制研究。

GPCR

预测流程框架如下:

Structure

1. GPCR 数据集

GPCR 数据,来自于 GPCR-DB 官网,其中包括 PDB、GPCR chain id、PDB Date 等信息,再从 PDB 中获取 FASTA Sequence 信息,即:

GPCR

PDB 的 FASTA Sequence,来自于 RCSB 官网,如下:

PDB

8IRS 的 FASTA 序列,如下:

>8IRS_1|Chain A|Guanine nucleotide-binding protein G(i) subunit alpha-1|Homo sapiens (9606)
MGCTLSAEDKAAVERSKMIDRNLREDGEKAAREVKLLLLGAGESGKNTIVKQMKIIHEAGYSEEECKQYKAVVYSNTIQSIIAIIRAMGRLKIDFGDSARADDARQLFVLAGAAEEGFMTAELAGVIKRLWKDSGVQACFNRSREYQLNDSAAYYLNDLDRIAQPNYIPTQQDVLRTRVKTTGIVETHFTFKDLHFKMFDVGAQRSERKKWIHCFEGVTAIIFCVALSDYDLVLAEDEEMNRMHASMKLFDSICNNKWFTDTSIILFLNKKDLFEEKIKKSPLTICYPEYAGSNTYEEAAAYIQCQFEDLNKRKDTKEIYTHFTCSTDTKNVQFVFDAVTDVIIKNNLKDCGLF
>8IRS_2|Chain B|Guanine nucleotide-binding protein G(I)/G(S)/G(T) subunit beta-1|Homo sapiens (9606)
MGSLLQSELDQLRQEAEQLKNQIRDARKACADATLSQITNNIDPVGRIQMRTRRTLRGHLAKIYAMHWGTDSRLLVSASQDGKLIIWDSYTTNKVHAIPLRSSWVMTCAYAPSGNYVACGGLDNICSIYNLKTREGNVRVSRELAGHTGYLSCCRFLDDNQIVTSSGDTTCALWDIETGQQTTTFTGHTGDVMSLSLAPDTRLFVSGACDASAKLWDVREGMCRQTFTGHESDINAICFFPNGNAFATGSDDATCRLFDLRADQELMTYSHDNIICGITSVSFSKSGRLLLAGYDDFNCNVWDALKADRAGVLAGHDNRVSCLGVTDDGMAVATGSWDSFLKIWN
>8IRS_3|Chain C[auth E]|ScFv16|Mus musculus (10090)
DVQLVESGGGLVQPGGSRKLSCSASGFAFSSFGMHWVRQAPEKGLEWVAYISSGSGTIYYADTVKGRFTISRDDPKNTLFLQMTSLRSEDTAMYYCVRSIYYYGSSPFDFWGQGTTLTVSSGGGGSGGGGSGGGGSDIVMTQATSSVPVTPGESVSISCRSSKSLLHSNGNTYLYWFLQRPGQSPQLLIYRMSNLASGVPDRFSGSGSGTAFTLTISRLEAEDVGVYYCMQHLEYPLTFGAGTKLELK
>8IRS_4|Chain D[auth G]|Guanine nucleotide-binding protein G(I)/G(S)/G(O) subunit gamma-2|Homo sapiens (9606)
MASNNTASIAQARKLVEQLKMEANIDRIKVSKAAADLMAYCEAHAKEDPLLTPVPASENPFREKKFFCAIL
>8IRS_5|Chain E[auth R]|Soluble cytochrome b562,D(2) dopamine receptor|Escherichia coli (562)
DYKDDDDAKLQTMHHHHHHHHHHHHHHHADLEDNWETLNDNLKVIEKADNAAQVKDALTKMRAAALDAQKATPPKLEDKSPDSPEMKDFRHGFDILVGQIDDALKLANEGKVKEAQAAAEQLKTTRNAYIQKYLASENLYFQGGTMDPLNLSWYDDDLERQNWSRPFNGSDGKADRPHYNYYATLLTLLIAVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMLYNTRYSSKRRVTVMISIVWVLSFTISCPLLFGLNNADQNECIIANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRRRRKRVNTKRSSRAFRAHLRAPLKGNCTHPEDMKLCTVIMKSNGSFPVNRRRVEAARRAQELEMEMLSSTSPPERTRYSPIPPSHHQLTLPDPSHHGLHSTPDSPAKPEKNGHAKDHPKIAKIFEIQTMPNGKTRTSLKTMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCNIPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFLKILHC

存储的 8irs 序列,即:

pdb,chain,seq,mol,gpcr_chain
8irs,"R,G,E,B,A","DYKDDDDAKLQTMHHHHHHHHHHHHHHHADLEDNWETLNDNLKVIEKADNAAQVKDALTKMRAAALDAQKATPPKLEDKSPDSPEMKDFRHGFDILVGQIDDALKLANEGKVKEAQAAAEQLKTTRNAYIQKYLASENLYFQGGTMDPLNLSWYDDDLERQNWSRPFNGSDGKADRPHYNYYATLLTLLIAVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMLYNTRYSSKRRVTVMISIVWVLSFTISCPLLFGLNNADQNECIIANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRRRRKRVNTKRSSRAFRAHLRAPLKGNCTHPEDMKLCTVIMKSNGSFPVNRRRVEAARRAQELEMEMLSSTSPPERTRYSPIPPSHHQLTLPDPSHHGLHSTPDSPAKPEKNGHAKDHPKIAKIFEIQTMPNGKTRTSLKTMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCNIPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFLKILHC,MASNNTASIAQARKLVEQLKMEANIDRIKVSKAAADLMAYCEAHAKEDPLLTPVPASENPFREKKFFCAIL,DVQLVESGGGLVQPGGSRKLSCSASGFAFSSFGMHWVRQAPEKGLEWVAYISSGSGTIYYADTVKGRFTISRDDPKNTLFLQMTSLRSEDTAMYYCVRSIYYYGSSPFDFWGQGTTLTVSSGGGGSGGGGSGGGGSDIVMTQATSSVPVTPGESVSISCRSSKSLLHSNGNTYLYWFLQRPGQSPQLLIYRMSNLASGVPDRFSGSGSGTAFTLTISRLEAEDVGVYYCMQHLEYPLTFGAGTKLELK,MGSLLQSELDQLRQEAEQLKNQIRDARKACADATLSQITNNIDPVGRIQMRTRRTLRGHLAKIYAMHWGTDSRLLVSASQDGKLIIWDSYTTNKVHAIPLRSSWVMTCAYAPSGNYVACGGLDNICSIYNLKTREGNVRVSRELAGHTGYLSCCRFLDDNQIVTSSGDTTCALWDIETGQQTTTFTGHTGDVMSLSLAPDTRLFVSGACDASAKLWDVREGMCRQTFTGHESDINAICFFPNGNAFATGSDDATCRLFDLRADQELMTYSHDNIICGITSVSFSKSGRLLLAGYDDFNCNVWDALKADRAGVLAGHDNRVSCLGVTDDGMAVATGSWDSFLKIWN,MGCTLSAEDKAAVERSKMIDRNLREDGEKAAREVKLLLLGAGESGKNTIVKQMKIIHEAGYSEEECKQYKAVVYSNTIQSIIAIIRAMGRLKIDFGDSARADDARQLFVLAGAAEEGFMTAELAGVIKRLWKDSGVQACFNRSREYQLNDSAAYYLNDLDRIAQPNYIPTQQDVLRTRVKTTGIVETHFTFKDLHFKMFDVGAQRSERKKWIHCFEGVTAIIFCVALSDYDLVLAEDEEMNRMHASMKLFDSICNNKWFTDTSIILFLNKKDLFEEKIKKSPLTICYPEYAGSNTYEEAAAYIQCQFEDLNKRKDTKEIYTHFTCSTDTKNVQFVFDAVTDVIIKNNLKDCGLF",R

注意:Chain ID 优先使用 auth 值,其次使用默认的 Chain 值,例如 Chain D[auth G] 是 G,Chain A 是 A。

获取 CSV 文件 gpcr_dataset.csv,字段包括:pdbchainseqgpcr_chain 等关键字段。

2. 导出 PDB 与 FASTA 数据

根据数据文件,导出 GPCR 相关的复合物 PDB 与 多链 FASTA,再根据 GPCR 链 (Preferred Chain) 导出单体 PDB 与 单链 FASTA。

2.1 导出 PDB 复合物与蛋白质序列

调用 p1_main_gpcr_pdb_exporter.py,提取 GPCR 复合物结构与序列。

python3 gpcr/p1_main_gpcr_pdb_exporter.py \
-i gpcr/gpcr_data_filter.csv \
-p gpcr/gpcr_complex_v2/pdb_complex_446 \
-f gpcr/gpcr_complex_v2/fasta_complex_446

存储的 PDB 的格式与 FASTA 的格式,建议保留 PDB 名称、链名、链长、全部序列长度,即:

  • PDB: 8IW9_A234_B338_C53_R309_S231_N128_1293.pdb
  • FASTA: 8IW9_A362_B377_C59_N128_R348_S285_1559.fasta

注意:全长的 FASTA 序列预测 PDB 结构,优于从 PDB 中提取的 FASTA 序列预测的结构,原因是 PDB 结构中缺失一些残基位置。

GPCR 复合物的输出位置,包括 PDB 与 FASTA,即:

gpcr/gpcr_complex_v2/pdb_complex_446/
gpcr/gpcr_complex_v2/fasta_complex_446/

8IW9_A362_B377_C59_N128_R348_S285_1559.fasta 序列:

>A
MMGCTLSAEDKAAVERSKMIEKQLQKDKQVYRATHRLLLLGADNSGKSTIVKQMRIYHVNGYSEEECKQYKAVVYSNTIQSIIAIIRAMGRLKIDFGDSARADDARQLFVLAGAAEEGFMTAELAGVIKRLWKDSGVQACFNRSREYQLNDSAAYYLNDLDRIAQPNYIPTQQDVLRTRVKTSGIFETKFQVDKVNFHMFDVGAQRDERRKWIQCFNDVTAIIFVVDSSDYNRLQEALNDFKSIWNNRWLRTISVILFLNKQDLLAEKVLAGKSKIEDYFPEFARYTTPEDATPEPGEDPRVTRAKYFIRDEFLRISTASGDGRHYCYPHFTCSVDTENARRIFNDCRDIIQRMHLRQYELL
>B
MHHHHHHGSLLQSELDQLRQEAEQLKNQIRDARKACADATLSQITNNIDPVGRIQMRTRRTLRGHLAKIYAMHWGTDSRLLVSASQDGKLIIWDSYTTNKVHAIPLRSSWVMTCAYAPSGNYVACGGLDNICSIYNLKTREGNVRVSRELAGHTGYLSCCRFLDDNQIVTSSGDTTCALWDIETGQQTTTFTGHTGDVMSLSLAPDTRLFVSGACDASAKLWDVREGMCRQTFTGHESDINAICFFPNGNAFATGSDDATCRLFDLRADQELMTYSHDNIICGITSVSFSKSGRLLLAGYDDFNCNVWDALKADRAGVLAGHDNRVSCLGVTDDGMAVATGSWDSFLKIWNGSSGGGGSGGGGSSGVSGWRLFKKIS
>C
NTASIAQARKLVEQLKMEANIDRIKVSKAAADLMAYCEAHAKEDPLLTPVPASENPFRE
>N
QVQLQESGGGLVQPGGSLRLSCAASGFTFSNYKMNWVRQAPGKGLEWVSDISQSGASISYTGSVKGRFTISRDNAKNTLYLQMNSLKPEDTAVYYCARCPAPFTRDCFDVTSTTYAYRGQGTQVTVSS
>R
MTSDFSPEPPMELCYENVNGSCIKSSYAPWPRAILYGVLGLGALLAVFGNLLVIIAILHFKQLHTPTNFLVASLACADFLVGVTVMPFSTVRSVESCWYFGESYCKFHTCFDTSFCFASLFHLCCISIDRYIAVTDPLTYPTKFTVSVSGLCIALSWFFSVTYSFSIFYTGANEEGIEELVVALTCVGGCQAPLNQNWVLLCFLLFFLPTVVMVFLYGRIFLVAKYQARKIEGTANQAQASSESYKERVAKRERKAAKTLGIAMAAFLVSWLPYIIDAVIDAYMNFITPAYVYEILVWCVYYNSAMNPLIYAFFYPWFRKAIKLIVSGKVFRADSSTTNLFSEEAGAG
>S
MLLVNQSHQGFNKEHTSKMVSAIVLYVLLAAAAHSAFAVQLVESGGGLVQPGGSRKLSCSASGFAFSSFGMHWVRQAPEKGLEWVAYISSGSGTIYYADTVKGRFTISRDDPKNTLFLQMTSLRSEDTAMYYCVRSIYYYGSSPFDFWGQGTTLTVSAGGGGSGGGGSGGGGSADIVMTQATSSVPVTPGESVSISCRSSKSLLHSNGNTYLYWFLQRPGQSPQLLIYRMSNLASGVPDRFSGSGSGTAFTLTISRLEAEDVGVYYCMQHLEYPLTFGAGTKLEL

2.2 统计与清洗 CSV 文件

调用 p2_main_gpcr_generate_csv.py,根据 FASTA 文件,在原文件中,去除错误的 Case,保留现有的 Case,即:

python3 gpcr/p2_main_gpcr_generate_csv.py \
-i gpcr/gpcr_data_filter.csv \
-f gpcr/gpcr_complex_v2/fasta_complex_446 \
-o gpcr/gpcr_complex_v2/gpcr_info_446.csv

GPCR 复合物是否包含 抗体(antibody) 链的数据类型:

{'antibody': 340, 'no antibody': 106}

更新的 GPCR 信息文件:

pdb,ab,chains,gpcr,g_len,seqs
7XTC,True,"A,B,G,N,R",R,576,"MGCLGNSKTED..."

2.3 拆分 GPCR 单链的 PDB 与 FASTA

调用 p3_main_gpcr_chain_pdb_exporter.py,根据 GPCR 链拆分 PDB 与 FASTA,即:

python3 gpcr/p3_main_gpcr_chain_pdb_exporter.py \
-i gpcr/gpcr_complex_v2/gpcr_info_446.csv \
-f gpcr/gpcr_complex_v2/fasta_complex_446 \
-p gpcr/gpcr_complex_v2/pdb_complex_446 \
-of gpcr/gpcr_complex_v2/gcpr_chain/fasta \
-op gpcr/gpcr_complex_v2/gcpr_chain/pdb

在拆分 PDB 单链之后,使用格式化 PDB,即保证残基中 CA 只有1个,同时链 ID 转换成 A,有利于后续的结构评估。

输出的 GPCR 链,序列是全长,FASTA 长度大于 PDB 长度,如下:

  • 8IW9_R309.pdb
  • 8IW9_R348.fasta

8IW9_R348.fasta 的序列,即:

>R
MTSDFSPEPPMELCYENVNGSCIKSSYAPWPRAILYGVLGLGALLAVFGNLLVIIAILHFKQLHTPTNFLVASLACADFLVGVTVMPFSTVRSVESCWYFGESYCKFHTCFDTSFCFASLFHLCCISIDRYIAVTDPLTYPTKFTVSVSGLCIALSWFFSVTYSFSIFYTGANEEGIEELVVALTCVGGCQAPLNQNWVLLCFLLFFLPTVVMVFLYGRIFLVAKYQARKIEGTANQAQASSESYKERVAKRERKAAKTLGIAMAAFLVSWLPYIIDAVIDAYMNFITPAYVYEILVWCVYYNSAMNPLIYAFFYPWFRKAIKLIVSGKVFRADSSTTNLFSEEAGAG

2.4 GPCR 数据集区分 Monomer 与 Multimer

调用 p4_main_gpcr_monomer_multimer_spliter.py,拆分成 Monomer 与 Multimer 的 FASTA:

python3 gpcr/p4_main_gpcr_monomer_multimer_spliter.py \
-i gpcr/gpcr_complex_v2/fasta_complex_446/ \
-mo gpcr/gpcr_complex_v2/fasta_monomer_36 \
-mu gpcr/gpcr_complex_v2/fasta_multimer_410

确保 Monomer 与 Multimer 的数量之和,等于之前的结构数量,即 36 + 410 = 446,输出如下:

  • Monomer 的 FASTA 文件:8I2H_A682.fasta
  • Multimer 的 FASTA 文件:8IW9_A362_B377_C59_N128_R348_S285_1559.fasta

8I2H_A682.fasta 序列如下:

>A
LGSGCHHRICHCSNRVFLCQESKVTEIPSDLPRNAIELRFVLTKLRVIQKGAFSGFGDLEKIEISQNDVLEVIEADVFSNLPKLHEIRIEKANNLLYINPEAFQNLPNLQYLLISNTGIKHLPDVHKIHSLQKVLLDIQDNINIHTIERNSFVGLSFESVILWLNKNGIQEIHNCAFNGTQLDELNLSDNNNLEELPNDVFHGASGPVILDISRTRIHSLPSYGLENLKKLRARSTYNLKKLPTLEKLVALMEASLTYPSHCCAFANWRRQISELHPICNKSILRQEVDYMTQARGQRSSLAEDNESSYSRGFDMTYTEFDYDLCNEVVDVTCSPKPDAFNPCEDIMGYNILRVLIWFISILAITGNIIVLVILTTSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSQYHNYAIDWQTGAGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMQLDCKVQLRHAASVMVMGWIFAFAAALFPIFGISSYMKVSICLPMDIDSPLSQLYVMSLLVLNVLAFVVICGCYIHIYLTVRNPNIVSSSSDTRIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKAKILLVLFHPINSCANPFLYAIFTKNFRRDFFILLSKCGCYEMQAQIYRTETSSTVHNTHPRNGHCSSAPRVTNGSTYILVPLSHLAQN

拆分成 Monomer 与 Multimer 主要原因是蛋白质结构预测算法,区分 Monomer 与 Multimer,使用不同的模型与算法框架,进行预测。

2.5 GPCR 单链区分 Antibody

调用 p5_main_gpcr_antibody_spliter.py,通过标签文件,拆分出 Antibody 与 Non-Antibody 数据集的 PDB 与 FASTA 文件:

python3 gpcr/p5_main_gpcr_antibody_spliter.py \
-i gpcr/gpcr_complex_v2/gpcr_info_446.csv \
-r gpcr/gpcr_complex_v2/gcpr_chain/pdb_446 \
-oa gpcr/gpcr_complex_v2/gcpr_chain/pdb_ab \
-on gpcr/gpcr_complex_v2/gcpr_chain/pdb_nab \
-m pdb

日志:[Info] sample: 446, ab: 340, nab: 106

2.6 从 PDB 中导出已预测残基序列

调用 p6_main_gpcr_short_fasta_exporter.py,从 PDB 中提取 FASTA (短序列),用于后续评估:

python3 gpcr/p6_main_gpcr_short_fasta_exporter.py \
-i gpcr/gpcr_complex_v2/pdb_complex_446 \
-o gpcr/gpcr_complex_v2/fasta_from_pdb_446

PDB 中提取 FASTA 短序列的预测效果,低于真实的长序列,用于后续评估。

输出的 FASTA 序列长度 与 PDB 一致:

  • FASTA:8IW9_A234_B338_C53_R309_S231_N128_1293.fasta
  • PDB:8IW9_A234_B338_C53_N128_R309_S231_1293.pdb

3. 搜索 MSA 序列与导出 PDB 结构

搜索 MSA 序列,预测 PDB 结构,导出 PDB 结构,从 Multimer 拆出单链,再根据 FASTA 格式化。

3.1 搜索 MSA

推理 AF2 的 MSA 脚本,需要区分 Monomer 与 Multimer,即:

nohup bash run_alphafold.sh -f gpcr/gpcr_complex_v2/fasta_multimer_410/ -o gpcr/gpcr_complex_v2/fasta_multimer_410_msas -m multimer -h true > nohup.fasta_multimer_410_msas.out &nohup bash run_alphafold.sh -f gpcr/gpcr_complex_v2/fasta_monomer_36/ -o gpcr/gpcr_complex_v2/fasta_monomer_36_msas -m monomer -h true > nohup.fasta_monomer_36_msas.out &nohup bash run_alphafold.sh -f gpcr/gpcr_complex_v2/gcpr_chain/fasta_446 -o gpcr/gpcr_complex_v2/gcpr_chain/fasta_446_msas -m monomer -h true > nohup.gcpr_chain_fasta_msas.out &

使用 MSA 服务推理序列,即:

python msa_main.py -m 0 -f gpcr/gpcr_complex_v2/fasta_multimer_410/ -r mydata/test_fasta_multimer_410.json
python msa_main.py -m 1 -r mydata/test_fasta_multimer_410.jsonpython msa_main.py -m 0 -f gpcr/gpcr_complex_v2/fasta_monomer_36/ -r mydata/test_fasta_monomer_36.json
python msa_main.py -m 1 -r mydata/test_fasta_monomer_36.jsonpython msa_main.py -m 0 -f gpcr/gpcr_complex_v2/gcpr_chain/fasta_446/ -r mydata/test_fasta_446.json
python msa_main.py -m 1 -r mydata/test_fasta_446.json

以及预测 Monomer 与 Multimer 的结构。

3.1 导出 Monomer 的 PDB 结构

调用 p7_main_xtrimo_monomer_exporter.py,导出预测的 Monomer PDB 结构至单个文件夹,用于后续评估:

python3 gpcr/main_xtrimo_monomer_exporter.py \
-i gpcr_protein_no_antibody/ \
-o mydata/gpcr_eval/baseline_nab_local \
-f gpcr/gpcr_complex/gcpr_chain/fasta_non_ab_95/ \
-r mydata/gpcr_eval/baseline_nab_local_format

3.3 导出 Multimer 的 PDB 结构

调用 p8_main_xtrimo_multimer_exporter.py,导出预测的 Multimer PDB 结构至单个文件夹,用于后续评估:

python3 gpcr/main_xtrimo_multimer_exporter.py \
-i mydata/outputs_infer/gpcr_fasta_multimer_392_outputs/ \
-o mydata/gpcr_eval/gpcr_fasta_multimer_392 \
-f gpcr/gpcr_complex/fasta_multimer_392/ \
-r mydata/gpcr_eval/gpcr_fasta_multimer_392_format

再调用 p9_main_multimer_to_chain_exporter.py,从 Multimer 中 导出 GPCR 单链结构,即:

python3 gpcr/p9_main_multimer_to_chain_exporter.py \
-i mydata/gpcr_eval/gpcr_fasta_multimer_392_format \
-o mydata/gpcr_eval/gpcr_chain_multimer_v1 \
-c gpcr/gpcr_complex_v2/gpcr_info_446.csv

Monomer 的单链与 Multimer 导出的单链,都需要根据 PDB 序列去除冗余残基,只保留与 PDB 一致的残基。

调用 p10_main_pdb_residues_format.py,预测 PDB 结构的序列,匹配目标 PDB 结构的序列,标准化格式,用于之后的单链评估,即:

python3 gpcr/p10_main_pdb_residues_format.py \
-i mydata/gpcr_eval/gpcr_chain_redundancy_multimer \
-o mydata/gpcr_eval/gpcr_chain_redundancy_multimer_format \
-f gpcr/gpcr_complex_v2/fasta_from_pdb_446

4. 评估模型性能

调用 p11_main_gpcr_evaluator.py 评估预测结果,支持 ["pdb", "tm", "rmsd", "lddt", "drmsd", "gdt_ts", "gdt_ha"]

  • 输入文件夹 -m
  • 实验名称 -n
  • 真实结构文件夹 -t
  • 输出 xls 文件 -o

即:

python3 gpcr/p11_main_gpcr_evaluator.py \
-m mydata/gpcr_eval/gpcr_chain_redundancy_multimer_format \
-n nab_multimer_redundancy \
-t mydata/gpcr_targets/pdb_non_ab_95_format \
-o mydata/gpcr_res/

输出效果:
Data

调用 p12_main_gpcr_info_analysis.py 统计信息,支持展示序列长度:

python3 gpcr/p12_main_gpcr_info_analysis.py \
-i gpcr/gpcr_complex_v2/gpcr_info_446.csv \
-o mydata/gpcr/gpcr_images \
-k g_len

日志:

[Info] seq len range: 283 ~ 1543
[Info] len > 20: 446, len < 20: 0
[Info] value_counts: 300: 198 (44.3946%), 400: 116 (26.009%), 500: 63 (14.1256%), 600: 23 (5.157%), 700: 16 (3.5874%), 800: 11 (2.4664%), 900: 8 (1.7937%), 1000: 7 (1.5695%), 200: 4 (0.8969%), sum: 446

效果:

Seq

相关文章:

PSP - 从头搭建 抗原类别 (GPCR) 的 蛋白质结构预测 项目流程

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/134595717 GPCRs&#xff08;G Protein-Coupled Receptors&#xff0c;G蛋白偶联受体&#xff09;&#xff0c;又称为7次跨膜受体&#xff0c;是细…...

城市NOA加速落地,景联文科技高质量数据标注助力感知系统升级

当前&#xff0c;自动驾驶技术的演进正在经历着从基础L2到L3过渡的重要阶段&#xff0c;其中NOA&#xff08;自动辅助导航驾驶&#xff09;扮演着至关重要的角色。城市NOA&#xff08;L2.9&#xff09;作为城市场景下的NOA&#xff0c;被看作是车企向更高阶自动驾驶迈进的必经之…...

控制反转(IoC)是什么?

文章目录 控制反转&#xff08;Inversion of Control&#xff0c;IoC&#xff09;传统的程序设计中&#xff1a;应用程序控制程序流程控制反转设计中&#xff1a;由框架或容器控制程序流程IoC 的作用 举例生活例子软件工程例子 控制反转&#xff08;Inversion of Control&#…...

Redisson分布式锁源码解析、集群环境存在的问题

一、使用Redisson步骤 Redisson各个锁基本所用Redisson各个锁基本所用Redisson各个锁基本所用 二、源码解析 lock锁 1&#xff09; 基本思想&#xff1a; lock有两种方法 一种是空参 另一种是带参 * 空参方法&#xff1a;会默认调用看门狗的过期时间30*1000&…...

2016年10月4日 Go生态洞察:HTTP追踪介绍

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

分布式篇---第四篇

系列文章目录 文章目录 系列文章目录前言一、分布式ID生成有几种方案?二、幂等解决方法有哪些?三、常见负载均衡算法有哪些?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…...

从零开始的C++(十九)

红黑树&#xff1a; 一种接近平衡的二叉树&#xff0c;平衡程度低于搜索二叉树。 特点&#xff1a; 1.根节点为黑 2.黑色结点的子结点可以是红色结点或黑色结点。 3.红色结点的子结点只能是黑色结点。 4.每个结点到其所有叶子结点的路径的黑色结点个数相同。 5.指向空的…...

opencv-使用 Haar 分类器进行面部检测

Haar 分类器是一种用于对象检测的方法&#xff0c;最常见的应用之一是面部检测。Haar 分类器基于Haar-like 特征&#xff0c;这些特征可以通过计算图像中的积分图来高效地计算。 在OpenCV中&#xff0c;Haar 分类器被广泛用于面部检测。以下是一个简单的使用OpenCV进行面部检测…...

C++纯虚函数和抽象类 制作饮品案例(涉及知识点:继承,多态,实例化继承抽象类的子类,多文件实现项目)

一.纯虚函数的由来 在多态中&#xff0c;通常父类中虚函数的实现是毫无意义的&#xff0c;主要都是调用子类重写的内容。例如&#xff1a; #include<iostream>using namespace std;class AbstractCalculator { public:int m_Num1;int m_Num2;virtual int getResult(){r…...

什么是网关和链路追踪,以及怎么使用?

在云计算中&#xff0c;网关和链路追踪也是非常重要的。云服务提供商通常会提供网关和链路追踪等相关服务来帮助用户管理和优化云计算网络。 云计算中的网关通常包括以下几种&#xff1a; 虚拟网络网关&#xff1a;用于将云中不同虚拟网络之间相互连接&#xff0c;实现云内不同…...

git 文件被莫名其妙的或略且无论如何都查不到哪个.gitignore文件忽略的

先说解决办法&#xff1a;git check-ignore -v [文件路径] 这个命令会返回一个忽略规则&#xff0c;以及该规则在哪个文件中定义的&#xff0c;该规则使得指定的文件被忽略。 1.遇到的问题 同项目组&#xff0c;其他同学都可以正常的提交.meta文件&#xff0c;我的提交就出现以…...

nova组件简介

目录 组件关系图 controller节点 openstack-nova-api.service: openstack-nova-conductor.service: openstack-nova-consoleauth.service: openstack-nova-novncproxy.service: openstack-nova-scheduler.service: openstack-nova-conductor.service详解 作用和功能&…...

【Vue】响应式与数据劫持

Vue.js 是一个渐进式的 JavaScript 框架&#xff0c;其中最重要的一个特性就是响应式&#xff08;Reactivity&#xff09;。Vue 借助数据劫持&#xff08;Data Observation&#xff09;技术实现了对数据的响应式更新&#xff0c;当数据发生变化时&#xff0c;它会自动重新渲染视…...

Modbus RTU转Profinet网关连接PLC与变频器通讯在机床上应用案例

背景&#xff1a;以前在机床加工车间里&#xff0c;工人们忙碌地操作着各种机床设备。为了使整个生产过程更加高效、流畅&#xff0c;进行智能化改造。 方案&#xff1a;在机床上&#xff0c;PLC通过Modbus RTU转Profinet网关连接变频器进行通讯&#xff1a;PLC作为整个生产线…...

Autoware 整体架构

Autoware 整体架构 测试...

【maven】手动指定jar推送

说明 为了推送第三方的jar&#xff0c;有时需要指定对应的jar推送到私有仓库。 示例 mvn deploy:deploy-file --settings /home/xxx/.m2/settings.xml -DgroupIdgroupId的值 -DartifactIdartifactId的值 -Dversionjar包的版本号 -Dpackagingjar -Dfilejar的路径 -Durlhttp:/…...

算法---定长子串中元音的最大数目

题目 给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s “abciiidef”, k 3 输出&#xff1a;3 解释&#xff1a;…...

美国汽车零部件巨头 AutoZone 遭遇网络攻击

Security Affairs 网站披露&#xff0c;美国汽车配件零售商巨头 AutoZone 称其成为了 Clop MOVEit 文件传输网络攻击的受害者&#xff0c;导致大量数据泄露。 AutoZone 是美国最大的汽车零配件售后市场经销商之一&#xff0c;在美国、墨西哥、波多黎各、巴西和美属维尔京群岛经…...

WPF面试题入门篇

入门篇[2] 1. 谈谈什么是WPF&#xff1f; WPF&#xff08;Windows Presentation Foundation&#xff09;是微软公司开发的一种用于创建Windows应用程序的用户界面框架。它是.NET Framework的一部分&#xff0c;提供了一种基于XAML&#xff08;可扩展应用程序标记语言&#xf…...

opencv-ORB检测

ORB&#xff08;Oriented FAST and Rotated BRIEF&#xff09;是一种图像特征检测和描述算法&#xff0c;结合了 FAST 关键点检测器和 BRIEF 描述子的优点。ORB 算法具有良好的性能&#xff0c;特别适用于实时应用&#xff0c;如目标追踪、相机定位等。 以下是 ORB 算法的一般…...

云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?

大家好&#xff0c;欢迎来到《云原生核心技术》系列的第七篇&#xff01; 在上一篇&#xff0c;我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在&#xff0c;我们就像一个拥有了一块崭新数字土地的农场主&#xff0c;是时…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...