EDAPINENUT / GeoAB

This is the official repository of paper - GeoAB: Towards Realistic Antibody Design and Reliable Affinity Maturation (ICML2024)
36 stars 10 forks source link

Hi, lin老师,我在复现代码时有几个问题想请教一下 #5

Open TangHuihao opened 4 days ago

TangHuihao commented 4 days ago
  1. 安装时python版本似乎不对,您在README中先安装了python3.9,但是在requirements中似乎又安装了一遍3.11版本,因此我舍弃了第一步python版本的安装,直接用conda创建了环境python3.11,在3.11版本下,您README中的evaluation代码运行正常。

  2. 在我验证自己的抗体时,发现代码中强制使用了imgt方案来分析CDR区域,并且三个保守氨基酸位点被强制定义:

    conserved = {
                23: ['CYS'],
                41: ['TRP'],
                104: ['CYS'],
                # 118: ['PHE', 'TRP']
            }

    但我的抗体序列并不完全符合这一逻辑,并会因此报错,于是我手动修改了 cdr_pos 变量

    def cdr_form_item_to_tupleDic(item):
                cdr_pos = {}
                for key in item.keys():
                    if re.match("cdr.._pos", key):
                        key_updated = key[:3]+'-'+key[3:5]
                        cdr_pos[key_updated.upper()] = tuple(item[key])
                return cdr_pos
    cdr_pos = cdr_form_item_to_tupleDic(item)

    并将其添加到

    self.data.append(AAComplex(pdb_id, peptides, item['heavy_chain'], item['light_chain'], item['antigen_chains'], cdr_type=cdr_type, cdr_pos=cdr_pos, use_esm=self.use_esm))
    其中 cdr_pos=cdr_pos

    这样最终是能够正常跑出结果,并且用文章中的数据测试似乎也是一致的。 但是我不能完全确定这样的结果是否准确,请指正。

  3. 在我自己H3_refine的结果中,CDR3的氨基酸序列变化很大,文章中提到会mutant 1-2 个氨基酸,不知道是不是因为迭代次数很多的原因?这种结果似乎不太复合‘refine’的概念,我更倾向于这个结果应当是1-2个氨基酸的突变,不知老师怎么看?

EDAPINENUT commented 4 days ago
  1. 3.9和3.11应该都是可以运行的。
  2. 这样修改应该没有什么问题。
  3. 文章提到的mutant 1-2个氨基酸是在优化过程中的,这部分我们将和之后的预训练工作一起放出。 这里的GeoAB是refiner,主要是CDR3区的共设计。 如果你需要指定的位点进行mutant,应该是有mask可以确定需要重新设计的位点,不过这份代码暂且不支持结构式cdr3,序列是1-2个氨基酸的变化的生成,因为structure mask & seq mask没有分开写。 你可以根据代码重新改写。
TangHuihao commented 2 days ago

好的,多谢,我再仔细看看