MS-BioDT log

数据库进度:
D3pockets:{
  • protein_info导入了,
  • ligand导入了,
  • dynamics_simulaiton:暂时不考虑;
  • pockets表,用后面PDBbind中的数据
}
Drugbank: {
  • structures数据导入了,
  • drug_interaction数据不用导入,后面完成一个药物相互作用查询逻辑,
  • drugs中的name和cas_number导入了
  • targets:也算是导入了。
  • drug_approvals,暂时不考虑
}
TTD:{
  • P1-01-TTD_target_download.txt {
    • TARGETID>>>>>SameMacroMolecule.TTDid(new column)
    • FORMERID,UNIPROTID: abort
    • TARGETNAME>>>>>>SameMacroMolecule.Name(new column)
    • GENENAME>>>>SameMacroMolecule.Name,并且创建新的Moleid。(二级数据库中可以拆分为蛋白表,基因表)×
    • ##SYNONYMS这个有点dio啊,之后把表改成这个名字
    • SYNONYMS,FUNCTION直接跳过,FUNCTION可以作为二级数据库的一个列
    • PDBSTRUC,用于匹配现在表中有没有这个蛋白,
    • BIOCLASS,暂时不需要这个字段,(二级数据库中可以有)
    • ECNUMBER:酶功能分类标准编号>>>>>>>SameMacroMolecule.ECnumber(new column)
    • SEQENCE:>>>>>>MacroMoleculeInfo.sequence,不用按照uniprot/pdb数据库来了
    • DRUGID :这里还不是Drugbankid,先跳过
    • DRUGNAME: 也不是规范名,先跳过
    • STATUS:药物审批状态,不知道用到哪个表,先跳过,放到MoleculeInteraction.status两者是等价×,不是等价的可以有作用但是不一定就能过审批。还是在MoleculeInfo.drugStatus(new column)
  • }
}
预期任务:
1)补全SameMacroMolecule中的pdbids。√
2)重新补全macroMoleculeInfo中的sequence列。√
3)然后把failed_pdb_records.txt中内容导入 SameMacroMolecule表
4)很难评价,同一个ECnumber对应着多个Protein,想起来也挺合理单体蛋白酶还是比较少,还是要考虑下ECnumber应该在哪个表中,或者哪个研究水平,理论上应该是分子水平上。
5)一些drug没有结构信息,然后就没有录入Molecules数据库中的MoleculeInfo中:missing_structures。
质量控制
2025-11-17:
TTD_dru。gs.csv中是导入TTD:P1-01-TTD_target_download.txt和Molecules.SameMacroMolecule中的对应情况
利用TTD,继续更新SameMacroMolecule,然后让macroMoleculeInfo同步,但是的确是有些pdbid查不到对应的uniprotid,先保存在failed_pdb_records.txt中,然后更新verify_pdbid_in_same_macro_molecule.py
然后更新macroMoleculeInfo表,并且更新序列信息√
然后发现一个问题,一些drug没有结构信息,然后就没有录入Molecules数据库中的MoleculeInfo中
艹,少了6000+药物的信息,好吧傻逼drugbank,里面还就是没有结构信息。后面再完成吧。
然后再MoleculeInfo中添加drugStatus列,用TTD_drugs.csv/TTD中的审批情况完成这部分信息。√
补充SameMolecule中casid
chemspider能用了,可以用来补全没有结构的药物,然后导入MoleculeInfo/SameMolecule
2025-11-16:
看起来现在的SameMacroMolecule的pdbid不全,但是能和Uniprotid对应起来大概,以P00651为例,SameMacroMolecule表中pdbids={1B2M;1BIR;1BU4;1BVI;1CH0;1DET;1FYS;1FZU;1G02;1GSP }
但是PDB数据库中的pdbids有69个,还是缺少了,但是没对应错就可以再补全。
补全了
重新导入macroMoleculeInfo,我怀疑序列会有重复的,然而有些是空的,我也不确定是不是有错误,大概率没有。
然后重新补全了pdbid和序列
然后导入TTD表
编写脚本完成以下需求:1)现在要将TTD目录下的P1-01-TTD_target_download.txt文件导入Molecules数据库,在SameMacroMolecule中添加TTDid列,按照PDBSTRUC,将文件中的TARGETID导入到TTDid列中。在SameMacroMolecule中添加Name列,然后把 文件中的TARGNAME按照PDBSTRUC导入。在SameMacroMolecule中添加ECnumber列,然后把文件中的ECNUMBER导入Ecnumber列。2)然后把TARGETID,DRUGNAME,STATUS对应写入一个csv文件中,然后在csv文件中添加一列Moleid,查询一下SameMolecule表中的drugName列,如果DRUGNAME在drugName列中,就把Moleid写入,没有对应Moleid就为空√
2025-11-15:
现在将Drugs中的name和cas_number导入SameMolecule表√
然后完成CASid列,ip好像被封了,先跳过P1-01-TTD_target_download.txt 
接下来处理TTD数据库,P1-01-TTD_target_download.txt 
TARGETID>>>>>SameMacroMolecule.TTDid(new column)
FORMERID,UNIPROTID: abort
TARGETNAME>>>>>>SameMacroMolecule.Name(new column)
GENENAME>>>>SameMacroMolecule.Name,并且创建新的Moleid。(二级数据库中可以拆分为蛋白表,基因表)
##SYNONYMS这个有点dio啊,之后把表改成这个名字
SYNONYMS,FUNCTION直接跳过,FUNCTION可以作为二级数据库的一个列
PDBSTRUC,用于匹配现在表中有没有这个蛋白,没有的话根据uniprotid新建一个Moleid
BIOCLASS,暂时不需要这个字段,(二级数据库中可以有)
ECNUMBER:酶功能分类标准编号>>>>>>>SameMacroMolecule.ECnumber(new column)
SEQENCE:>>>>>>MacroMoleculeInfo.sequence
DRUGID :这里还不是Drugbankid,先跳过
DRUGNAME: 也不是规范名,先跳过
STATUS:药物审批状态,不知道用到哪个表,先跳过
####先规范了Moleid-uniprotid的一对一关系,unprotid才作为唯一的实体 √
然后确保一下uniprotid和pdbid的对应√
2025-11-14:
MoleculeInteraction需要划分为MoleculesInteraction和macroMoleculeInteraction吗?不需要
MoleculeInteraction的主键是什么? id吗,对。然后组成{id,pMoleid,sMoleid,type,medium,status}
pMoleid是主要分子,sMoleid是次要(作用)分子,type是作用类型,如binding,medium是作用媒介如pocket,status为experimented,或者virtual:实验或者模拟的。
##这里定义pocket为位置依赖的作用系
---------------------------------------------------------------------------------------------------------------------
然后Pockets需不需要作为一个新的 表呢?这个问题需要先回答蛋白和配体的作用是不是都是通过pockets进行的,直觉感觉不是只要存在有效作用力和作用范围即可。
实际上蛋白和配体的二元作用是隐含pockets的,即:
Potein-(pocket)-ligand
但是更广泛的表应该是 MoleculeInteraction表,其中很多作用是没有口袋的,所以口袋表是有必要的,算是提取出蛋白配体作用的表。
------------------------------------------------------------------------------------------------------------------
然后创建macroMoleculeInfo:(Moleid,type,sequence,√
SameMacroMolecule:(Moleid,pdbid,uniprotid,√
Macro-Molecules要作为单独数据库吗?不作为
-------------------------------------------------------------------------------------------------------------------
创建Molecules数据库,然后创建MoleculeInfo表,包含属性{Moleid,;SMILES;InCHI;InCHKey;}
然后把D3pockets数据库中的ligand_structure,导入MoleculeInfo中。
新增Moleid作为内部id索引主键。CASid放到EqualMolecules中。√
Drugbank数据库中structures,导入MoleculeInfo
然后创建SameMolecule表,导入列:Moleid,Drugbankid(默认:Nodrug),pdbLigand(默认:Noreceptor).Moleid列是主键,为什么单独列个表:别问就是任性。√
好像CASid对应了多个分子,还是说有重复数据?先不搞这个。