经典相互作用图

 相互作用图

相对作用图主要包括:

  •       角色或对象
  •       通信或链接
  •       消息

时序图解析:

时序图

时序图与通信图(即上面的collaboration diagram)主要有两个区别:

第一是生命线,一条生命线代表了一个对象或角色的存在周期。一般大部分对象在整个交互过程中都存在,所以这些对象大都是位于图形的最上端。如果对象是在交互过程中创建的,则它的生命线从它被创建的时候开始,即不一定从顶端开始。对象被销毁也就结束其生命周期。

第二是控制焦点,控制焦点的长度表示一个对象执行某个动作所花费的时间。矩形的顶部与行为的开始对齐,底部与其完成时对齐(也可能是与返回消息对齐,因为一个返回代表一个过程的结束)。也可以使用嵌套控制焦点(因为有循环,自身引用,或者另一个对象的回调)。

时序图最主要的内容是它所包含的消息。生命线上的时间顺序是很重要的。不过通常可能与实际情况不符,生命性仅表示了相对顺序,所以生命线不是关于时间刻度的一幅图。生命线上消息的位置在单独的生命线上并不暗含任何顺序信息,这些消息可以按任意顺序发生。多个生命线的消息集组合起来才形成了一个特定的顺序。

 

结构化的时序图:

结构化的时序图

时序图的结构化分四种:

选择执行:左上角的标签为opt.

条件执行:左上角的标签为alt.

平行执行:左上角的标签为par.

循环执行:左上角的标签为loop.

 

嵌套活动图的时序图:

嵌套活动图的时序图

### 药物-靶标相互作用(DTI)经典算法代码实现 以下是几种经典的药物-靶标相互作用预测方法及其对应的代码实现示例: #### 1. Jaccard 相似度计算 Jaccard 相似度是一种简单而有效的衡量两组集合相似性的方法,常用于构建药物-药物或蛋白质-蛋白质相似性矩阵[^1]。 ```python def jaccard_similarity(set_a, set_b): intersection = len(set_a.intersection(set_b)) union = len(set_a.union(set_b)) return intersection / union if union != 0 else 0 # 示例:计算药物 i 和药物 j 的 Jaccard 相似度 drug_i_diseases = {"disease_1", "disease_2", "disease_3"} drug_j_diseases = {"disease_2", "disease_3", "disease_4"} similarity_ij = jaccard_similarity(drug_i_diseases, drug_j_diseases) print(f"Jaccard Similarity between Drug I and Drug J: {similarity_ij}") ``` --- #### 2. 神经网络(GNN)应用于 DTI 预测 神经网络(GNNs),特别是基于注意力机制的 GAT(Graph Attention Network),可以有效地捕获药物和靶标的复杂交互模式[^4][^5]。以下是一个简单的 PyTorch Geometric 实现示例: ```python import torch from torch_geometric.nn import GCNConv, GATv2Conv class DTIPredictor(torch.nn.Module): def __init__(self, input_dim_drug, input_dim_protein, hidden_dim=64): super(DTIPredictor, self).__init__() self.drug_conv = GATv2Conv(input_dim_drug, hidden_dim) self.protein_conv = GATv2Conv(input_dim_protein, hidden_dim) self.fc = torch.nn.Linear(hidden_dim * 2, 1) def forward(self, data): x_drug, edge_index_drug = data.x_drug, data.edge_index_drug x_protein, edge_index_protein = data.x_protein, data.edge_index_protein h_drug = torch.relu(self.drug_conv(x_drug, edge_index_drug)) h_protein = torch.relu(self.protein_conv(x_protein, edge_index_protein)) combined_features = torch.cat([h_drug.mean(dim=0), h_protein.mean(dim=0)], dim=-1) output = self.fc(combined_features).sigmoid() return output # 初始化模型并运行前向传播 model = DTIPredictor(input_dim_drug=78, input_dim_protein=128) data_dummy = type('Data', (), { 'x_drug': torch.randn(10, 78), 'edge_index_drug': torch.randint(0, 10, (2, 20)), 'x_protein': torch.randn(10, 128), 'edge_index_protein': torch.randint(0, 10, (2, 20)) }) output = model(data_dummy) print(f"Predicted Interaction Probability: {output.item()}") ``` --- #### 3. ColdDTA 数据增强特征融合 ColdDTA 是一种先进的 DTI 预测框架,它结合了数据增强技术和基于注意力的特征融合技术[^2]。虽然完整的实现较为复杂,但其核心思想可以通过以下伪代码展示: ```python import numpy as np def augment_data(features, labels, augmentation_factor=2): augmented_features = [] augmented_labels = [] for feature, label in zip(features, labels): for _ in range(augmentation_factor): noise = np.random.normal(0, 0.1, size=feature.shape) new_feature = feature + noise augmented_features.append(new_feature) augmented_labels.append(label) return np.array(augmented_features), np.array(augmented_labels) # 示例:数据增强 features = np.random.rand(100, 128) # 假设有 100 条样本,每条维度为 128 labels = np.random.choice([0, 1], size=(100,)) augmented_features, augmented_labels = augment_data(features, labels) print(f"Augmented Features Shape: {augmented_features.shape}") print(f"Augmented Labels Shape: {augmented_labels.shape}") ``` --- #### 4. CE-DTI 因果增强学习 CE-DTI 提出了通过因果不变性增强对比学习的方法来提高 DTI 预测性能[^3]。下面展示了如何分离因果变量节点和非因果变量节点的核心逻辑: ```python def separate_causal_nodes(graph, target_node_id): causal_nodes = [] non_causal_nodes = [] for node_id in graph.nodes: if is_significant_influence(node_id, target_node_id, graph): # 自定义函数判断显著影响 causal_nodes.append(node_id) else: non_causal_nodes.append(node_id) return causal_nodes, non_causal_nodes # 示例:假设有一个简单的结构 graph_example = nx.Graph() graph_example.add_edges_from([(0, 1), (1, 2), (2, 3)]) causal_nodes, non_causal_nodes = separate_causal_nodes(graph_example, target_node_id=2) print(f"Causal Nodes: {causal_nodes}, Non-Causal Nodes: {non_causal_nodes}") ``` --- ### 总结 上述代码片段分别涵盖了 Jaccard 相似度计算、神经网络应用、数据增强以及因果增强学习等关键技术点。这些方法可以根据具体需求组合使用,从而提升 DTI 预测的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值