tyang816 / ProtSSN

Fusion of protein sequence and structural information, using denoising pre-training network for protein engineering (zero-shot).
MIT License
25 stars 2 forks source link

mean_attr.pt是怎么来的 #2

Closed llllly26 closed 5 months ago

llllly26 commented 5 months ago

您好,我想了解一下文件src\utils\dataset_utils里面的datasetargument、NormalizeProtein以及get_stat函数,尤其是后面两个。里面提到了一个mean_attr.pt 文件。我想知道的是这个文件是怎么来的呢?不同的dataset用的是一样的吗?可以帮忙解释一下吗? 谢谢!

tyang816 commented 5 months ago

您好~ 在处理蛋白质的时候我们需要对坐标等进行正则化,而构建图的时候K近邻的K选择会影响图的正则化,所以这里有10,20,30三种。 这个文件是您找到的get_stat函数计算出来的,构建训练数据集的时候会自动生成。理论上讲不同的dataset应该是不一样的,应该符合目标数据集的分布(比如Alphafold或ESMFold折的和晶体结构肯定不一样),但实际上我们很难获取这个分布,因此这里我们直接使用了CATH数据集,以它算出来的坐标等信息的分布作为正则化的标准文件

llllly26 commented 5 months ago

您好~ 在处理蛋白质的时候我们需要对坐标等进行正则化,而构建图的时候K近邻的K选择会影响图的正则化,所以这里有10,20,30三种。 这个文件是您找到的get_stat函数计算出来的,构建训练数据集的时候会自动生成。理论上讲不同的dataset应该是不一样的,应该符合目标数据集的分布(比如Alphafold或ESMFold折的和晶体结构肯定不一样),但实际上我们很难获取这个分布,因此这里我们直接使用了CATH数据集,以它算出来的坐标等信息的分布作为正则化的标准文件

感谢您的解答!还有些问题想要寻求一下您的帮助 我看了一下,get_stat函数首先接收了graph_root函数来生成标准文件的,可是这个graph_root不是生成出来的图存放的路径吗(.pt文件吧)?可是在构建图的时候不是也会利用这个标准化的文件吗?这样难道不就死循环了吗?可能我理解有些偏差,期待能够得到您的解答。 还有个问题,您了解TS50/T500数据集吗?根据您的讲解,我想利用CATH数据集计算出正则化的标准文件来处理这个数数据集,看起来是不是也是可行的呀?目前是都会利用CATH数据集来做一个标准文件吗?此外,是不是可以理解为不同的标准文件,最大区别主要是K近邻的K值选择问题呢?

tyang816 commented 5 months ago

不好意思这里是有点误导人,其实不是死循环,代码里面的流程是:

  1. 生成正常图 -> 生成正则化文件 -> 生成正则化后的图。
  2. 过程中同时保留了正则化前后的图数据。

理论上来说是可以用这个标准文件来处理新数据集。前提是:是同样或类似的KNN建图方法,且基本超参一致,比如也是以10A作为cut off。如果你是构建的BFS或者其他图就不太行了。

目前并不一定是用CATH数据集做标准文件,也有使用Alphafold Database等的,也有不使用标准化的方法,这个需要根据您的场景来选择。

不同的标准文件在本项目中最大的差别是K的选择,但在不同项目中受到建图方式、数据集分布影响很大。

llllly26 commented 5 months ago

thanks!

llllly26 commented 4 months ago

您好!我看了一下没找到代码中调用get_stat 的部分,可能您已经提前生成好了。我想知道的是,您在使用其来生成cath_k10_mean_attr.pt的时候,这个函数的参数设置是保持默认吗还是设置了什么呢?参数是limited_num=None, num_subgroup=1000 , max_limits=100000.

tyang816 commented 4 months ago

您好!我看了一下没找到代码中调用get_stat 的部分,可能您已经提前生成好了。我想知道的是,您在使用其来生成cath_k10_mean_attr.pt的时候,这个函数的参数设置是保持默认吗还是设置了什么呢?参数是limited_num=None, num_subgroup=1000 , max_limits=100000.

在cath_dataset里面是有调用get_stat的,参数是保持默认的