精华内容
下载资源
问答
  • keras:构建多输入多输出模型、多输入输出模型

    万次阅读 多人点赞 2019-09-10 10:58:51
    一个具有两个输入和两个输出的模型: 我们试图预测 Twitter 上的一条新闻标题有多少转发和点赞数。模型的主要输入将是新闻标题本身,即一系列词语,但是为了增添趣味,我们的模型还添加了其他的辅助输入来接收额外的...

    一个具有两个输入和两个输出的模型:

    我们试图预测 Twitter 上的一条新闻标题有多少转发和点赞数。模型的主要输入将是新闻标题本身,即一系列词语,但是为了增添趣味,我们的模型还添加了其他的辅助输入来接收额外的数据,例如新闻标题的发布的时间等。 该模型也将通过两个损失函数进行监督学习。较早地在模型中使用主损失函数,是深度学习模型的一个良好正则方法。
    模型结构如下图所示:
    在这里插入图片描述
    主要输入接收新闻标题本身,即一个整数序列(每个整数编码一个词)。 这些整数在 1 到 10,000 之间(10,000 个词的词汇表),且序列长度为 100 个词。

    from keras.layers import Input, Embedding, LSTM, Dense
    from keras.models import Model
    
    # 标题输入:接收一个含有 100 个整数的序列,每个整数在 1 到 10000 之间。
    # 注意我们可以通过传递一个 "name" 参数来命名任何层。
    main_input = Input(shape=(100,), dtype='int32', name='main_input')
    
    # Embedding 层将输入序列编码为一个稠密向量的序列,
    # 每个向量维度为 512。
    x = Embedding(output_dim=512, input_dim=10000, input_length=100)(main_input)
    
    # LSTM 层把向量序列转换成单个向量,
    # 它包含整个序列的上下文信息
    lstm_out = LSTM(32)(x)
    

    在这里,我们插入辅助损失,使得即使在模型主损失很高的情况下,LSTM 层和 Embedding 层都能被平稳地训练。

    auxiliary_output = Dense(1, activation='sigmoid', name='aux_output')(lstm_out)
    

    此时,我们将辅助输入数据与 LSTM 层的输出连接起来,输入到模型中:

    auxiliary_input = Input(shape=(5,), name='aux_input')
    x = keras.layers.concatenate([lstm_out, auxiliary_input])
    
    # 堆叠多个全连接网络层
    x = Dense(64, activation='relu')(x)
    x = Dense(64, activation='relu')(x)
    x = Dense(64, activation='relu')(x)
    
    # 最后添加主要的逻辑回归层
    main_output = Dense(1, activation='sigmoid', name='main_output')(x)
    

    然后定义一个具有两个输入和两个输出的模型:

    model = Model(inputs=[main_input, auxiliary_input], outputs=[main_output, auxiliary_output])
    

    现在编译模型,并给辅助损失分配一个 0.2 的权重。如果要为不同的输出指定不同的 loss_weights 或 loss,可以使用列表或字典。 在这里,我们给 loss 参数传递单个损失函数,这个损失将用于所有的输出。

    model.compile(optimizer='rmsprop', loss='binary_crossentropy',
                  loss_weights=[1., 0.2])
    

    我们可以通过传递输入数组和目标数组的列表来训练模型:

    model.fit([headline_data, additional_data], [labels, labels],
              epochs=50, batch_size=32)
    

    由于输入和输出均被命名了(在定义时传递了一个 name 参数),我们也可以通过以下方式编译模型:

    model.compile(optimizer='rmsprop',
                  loss={'main_output': 'binary_crossentropy', 'aux_output': 'binary_crossentropy'},
                  loss_weights={'main_output': 1., 'aux_output': 0.2})
    
    # 然后使用以下方式训练:
    model.fit({'main_input': headline_data, 'aux_input': additional_data},
              {'main_output': labels, 'aux_output': labels},
              epochs=50, batch_size=32)
    

    多输入单输出模型(共享网络层)

    来考虑推特推文数据集。我们想要建立一个模型来分辨两条推文是否来自同一个人(例如,通过推文的相似性来对用户进行比较)。

    实现这个目标的一种方法是建立一个模型,将两条推文编码成两个向量,连接向量,然后添加逻辑回归层;这将输出两条推文来自同一作者的概率。模型将接收一对对正负表示的推特数据。

    由于这个问题是对称的,编码第一条推文的机制应该被完全重用来编码第二条推文(权重及其他全部)。这里我们使用一个共享的 LSTM 层来编码推文。

    让我们使用函数式 API 来构建它。首先我们将一条推特转换为一个尺寸为 (280, 256) 的矩阵,即每条推特 280 字符,每个字符为 256 维的 one-hot 编码向量 (取 256 个常用字符)。

    import keras
    from keras.layers import Input, LSTM, Dense
    from keras.models import Model
    
    tweet_a = Input(shape=(280, 256))
    tweet_b = Input(shape=(280, 256))
    

    要在不同的输入上共享同一个层,只需实例化该层一次,然后根据需要传入你想要的输入即可:

    # 这一层可以输入一个矩阵,并返回一个 64 维的向量
    shared_lstm = LSTM(64)
    
    # 当我们重用相同的图层实例多次,图层的权重也会被重用 (它其实就是同一层)
    encoded_a = shared_lstm(tweet_a)
    encoded_b = shared_lstm(tweet_b)
    
    # 然后再连接两个向量:
    merged_vector = keras.layers.concatenate([encoded_a, encoded_b], axis=-1)
    
    # 再在上面添加一个逻辑回归层
    predictions = Dense(1, activation='sigmoid')(merged_vector)
    
    # 定义一个连接推特输入和预测的可训练的模型
    model = Model(inputs=[tweet_a, tweet_b], outputs=predictions)
    
    model.compile(optimizer='rmsprop',
                  loss='binary_crossentropy',
                  metrics=['accuracy'])
    model.fit([data_a, data_b], labels, epochs=10)
    

    层「节点」的概念

    每当你在某个输入上调用一个层时,都将创建一个新的张量(层的输出),并且为该层添加一个「节点」,将输入张量连接到输出张量。当多次调用同一个图层时,该图层将拥有多个节点索引 (0, 1, 2…)。

    在之前版本的 Keras 中,可以通过 layer.get_output() 来获得层实例的输出张量,或者通过 layer.output_shape 来获取其输出形状。现在你依然可以这么做(除了 get_output() 已经被 output 属性替代)。但是如果一个层与多个输入连接呢?

    只要一个层仅仅连接到一个输入,就不会有困惑,.output 会返回层的唯一输出:

    a = Input(shape=(280, 256))
    
    lstm = LSTM(32)
    encoded_a = lstm(a)
    
    assert lstm.output == encoded_a
    

    但是如果该层有多个输入,那就会出现问题:

    a = Input(shape=(280, 256))
    b = Input(shape=(280, 256))
    
    lstm = LSTM(32)
    encoded_a = lstm(a)
    encoded_b = lstm(b)
    
    lstm.output
    
    >> AttributeError: Layer lstm_1 has multiple inbound nodes,
    hence the notion of "layer output" is ill-defined.
    Use `get_output_at(node_index)` instead.
    

    好吧,通过下面的方法可以解决:

    assert lstm.get_output_at(0) == encoded_a
    assert lstm.get_output_at(1) == encoded_b
    

    input_shape 和 output_shape 这两个属性也是如此:只要该层只有一个节点,或者只要所有节点具有相同的输入/输出尺寸,那么「层输出/输入尺寸」的概念就被很好地定义,并且将由 layer.output_shape / layer.input_shape 返回。但是比如说,如果将一个 Conv2D 层先应用于尺寸为 (32,32,3) 的输入,再应用于尺寸为 (64, 64, 3) 的输入,那么这个层就会有多个输入/输出尺寸,你将不得不通过指定它们所属节点的索引来获取它们:

    a = Input(shape=(32, 32, 3))
    b = Input(shape=(64, 64, 3))
    
    conv = Conv2D(16, (3, 3), padding='same')
    conved_a = conv(a)
    
    # 到目前为止只有一个输入,以下可行:
    assert conv.input_shape == (None, 32, 32, 3)
    
    conved_b = conv(b)
    # 现在 `.input_shape` 属性不可行,但是这样可以:
    assert conv.get_input_shape_at(0) == (None, 32, 32, 3)
    assert conv.get_input_shape_at(1) == (None, 64, 64, 3)
    
    展开全文
  • 第三版信息系统项目管理师47个过程的输入输出及工具

    一、项目整体管理

    过程名

    输入

    工具和技术

    输出

    1、制定项目章程

     

    1、项目工作说明书

    2、商业论证

    3、协议(合同,备忘录、意向及协议书)

    4、组织过程资产

    5、事业环境因素

    1、专家判断

    2、引导技术

     

    1、项目章程

     

    2、制定项目管理计划

     

    1、  项目章程

    2、  其他规划过程的输出

    3、  组织过程资产

    4、  事业环境因素

    1、 专家判断

    2、  引导技术

    1、项目管理计划

     

    3、指导与管理项目工作

    1、项目管理计划

    2、批准的变更请求

    3、组织过程资产

    4、事业环境因素

     

     

    1、  专家判断

    2、  项目管理信息系统(PMIS)

    3、  会议

    1、  可交付成果

    2、  工作绩效数据

    3、  变更请求

    4、  项目管理计划更新

    5、  项目文件更新

    4、监控项目工作

    1、  项目管理计划

    2、  进度预测

    3、  成本预测

    4、  确认的变更

    5、  工作绩效信息

    6、  组织过程资产

    7、  事业环境因素

     

    1、  分析技术

    2、  项目管理信息系统

    3、  会议

    4、  专家判断

     

    1、  变更请求

    2、  工作绩效报告

    3、  项目管理计划更新

    4、  项目文件更新

    5、实施整体变更控制

    1、  项目管理计划

    2、  工作绩效报告

    3、  变更请求

    4、  组织过程资产

    5、  事业环境因素

    1、  会议

    2、  变更控制工具

    3、  专家判断

    1、  批准的变更请求

    2、  变更日志

    3、  项目管理计划更新

    4、  项目文件更新

    结束项目或阶段

    1、  项目管理计划

    2、  验收的可交付成果

    3、  组织过程资产

    1、  分析技术

    2、  会议

    3、  专家判断

    1、  最终产品、服务或成果

    2、  组织过程资产更新

     

    二、项目范围管理

     

    过程名

    输入

    工具和技术

    输出

    1、编制范围管理计划(规划范围管理)

    1、  项目管理计划

    2、  项目章程

    3、  组织过程资产

    4、  事业环境因素

    1、  会议

    2、  专家判断

    1、范围管理计划

    2、需求管理计划

    2、收集需求

    1、  范围管理计划

    2、  需求管理计划

    3、  干系人管理计划

    4、  项目章程

    5、  干系人登记册

    1、  访谈

    2、  焦点小组

    3、  引导式研讨会

    4、  群体创新技术

    5、  群体决策技术

    6、  问卷调查

    7、  观察

    8、  原型法

    9、  标杆对照

    10、系统交付图

    11、文件分析

    1、需求文件

    2、需求跟踪矩阵

    3、定义范围

    1、  范围管理计划

    2、  项目章程

    3、  需求文件

    4、  组织过程资产

    1、  产品分析

    2、  专家判断

    3、  备选方案生成

    4、  引导式研讨会

    1、  项目范围说明书

    2、  项目文件更新

    4、创建工作分解结构(WBS)

    1、  范围管理计划

    2、  项目范围说明书

    3、  需求文件

    4、  事业环境因素

    5、  组织过程资产

    1、  分解

    2、  专家判断

    1、  范围基准

    2、  项目文件更新

    5、确认范围

    1、  项目管理计划

    2、  需求文件

    3、  需求跟踪矩阵

    4、  核实的可交付成果

    5、  工作绩效数据

    1、  检查

    2、  群体决策技术

    1、  验收的可交付成果

    2、  变更请求

    3、  工作绩效信息

    4、  项目文件更新

    6、范围控制

    1、  项目管理计划

    2、  需求文件

    3、  需求跟踪矩阵

    4、  工作绩效数据

    5、  组织过程资产

    1、偏差分析

    1、工作绩效信息

    2、变更请求

    3、项目文件更新

    4、项目管理计划更新

    5、组织过程资产更新

     

     

     

    三、项目时间管理

     

    过程名

    输入

    工具和技术

    输出

    1、规划进度管理

    1、 项目管理计划

    2、 项目章程

    3、 组织过程资产

    4、 事业环境因素

    1、 专家判断

    2、 分析技术

    3、 会议

    1、 项目进度管理计划

     

    2、定义活动

    1、 进度管理计划

    2、 范围基准

    3、 组织过程资产

    4、 事业环境因素

    1、 分解

    2、 滚动式规划

    3、 专家判断

    1、 活动清单

    2、 活动属性

    3、 里程碑清单

    3、排列活动顺序

    1、 进度管理计划

    2、 活动清单

    3、 活动属性

    4、 里程碑清单

    5、 事业环境因素

    6、 组织过程资产

    7、 项目范围说明书

    1、 前导图法

    2、 箭线图法

    3、 确定信赖关系

    4、 提前量与滞后量

    1、 项目进度网络图

    2、 项目文件更新

    4、估算活动资源

    1、 进度管理计划

    2、 活动清单

    3、 活动属性

    4、 资源日历

    5、 风险登记册

    6、 活动成本估算

    7、 事业环境因素

    8、 组织过程资产

    1、 专家判断

    2、 备选方案分析

    3、 发布的估算数据

    4、 项目管理软件

    5、 自下而上估算

    1、 活动资源需求

    2、 资源分解结构

    3、 项目文件更新

    5、估算活动持续时间

    1、 进度管理计划

    2、 活动清单

    3、 活动属性

    4、 活动资源需求

    5、 资源日历

    6、 项目范围说明书

    7、 风险登记册

    8、 资源分解结构

    9、 事业环境因素

    10、组织过程资产

    1、 专家判断

    2、 类比估算

    3、 参数估算

    4、 三点估算

    5、 群体决策技术

    6、 储备分析

    1、 活动持续时间估算

    2、 项目文件更新

    6、制定进度计划

    1、 进度管理计划

    2、 活动清单

    3、 活动属性

    4、 项目进度网络图

    5、 活动资源需求

    6、 资源日历

    7、 活动持续时间估算

    8、 项目范围说明书

    9、 风险登记册

    10、项目人员分配

    11、资源分解结构

    12、事业环境因素

    13、组织过程资产

    1、 进度网络分析法

    2、 关键路线法

    3、 关键链法

    4、 资源优化技术

    5、 建模技术

    6、 提前量和滞后量

    7、 进度压缩

    8、 进度计划编制工具

    1、 进度基准

    2、 项目进度计划

    3、 进度数据

    4、 项目日历

    5、 项目管理计划更新

    6、 项目文件更新

    7、控制进度

    1、 项目管理计划

    2、 项目进度计划

    3、 工作绩效数据

    4、 项目日历

    5、 进度数据

    6、 组织过程资产

    1、 绩效审查

    2、 项目管理软件

    3、 资源优化技术

    4、 建模技术

    5、 提前量和滞后量

    6、 进度压缩

    7、 进度计划编制工具

    1、 工作绩效信息

    2、 进度预测

    3、 变更请求

    4、 项目管理计划更新

    5、 项目文件更新

    6、 组织过程资产更新

     

     

     

    四、项目成本管理

     

    过程名

    输入

    工具和技术

    输出

    1、制定成本管理计划(规划成本)

    1、 项目管理计划

    2、 项目章程

    3、 事业环境因素

    4、 组织过程资产

    1、 专家判断

    2、 分析技术

    3、 会议

    1、成本管理计划

    2、成本估算

     

    1、 成本管理计划

    2、 人力资源管理计划

    3、 范围基准

    4、 项目进度计划

    5、 风险登记册

    6、 组织过程资产

    7、 事业环境因素

    1、 专家判断

    2、 类比估算

    3、 参数估算

    4、 自下而上估算

    5、 三点估算

    6、 储备分析

    7、 质量成本

    8、 项目管理软件

    9、 卖方投标分析

    10、群体决策技术

    1、 活动成本估算

    2、 估算依据

    3、 项目文件更新

     

    3、成本预算(制定预算)

    1、 成本管理计划

    2、 范围基准

    3、 活动成本估算

    4、 活动依据

    5、 项目进度计划

    6、 资源日历

    7、 风险登记册

    8、 协议

    9、 组织过程资产

    1、 成本汇总

    2、 储备分析

    3、 专家判断

    4、 资金限制平衡

    5、 参数模型

    1、成本基准

    2、项目资金需求

    3、项目文件更新

    4、成本控制

    1、 项目管理计划

    2、 项目资金需求

    3、 工作绩效数据

    4、 组织过程资产

    1、 挣值管理

    2、 预测

    3、 完工尚需绩效指数

    4、 绩效审查

    5、 项目管理软件(PM软件)

    6、 储备分析

    1、 工作绩效信息

    2、 成本预测

    3、 变更请求

    4、 项目文件更新

    5、 组织过程资产更新

    6、 项目管理计划更新

     

     

     

     

    五、项目质量管理

    过程名

    输入

    工具和技术

    输出

    1、规划质量管理

     

    1、 项目管理计划

    2、 干系人登记册

    3、 风险登记册

    4、 需求文件

    5、 事业环境因素

    6、 组织过程资产

    1、 成本效益分析

    2、 质量成本法

    3、 七种基本质量工具

    4、 标杆对照

    5、 实验设计

    6、 统计抽样

    7、 其他质量管理工具

    8、 会议

    1、 质量管理计划

    2、 过程改进计划

    3、 质量测量指标

    4、 质量核对单

    5、 项目文件更新

    2、实施质量保证

    1、 质量管理计划

    2、 过程改进计划

    3、 质量测量指标

    4、 质量控制测量结果

    5、 项目文件

    1、 质量审计

    2、 过程分析

    3、 质量管理与控制工具

    1、 变更请求

    2、 项目管理计划更新

    3、 项目文件更新

    4、 组织过程资产更新

    3、质量控制(控制质量)

    1、 项目管理计划

    2、 质量测量指标

    3、 质量核对单

    4、 单工作绩效数据

    5、 批准的变更请求

    6、 可交付成果

    7、 项目文件

    8、 组织过程资产

    1、 七种基本质量工具

    2、 统计抽样

    3、 检查

    4、 审查已批准的变更请求

    1、 质量控制测量结果

    2、 确认的变更

    3、 核实的可交付成果

    4、 工作绩效信息

    5、 变更请求

    6、 项目文件更新

    7、 项目管理计划更新

    8、 组织过程资产更新

     

     

     

    六、项目人力资源管理

     

    过程名称

    输入

    工具和技术

    输出

    1、编写人力资源计划(规划人力资源管理)

    1、 项目管理计划

    2、 活动资源需求

    3、 事业环境因素

    4、 组织过程资产

    1、 组织结构图和职位描述

    2、 人际交住

    3、 组织理论

    4、 专家判断

    5、 会议

    1、人力资源管理计划

    2、组建项目团队

    1、 人力资源管理计划

    2、 事业环境因素

    3、 组织过程资产

    1、 事先分派

    2、 谈判

    3、 招募

    4、 虚拟团队

    5、 多维决策分析

    1、 项目人员分配表

    2、 资源日历

    3、 项目管理计划更新

    3、建设项目团队

    1、 人力资源计划

    2、 项目人员分配表

    3、 资源日历

    1、 人际关系技能

    2、 培训

    3、 团队建设活动

    4、 基本规则

    5、 集中办公

    6、 认可与奖励

    7、 人事测评工具

    1、 团队绩效评估

    2、 事业环境因素更新

    4、管理项目团队

    1、 人力资源管理计划

    2、 项目人员分配表

    3、 团队绩效评估

    4、 问题日志

    5、 绩效报告

    6、 组织过程资产

    1、 观察和交谈

    2、 项目绩效评估

    3、 冲突管理

    4、 人际关系技能

    1、 变更请求

    2、 项目管理计划更新

    3、 项目文件更新

    4、 事业环境因素更新

    5、 组织过程资产更新

     

     

     

    七、项目沟通管理

     

    过程名称

    输入

    工具和技术

    输出

    1、制订沟通管理计划(规划沟通管理)

    1、 项目管理计划

    2、 干系人登记册

    3、 事业环境因素

    4、 组织过程资产

    1、 分析沟通需求

    2、 信息传递方法的选择

    1、 项目沟通管理计划

    2、 其他文档的更新

    2、管理沟通

     

    1、 项目沟通管理计划

    2、 工作绩效报告

    3、 组织过程资产

    4、 事业环境因素

    1、 沟通渠道的选择

    2、 信息传递方式的选择

    3、 信息管理系统

    4、 绩效报告

    1、 项目沟通

    2、 项目管理计划更新

    3、 其他项目计划更新

    4、 组织过程资产更新

    3、控制沟通

    1、 项目管理计划

    2、 项目沟通

    3、 问题日志

    4、 工作绩效数据

    5、 组织过程资产

    1、 信息管理系统

    2、 专家判断

    3、 会议

     

    1、 工作绩效信息

    2、 变更请求

    3、 项目管理计划更新

    4、 其他项目计划更新

    5、 组织过程资产更新

     

     

     

    八、项目采购管理

     

    过程名称

    输入

    工具和技术

    输出

    1、编制采购计划(规划采购)

    1、 项目管理计划

    2、 需求文档

    3、 风险登记册

    4、 活动资源要求

    5、 项目进度

    6、 活动成本估算

    7、 干系人登记册

    8、 事业环境因素

    9、 组织过程资产

    1、 自制外购分析

    2、 专家判断

    3、 市场调研

    4、 会议

    1、 采购管理计划

    2、 采购工作说明书

    3、 采购文件

    4、 供方选择标准

    5、 自制外购决策

    6、 变更申请

    7、 项目文件更新

    2、实施采购

    1、 采购管理计划

    2、 采购文件

    3、 供方选择标准

    4、 卖方建议书

    5、 项目文件

    6、 自制外购决策

    7、 采购工作说明书

    8、 组织过程资产

    1、 投标人会议

    2、 建议书评价技术

    3、 独立估算

    4、 专家判断

    5、 刊登广告

    6、 分析技术

    7、 采购谈判

    1、 选择的卖方

    2、 合同

    3、 资源日历

    4、 变更请求

    5、 项目管理计划更新

    6、 项目文件更新

    3、控制采购

    1、 项目管理计划

    2、 采购文件

    3、 合同

    4、 批准的变更请求

    5、 工作绩效报告

    6、 工作绩效数据

    1、 合同变更控制系统

    2、 检查与审计

    3、 采购绩效审查

    4、 报告绩效

    5、 支付系统

    6、 索赔管理

    7、 记录管理系统

    1、 工作绩效信息

    2、 变更请求

    3、 项目管理计划更新

    4、 项目文件更新

    5、 组织过程资产更新

    4、结束采购

    1、 合同

    2、 合同收尾程序

    3、 项目管理计划

    4、 采购文件

    1、 采购审计

    2、 采购谈判

    3、 记录管理系统

    1、 合同收尾

    2、 组织过程资产更新

     

     

    九、项目风险管理

     

    过程名称

    输入

    工具和技术

    输出

    1、规划风险管理

    1、 项目管理计划

    2、 项目章程

    3、 干系人登记册

    4、 事业环境因素

    5、 组织过程资产

    1、 分析技术

    2、 专家判断

    3、 会议

    1、风险管理计划

    2、识别风险

    1、 风险管理计划

    2、 成本管理计划

    3、 进度管理计划

    4、 质量管理计划

    5、 人力资源管理计划

    6、 范围基准

    7、 活动成本估算

    8、 活动持续时间估算

    9、 干系人登记册

    10、项目文件

    11、采购文件

    12、事业环境因素

    13、组织过程资产

    1、 文档审查

    2、 信息收集技术

    3、 核对单分析

    4、 假设分析

    5、 图解分析

    6、 SWOT分析

    7、 专家判断

     

    1、 风险登记册

    3、实施定性风险分析

    1、 风险管理计划

    2、 范围基准

    3、 风险登记册

    4、 事业环境因素

    5、 组织过程资产

    1、 风险概率和影响评价

    2、 概率和影响矩阵

    3、 风险数据质量评估

    4、 风险种类

    5、 风险紧急度评估

    6、 专家判断

    1、 风险登记册更新

    2、 假设条件日志更新

    4、实施定量风险分析

    1、 风险管理计划

    2、 成本管理计划

    3、 进度管理计划

    4、 风险登记册

    5、 事业环境因素

    6、 组织过程资产

    1、 数据收集和表示技术

    2、 定量分析和建模技术

    3、 专家判断

    1、项目的概率分布

    2、实现成本和实现目

    标的概率

    3、量化风险优先级清单

    4、定量风险结果的趋势

    5、规划风险应对

    1、 风险管理计划

    2、 风险登记册

    1、 消极风险或威胁的应对策略

    2、 积极风险或机会的应对策略

    3、 应急响应策略

    4、 专家判断

    1、项目管理计划更新

    2、项目文件更新

    6、控制风险

    1、 项目管理计划

    2、 风险登记册

    3、 工作绩效数据

    4、 工作绩效报告

    1、 风险再评估

    2、 风险审计

    3、 偏差和趋势分析

    4、 技术绩效测量

    5、 储备分析。6、会议

    1、 工作绩效信息

    2、 变更请求

    3、 项目管理计划更新

    4、 项目文件更新

    5、 组织过程资产更新

    十、项目干系人管理

    过程名称

    输入

    工具和技术

    输出

    1、识别干系人

     

    1、 项目章程

    2、 采购文件

    3、 事业环境因素

    4、 组织过程资产

    1、 会议

    2、 专家判断

    3、 干系人分析

    1、干系人登记册

    2、编制干系人管理计划(规划干系人)

    1、 项目管理计划

    2、 干系人登记册

    3、 事业环境因素

    4、 组织过程资产

    1、 会议

    2、 专家判断

    3、 分析技术

    1、 干系人管理计划

    2、 项目文件更新

    3、管理干系人参与(管理干系人)

    1、 干系人管理计划

    2、 沟通管理计划

    3、 变更日志

    4、 组织过程资产

    1、 沟通方法

    2、 人际关系技能

    3、 管理技能

    1、 问题日志

    2、 请求变更

    3、 项目管理计划更新

    4、 项目文件更新

    5、 组织过程资产更新

    4、控制干系人参与

    1、 项目管理计划

    2、 问题日志

    3、 工作绩效数据

    4、 项目文件

    1、 信息管理系统

    2、 专家判断

    3、 会议

    1、 工作绩效信息

    2、 纠正措施

    3、 变更请求

    4、 项目管理计划更新

    5、 组织过程资产更新

    6、 项目文件更新

     

    展开全文
  • 高中同学让我求8个菜市场和35个销售点(他们之间还会有15个路口)之间35*8=280个组合分别的最短路径及其输出。 最短路水题,嘿嘿。能用自己学到的知识帮助别人解决问题真是极好的享受。 具体注释可以见代码,写的...
    高中同学让我求8个菜市场和35个销售点(他们之间还会有15个路口)之间35*8=280个组合分别的最短路径及其输出。
    最短路水题,嘿嘿。能用自己学到的知识帮助别人解决问题真是极好的享受。

    具体注释可以见代码,写的蛮清楚的。

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std; 
    #define INF 0x3f3f3f3 //INF代表无穷大 
    const int MAX_N=100;
    int map[MAX_N][MAX_N],vis[MAX_N];
    int dis[MAX_N];//dis代表到每个点的最短距离 
    int pre[MAX_N];//记录前驱 
    int ans[MAX_N];//输出路径的数组 
    void dijkstr(int x,int m){//x代表开始点,m代表顶点个数 
        for(int i=1;i<=m;i++){
            dis[i]=map[x][i];
            vis[i]=0;
            if(map[x][i]!=INF)
            pre[i]=x;
            else
            pre[i]=-1; 
        }
        int p;
        vis[x]=1;
        for(int i=1;i<=m;i++){
               int min=INF;
               for(int j=1;j<=m;j++){
                   if(!vis[j]&&dis[j]<min){
                       min=dis[j];
                       p=j;
                   }       
               }
               vis[p]=1;
            for(int j=1;j<=m;j++){
                if(!vis[j]&&dis[p]+map[p][j]<dis[j])
                {
                   dis[j]=dis[p]+map[p][j];
                   pre[j]=p;
                }
                
            }           
        }
    }
    
    int main(){
        int m,n,a,b,c;
        //输入文件中数字含义:1-8为基地,9-43为销售点,44-58是路口,格式为 点 点 距离 
         
        freopen("in.txt","r",stdin);//从文件中读出数据 
        freopen("out.txt","w",stdout);//输出结果至文件 
        void dijkstr(int x,int n);
         //  cout<<"请输入点的个数和边的条数"<<endl; 
           cin>>m>>n;
            memset(vis,0,sizeof(vis));//m个点,n条边 
            for(int i=1;i<=m;i++)
            for(int j=1;j<=m;j++){
                 map[i][j]=INF;
            }
        //    cout<<"请依次按照起点,终点,距离的顺序输入边"<<endl;
            for(int j=1;j<=n;j++){
                cin>>a>>b>>c;
                map[a][b]=map[b][a]=c;
            }
            
           for(int i=1;i<=8;i++)
          {
            dijkstr(i,m);
            for(int j=9;j<=43;j++){
                int k=j;
                cout<<"从基地"<<i<<"到销售点"<<(j-8)<<"的最短距离是:"<<dis[k]<<endl; 
            int p,len=1;
            p=k;
            while(p>=1)
            {
               ans[len++]=p;
               p=pre[p];
            }
           int first=0; 
           cout<<"下面是具体路径: "<<endl;
           for(int r=len-1;r>=1;r--)
           {
                if(first++)
                cout<<"->";
                if(ans[r]>=1&&ans[r]<=8)
                cout<<"基地"<<ans[r];
                else if(ans[r]>=9&&ans[r]<=43)
                cout<<"销售点"<<ans[r]-8;
                else
                cout<<"路口"<<ans[r]-43;
              }
           cout<<endl;
           cout<<endl; 
         }
        }
        
        return 0;
    }
    详细数据和源代码提供下载: http://files.cnblogs.com/files/Tach-ac/%E6%9C%80%E7%9F%AD%E8%B7%AF.rar

    展开全文
  • 1、采用modeller对给定序列进行建模,单模板和模板方法各建3个模型,每种方法选择一个最优的模型,最后进行比较,选出最优的模型(怎样比较两个模型的好坏,可以从哪些角度去看)。并说明理由为何选该模型。 2、单...
    • 题目要求

    1、采用modeller对给定序列进行建模,单模板和多模板方法各建3个模型,每种方法选择一个最优的模型,最后进行比较选出最优的模型(怎样比较两个模型的好坏,可以从哪些角度去看)。并说明理由为何选该模型。

    2单模板结果与Swiss-model的结果进行简单的比较,说明异同(其实这里还是涉及了模型之间比较的问题)

    3、构建的模型都要在molprobitySAVES中的工具进行评估,并对评估结果进行注释(说明了什么?)

    4、请对实验流程、所用脚本、结果以及重要的参数选择进行记录和说明。

    图:实验流程 1

    • 操作过程记录及结果

    (一)前期准备

    1modeller软件的下载

    https://salilab.org/modeller/download_installation.html

    本次实验选择版本为Windows(64-bit)

    安装注册码:MODELIRANJE

    2、序列文件

    >jgi|Cormi1|1163|CCM_01166m.01

    MMGLGSVTFDEHNPNSEKGRENDARTSKSGLDYSPLPRLTGKSLSMGILVSMGGLIFGYDTGQISGFLEMPDFLARFGQLDSNGNAYFSRVRSGLIVSLLSIGTLIGALVAAPIADRFGRRPSISFWALMTAVGFVIQISADTAWTQIMMGRFVAGLGVGALSLLVPMYQAETAPAWIRGAMVCAYQLFITMGIFLAACFNFGTYHHQMHNSSSWRIVIGLGWIWTVVLGVGILFFPETPRFDYRRGKTEEAIKTLCDVHGAPRNHYIVHTQVAEIESKLHAESKIKKGHIAEFTSMLKAPRMLYRLSLGVALQSLQQLTGANFFFYYGVSIFKSVNIDSFITQIILNTINFLVTFIGLYIVEHFGRRKSLIAGSVWMFICFLIFASVGHFSLDYNNPENTPTPGIVLIVFAALFILGFATTWGPMIWTIQAELFPSRYRAKGMAISTAANWIWNFCIGFFTPFITGAIDYRYGYVFAACNFVAGFVIYFFVIEGQGRTIEEIDTMYLERVTPWKSAEWVAPDADQMEQIRRKAGIDVEALAAQNDEHSKIAGDPQGGVRVDGTNMDHVE

    (二)Swiss-model同源建模

    登录SWISS-MODEL网页,https://www.swissmodel.expasy.org/,提交序列,等待模型的预测结果。得到建模结果:https://www.swissmodel.expasy.org/interactive/2wz5cB/models/,取序列相似性为31.81%的模型(相似性越高,同源建模的准确率越高)。该模型以6h7d.1.A序列为模板。可以观察到模板序列与提交的目标蛋白序列并没有完全覆盖,首尾部分大概都有45bp长度缺失。

    (三)运用modeller建模

    单模板建模和多模板建模的异同:

    单模板建模是通过序列比对的方法,找到与目标序列相似度最高的一条序列作为模板(序列相似=>结构相似),再在此基础上进行优化。

    多模板建模是通过多序列比对,这些序列中的保守区域的结构特征很容易确定,对于差异的片段,在多条序列片段中找到与目标序列片段最主导(Dominant)的结构。然后将这些碎片的结构拼接成一个完整的目标序列结构。

    【操作参考说明文档】

    单模板建模:https://salilab.org/modeller/tutorial/basic.html

    多模板建模:https://salilab.org/modeller/tutorial/advanced.html

    3.1、单模板建模

    3.1.2、选择和目标蛋白序列相关的结构

    1、将序列文件修改为.ali格式文件。命名为seq.ali

    >P1;CCM_01166m

    sequence:CCM_01166m:::::::0.00: 0.00

    MMGLGSVTFDEHNPNSEKGRENDARTSKSGLDYSPLPRLTGKSLSMGILVSMGGLIFGYDTGQISGFLEMPDFLARFGQLDSNGNAYFSRVRSGLIVSLLSIGTLIGALVAAPIADRFGRRPSISFWALMTAVGFVIQISADTAWTQIMMGRFVAGLGVGALSLLVPMYQAETAPAWIRGAMVCAYQLFITMGIFLAACFNFGTYHHQMHNSSSWRIVIGLGWIWTVVLGVGILFFPETPRFDYRRGKTEEAIKTLCDVHGAPRNHYIVHTQVAEIESKLHAESKIKKGHIAEFTSMLKAPRMLYRLSLGVALQSLQQLTGANFFFYYGVSIFKSVNIDSFITQIILNTINFLVTFIGLYIVEHFGRRKSLIAGSVWMFICFLIFASVGHFSLDYNNPENTPTPGIVLIVFAALFILGFATTWGPMIWTIQAELFPSRYRAKGMAISTAANWIWNFCIGFFTPFITGAIDYRYGYVFAACNFVAGFVIYFFVIEGQGRTIEEIDTMYLERVTPWKSAEWVAPDADQMEQIRRKAGIDVEALAAQNDEHSKIAGDPQGGVRVDGTNMDHVE*

    2、运行build_profile.py文件。

    修改build_profile.py文件中的参数。

     

    (略去开头)

    #-- Read in the target sequence/alignment

    aln = alignment(env)

    aln.append(file='seq.ali', alignment_format='PIR', align_codes='ALL')

     

    #-- Convert the input sequence/alignment into

    #   profile format

    prf = aln.to_profile()

     

    #-- Scan sequence database to pick up homologous sequences

    prf.build(sdb, matrix_offset=-450, rr_file='${LIB}/blosum62.sim.mat',

              gap_penalties_1d=(-500, -50), n_prof_iterations=5,

              check_profile=False, max_aln_evalue=1, gaps_in_target=False)

    #略去结尾

     

    修改aln.append()中的file参数为我们的目标序列文件名seq.ali

    修改参数max_aln_evalue1(这样在输出文件buildprofile.prf中会有更多的检索结果)。

    seq.ali文件和build_profile.py等文件放置在同一路径下。在该路径下打开cmd

    运行指令:

    Python build_profile.py > build_profile.log

    得到结果文件:

    其中buildprofile.prf文件中存放有检索模板,可以打开查看。

     

     

    其中第一行是我们的目标序列,下面的就是检索出来的模板。

    将上述模板检索结果保存为.txt文件,用excel处理,根据第12列的数值大小排序,选择evalue较小的4条序列(evalue=0)。

    记录下pdb号,为“1ezvC”、“1eysM”、“1ar1B”、“1dxrM”。

    pdb数据库(http://www.rcsb.org/)中下载以上模板的pdb.文件,备用。

     

    3、比较结构与序列之间的相似性。(compare.py

     

    将模板的pdb文件和compare.py放置在同一文件夹下。

    修改compare.py文件。

     

    from modeller import *

    env = environ()

    aln = alignment(env)

    for (pdb, chain) in (('1ezv', 'C'), ('1eys', 'M'),('1dxr', 'M')

                         ):

        m = model(env, file=pdb, model_segment=('FIRST:'+chain, 'LAST:'+chain))

        aln.append_model(m, atom_files=pdb, align_codes=pdb+chain)

    aln.malign()

    aln.malign3d()

    aln.compare_structures()

    aln.id_table(matrix_file='family.mat')

    env.dendrogram(matrix_file='family.mat', cluster_cut=-1.0)

     

    由于“1ar1B”添加进去程序报错,未找到错误原因,遂删去“1ar1B”,接着程序可以正常运行。

    在文件夹路径下打开cmd,输入指令。

    Python compare.py >compare.log

     

    打开结果文件compare.log

     

            1ezvC @21eysM @21dxrM @2

    1ezvC @2      385       4       4

    1eysM @2        1     318     187

    1dxrM @2        1      59     323

    Weighted pair-group average clustering based on a distance matrix:

     

     

            .---------------------------------------------------------- 1ezvC @2.3    99.0000

            |

            |                                    .--- 1eysM @2.2    41.0000

            |                                   |

         .------------------------------------------------------------ 1dxrM  @2.0

     

          +----+----+----+----+----+----+----+----+----+----+----+----+

       101.3200   90.8800   80.4400   70.0000   59.5600   49.1200   38.6800

             96.1000   85.6600   75.2200   64.7800   54.3400   43.9000

     

    暂时选择1ezvC作为模板(至于如何选择,官网上的筛选条件我没怎么看懂)。

     

    4、将目标序列同模板比较。(align2d.py

     

    from modeller import *

    env = environ()

    aln = alignment(env)

    mdl = model(env, file='1ezv', model_segment=('FIRST:C','LAST:C'))

    aln.append_model(mdl, align_codes='1ezvC', atom_files='1ezv.pdb')

    aln.append(file='seq.ali', align_codes='CCM_01166m') #CCM_01166m是seq.ali文件第二行的序列名

    aln.align2d()

    aln.write(file='align.ali', alignment_format='PIR')

    aln.write(file='align.pap', alignment_format='PAP')

     

    修改文件中标记处。

    将模板的lezv.pdb文件同align2d.pyseq.ali(目标序列文件)文件放在同一个文件夹下。

    align2d.py文件所在路径下打开cmd。运行指令。

    Python align2d.py >align2d.log

     

    生成结果文件:

    5、单模板建模(model-single.py

    打开model-single.py文件。

     

    from modeller import *

    from modeller.automodel import *

    #from modeller import soap_protein_od

    env = environ()

    a = automodel(env, alnfile='align.ali',

                  knowns='1ezvC', sequence='CCM_01166m',

                  assess_methods=(assess.DOPE,

                                  #soap_protein_od.Scorer(),

                                  assess.GA341))

    a.starting_model = 1

    a.ending_model = 6 #最终生成的模型的数目,可修改

    a.make()

     

    修改文件标记处。

    上一步产生的align.alimodel-single.py放在同一个文件夹下。

    model-single.py文件所在路径下打开cmd。运行指令。

    Python model-single.py >model-single.log

     

    生成模型文件:

    模型的详细信息,参见model-single.log文件

     

     

    >> Summary of successfully produced models:

    Filename                          molpdf     DOPE score    GA341 score

    ----------------------------------------------------------------------

    CCM_01166m.B99990001.pdb      4224.62891   -55072.33594        0.04189

    CCM_01166m.B99990002.pdb      3910.86230   -53359.83984        0.04221

    CCM_01166m.B99990003.pdb      3997.98511   -54259.32031        0.06955

    CCM_01166m.B99990004.pdb      3903.93872   -53906.61328        0.07631

    CCM_01166m.B99990005.pdb      3726.95410   -54619.51953        0.07964

    CCM_01166m.B99990006.pdb      3893.26294   -53613.23828        0.03485

     

    选择其中最优的模型CCM_01166m.B99990005.pdb(DOPE score最低且GA341 score最高)进行下游分析。

    3.2、多模板建模

    1、多模板的选择

    1)方案一:序列比对,找多条相似序列(序列相似=>结构相似)。

    使用NCBIblast比对工具。选择Protein Data Bank proteins Database

    检索结果:

    如下图。

     

    选择6H7D_A4LDS_A4JA3_A4GBY_A4QIQ_A模板建模(他们都含有Sugar_tr结构域)。

    2)方案二:找单模板建模时匹配到的最优模板1ezvC同一家族的蛋白质模板。

    pfam数据库中,在数据库的搜索框中输入1ezvid号。

    http://pfam.xfam.org/structure/1ezv

    1ezvC所属的家族为Cytochrome_BCytochrome_B_C

    选择1EZV_C1KB9_C1KYO_C1KYO_N1P84_C2IBZ_C3CX5_C3CX5_N3CXH_C3CXH_N4PD4_C作为模板建模。

    综合方案一和方案二的模板,这些序列都用来进行多模板建模。

    pdb数据库(http://www.rcsb.org/)中下载模板的pdb文件,为下一步的操作做准备。

     

    2、模板序列的多序列比对(salign.py

     

    from modeller import *

     

    log.verbose()

    env = environ()

    env.io.atom_files_directory = './'

     

    aln = alignment(env)

    for (code, chain) in (('1ezv', 'C'), ('1kb9', 'C'), ('1kyo', 'C'),('1kyo', 'N'),('1p84', 'C'),('2ibz', 'C'),('3cx5', 'C'),('3cx5', 'N'),('3cxh', 'N'),('3cxh', 'C'),('4pd4', 'C'),

        ('6h7d', 'A'),('4gby', 'A'),('4gbz', 'A')):

        mdl = model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))

        aln.append_model(mdl, atom_files=code, align_codes=code+chain)

     

    for (weights, write_fit, whole) in (((1., 0., 0., 0., 1., 0.), False, True),

                                        ((1., 0.5, 1., 1., 1., 0.), False, True),

                                        ((1., 1., 1., 1., 1., 0.), True, False)):

        aln.salign(rms_cutoff=3.5, normalize_pp_scores=False,

                   rr_file='$(LIB)/as1.sim.mat', overhang=30,

                   gap_penalties_1d=(-450, -50),

                   gap_penalties_3d=(0, 3), gap_gap_score=0, gap_residue_score=0,

                   dendrogram_file='temple.tree',

                   alignment_type='tree', # If 'progresive', the tree is not

                                          # computed and all structues will be

                                          # aligned sequentially to the first

                   feature_weights=weights, # For a multiple sequence alignment only

                                            # the first feature needs to be non-zero

                   improve_alignment=True, fit=True, write_fit=write_fit,

                   write_whole_pdb=whole, output='ALIGNMENT QUALITY')

     

    aln.write(file='temple.pap', alignment_format='PAP')

    aln.write(file='temple.ali', alignment_format='PIR')

     

    aln.salign(rms_cutoff=1.0, normalize_pp_scores=False,

               rr_file='$(LIB)/as1.sim.mat', overhang=30,

               gap_penalties_1d=(-450, -50), gap_penalties_3d=(0, 3),

               gap_gap_score=0, gap_residue_score=0, dendrogram_file='1is3A.tree',

               alignment_type='progressive', feature_weights=[0]*6,

               improve_alignment=False, fit=False, write_fit=True,

               write_whole_pdb=False, output='QUALITY')

     

    根据实际情况,修改salign.py文件的划线处。

     

    3、目标序列同模板结构比对(align2d_mult.py

     

    from modeller import *

     

    log.verbose()

    env = environ()

     

    env.libs.topology.read(file='$(LIB)/top_heav.lib')

     

    # Read aligned structure(s):

    aln = alignment(env)

    aln.append(file='temple.ali', align_codes='all') #temple.ali是上一步操作的结果文件

    aln_block = len(aln)

     

    # Read aligned sequence(s):

    aln.append(file='seq.ali', align_codes='CCM_01166m') #seq.ali是目标序列文件

     

    # Structure sensitive variable gap penalty sequence-sequence alignment:

    aln.salign(output='', max_gap_length=20,

               gap_function=True,   # to use structure-dependent gap penalty

               alignment_type='PAIRWISE', align_block=aln_block,

               feature_weights=(1., 0., 0., 0., 0., 0.), overhang=0,

               gap_penalties_1d=(-450, 0),

               gap_penalties_2d=(0.35, 1.2, 0.9, 1.2, 0.6, 8.6, 1.2, 0., 0.),

               similarity_flag=True)

     

    aln.write(file='seq-mult.ali', alignment_format='PIR')

    aln.write(file='seq-mult.pap', alignment_format='PAP')

     

    4、建立模型(model_mult.py)

     

    from modeller import *

    from modeller.automodel import *

     

    env = environ()

    a = automodel(env, alnfile='seq-mult.ali',       

        knowns=('1ezvC','1kb9C','1kyoN','1p84C','2ibzC','3cx5N','3cxhC','4pd4C','6h7dA','4gbyA','4gbzA'), sequence='CCM_01166m')

    a.starting_model = 1

    a.ending_model = 2

    a.make()

     

    建造了的两个模型。

    5、模型评估(evaluate_model.py

     

    from modeller import *

    from modeller.scripts import complete_pdb

     

    log.verbose()    # request verbose output

    env = environ()

    env.libs.topology.read(file='$(LIB)/top_heav.lib') # read topology

    env.libs.parameters.read(file='$(LIB)/par.lib') # read parameters

     

    # read model file

    mdl = complete_pdb(env, 'CCM_01166m.B99990002.pdb')

     

    # Assess with DOPE:

    s = selection(mdl)   # all atom selection

    s.assess_dope(output='ENERGY_PROFILE NO_REPORT', file='CCM_01166m2.profile',

                  normalize_profile=True, smoothing_window=15)

     

    根据实际情况修改上面划线处的参数。

    评估结果:

    DOPE score            

    CCM_01166m.B99990001.pdb:-60330.765625

    CCM_01166m.B99990002.pdb:-60692.351562

    第二个模板的DOPE打分值更小一点,所以多模板建模结果选择第二个模板作为最优模板。

    三、结果讨论和分析

    (一)模型优化

    主要对多模板建模的模型尝试进行优化。

    可以看出同单模板建模的模型相比,多模板在0~100区间内明显优于单模板。在410~435区间内的值略高。

     

    于是尝试在这个区间范围内对多模板建模模型进行环区优化。

    loop_refine.py

     

    # Loop refinement of an existing model

    from modeller import *

    from modeller.automodel import *

     

    log.verbose()

    env = environ()

     

    # directories for input atom files

    env.io.atom_files_directory = './'

     

    # Create a new class based on 'loopmodel' so that we can redefine

    # select_loop_atoms (necessary)

    class MyLoop(loopmodel):

        # This routine picks the residues to be refined by loop modeling

        def select_loop_atoms(self):

            # 10 residue insertion

            return selection(self.residue_range('410', '435'))

     

    m = MyLoop(env,

               inimodel='CCM_01166m.B99990002.pdb', # initial model of the target

               sequence='CCM_01166m')          # code of the target

     

    m.loop.starting_model= 1           # index of the first loop model

    m.loop.ending_model = 10         # index of the last loop model

    m.loop.md_level = refine.very_fast # loop refinement method; this yields

                                       # models quickly but of low quality;

                                       # use refine.slow for better models

     

    m.make()

     

    (根据实际情况,修改上方文件划线处)

     

     

    一共建立了10个模型,其中第二个优化模型的DOPE 值最小(-52333.929688),选择该模型进行模型评估,绘图。

    可以看出环区优化之后,橙色区域的DOPE打分值有明显下降。

     

    但是,后来用VMD可视化查看模型结构时,发现在该模型在1~85区间内有很长的尾巴,无结构。(这也可以解释上图中,为什么多模板模型同单模板模型比较,1~100区间内DOPE 的打分值惊人的小)

     

     

     

     

    于是决定重新进行多模板建模。

     

    将序列1~85位氨基酸序列取出,使用的NCBIblastp搜索同源结构。

    找到同源模板6h7d_A4gby_A4gbz_A,下载pdb文件,将模板添加到多模板建模的文件中,重新建模评估。

    得到下方的结果。

    vmd中查看,优化后的模型没有很长的无序结构,基本满足要求。

     

     

    (二)模型可视化比较

    Swiss-modelmodeller单模板建模、modeller多模板建模的模型在vmdRMAD的工具中进行比较。可以计算出模型的偏差,如下图所示。

    其中46~496为序列的MFS结构域区段。

    参见uniprot中对于该实验目标序列CCM_01166的介绍:

    https://www.uniprot.org/uniprot/G3J3I1

     

    可以看出,与Swiss model建模结果比较,modeller 单模板建模和双模板建模的模板与之偏差很大(>20)

    【单模板建模比较】

    Swiss model建模和modeller单模板建模,都采用了单模板建模的方法。但是在具体的操作过程还是存在很多差异。

    首先Swiss modelmodeller搜索到的最优模板不同。对于本次实验,Swiss model的最优模板是6h7dA;但是modeller的最优模板是1ezvC

    其次,Swiss modelmodeller处理未匹配的序列的方式不一样,Swiss model将模板与目标序列不匹配的区段切除。modeller将不匹配区段以loop方式保留。

    最后,在使用方式上,个人认为modeller更加灵活,可扩展性更强,我可以在建模pipline的任何一个环节进行个性化的调整。

    (三)模型评估

    1Swiss-model建模评估结果

    1moplrobity评估结果

    2SAVES平台评估

    1. 拉氏图

    其中仅有90.8%(377/415)的氨基酸落在the most favoured regions,按照一般的标准(一个比较好的模型应该有90%以上的氨基酸落在 the most favoured regions,该模型符合要求,但是由于目标序列的长度是570个氨基酸,该模型在构造的过程中切掉了一部分,所以在后续使用时需要额外注意。

    1. Verify 3D (检验结果3D结果的兼容性)

    仅有64.36% 残基的平均3D-1D >= 0.2(一般标准是至少80%的氨基酸残基的平均3D-1D >= 0.2),所以该模型的三维结构不兼容,需要进一步优化。

    1. ERRAT(统计非键相互作用)

    Quality Factor: A: 93.3619

    在253~259区间中结构出错。可以考虑模型局部优化。

    1. WHATCHECK :立体化学

    该结构存在侧链平面角度问题;连接到平面外的芳香环问题;异常短的原子间距离问题;骨架构造Z值非常低问题;HIS, ASN, GLN 侧链翻转问题;平均B因子错误;

     

    2modeller单模板建模评估结果

     

    1moplrobity评估

     

    2SAVES平台评估

    1. 拉氏图

    其中仅有81.5%(402/570)的氨基酸落在the most favoured regions,按照一般的标准(一个比较好的模型应该有90%以上的氨基酸落在 the most favoured regions,该模型不符合要求,需要优化。

    1. Verify 3D (检验结果3D结果的兼容性)

    仅有49.12% 残基的平均3D-1D >= 0.2(一般标准是至少80%的氨基酸残基的平均3D-1D >= 0.2),所以该模型的三维结构不兼容,需要进一步优化。

     

    1. ERRAT(统计非键相互作用)

    Quality Factor: A: 37.5

    1. WHATCHECK :立体化学

    该结构模型存在异常短的原子间距离问题;骨架构造z值非常低的问题;平均B因子错误;HIS, ASN, GLN侧链翻转问题;

    3modeller多模板建模评估结果

    1moplrobity评估

    ramachandran outliersramachandran favored 可以和PROCHECK评估结果的ramachandran plot 参照着看。ramachandran outliers就相当于落在白色区域内的氨基酸的数量,ramachandran favored相当于落在红色区域内的氨基酸数量。一个好的结构模型,我们希望有更多的氨基酸落在红色区域内(>98%)。但是从我们结构的实际结果看,ramachandran favored的值和期望值有很大差异。该模型不是最优模型,需要进一步优化。

    rotamer的中文意思是旋转异构体,即由于绕单键旋转受阻碍而不能轻易互相转换的一组构象异构体。对于同一个分子而言,可以有多个构象变化。每个构象都有自己的势能。随着转动角度的变化,势能也起伏变化,呈现出几个极小值。具有极小值势能的几个构象互为构象异构体

    poor rotamers指的是构象异构体中势能最大的结构。

    favor rotamers指的是构象异构体中势能最小的结构。

    一般而言,分子中favor rotamer的比例大于98%poor rotamer的比例小于0.3%,这样的模型是稳定的合理的结构。但是就本模型的实际情况而言,poor rotamer的比例为6.01%,远远大于0.3%favor rotamer的比例小于标准值。因此该模型需要进一步的修正。

    脯氨酸是环状的亚氨酸,容易形成顺式肽链。常规情况下,肽键大多是反式结构,形成稳定的肽平面。一个结构中顺式肽键含量多,会影响结构的稳定性。因此将顺式脯氨酸的含量也作为模型好坏的评价指标之一。但是,从上表实际 的结果可以看出,该模型不存在这类问题。

    总体来说,这个模型的结构评估结果非常的糟糕

    2SAVES平台评估

    1. 拉氏图(检验蛋白质的构象是否合理)

    其中仅有81.5%(402/570)的氨基酸落在the most favoured regions,按照一般的标准(一个比较好的模型应该有90%以上的氨基酸落在 the most favoured regions,该模型不符合要求,需要优化。

    1. Verify 3D

    verify 3D是通过根据原子模型的位置和环境(alphabetalooppolarnonpolar等)分配结构类,并将结果与良好结构进行比较,确定原子模型(3d)与其自身氨基酸序列(1d)的兼容性的工具。

    从下图的分析结果可以看出:仅有60.88% 残基的平均3D-1D >= 0.2(一般标准是至少80%的氨基酸残基的平均3D-1D >= 0.2),所以该模型的三维结构不兼容,需要进一步优化。

    1. ERRAT(分析不同原子类型之间非键合相互作用的统计数据,并绘制误差函数值与9残基滑动窗口位置的关系曲线。)

    不同类型的原子在蛋白质中相对于彼此非随机分布。模型构建中的错误导致不同原子类型的更随机分布,这可以通过统计方法与正确分布区分开。

    原子分为三类:碳(C),氮(N)和氧(O)。这导致成对非共价键合相互作用(CCCNCONNNOOO)的六种不同组合。二次误差函数用于表征96个可靠蛋白质结构数据库中九个残基滑动窗口的成对相互作用集。然后可以通过分析来自每个窗口的非键合相互作用的模式来鉴定被错误构造的候选蛋白质结构的区域。

    Quality Factor: A: 24.2424

    (大片红色区域,模型在非键相互作用方面非常不合格)

    1. WHATCHECK :立体化学

    该结构模型存在异常短的原子间距离问题;骨架构造z值非常低的问题;平均B因子错误;HIS, ASN, GLN侧链翻转问题;

    【参考链接】

    [1] Swiss model建模:https://www.swissmodel.expasy.org/

    [2]单模板建模:https://salilab.org/modeller/tutorial/basic.html

    [3]多模板建模:https://salilab.org/modeller/tutorial/advanced.html

    [4] pdb数据库:http://www.rcsb.org/

    [5] uniprot数据库:https://www.uniprot.org/

    [6] Molprobity模型评估平台: http://molprobity.biochem.duke.edu/

    [7] SAVES模型评估平台:http://servicesn.mbi.ucla.edu/SAVES/

     

     

    展开全文
  • gp服务是在轻量级客户端调用的所以对输入输出参数;关于建模的详细过程请参考ArcGIS的帮助文档或;1.建模过程:;这里的生成等值面用到了空间分析中的插值分析工具I;在modelBuilder中添加该工具;Point是进行该分析...
  • 威胁建模

    万次阅读 2020-01-12 11:49:52
    威胁建模 什么是威胁建模? 威胁建模可以在产品设计阶段、架构...1.站在攻击者的角度通过识别威胁,尽可能的发现产品架构和功能设计中的安全风险 2.制定措施消减威胁,规避风险,确保产品的安全性 威胁建模方...
  • 尝试用BPMN 2.0的实例任务建模多人会签流程 博客分类: BPMN bpmn bpmn123 jbpm activiti 工作流   国内做政务工作流项目中经常遇到多人会签的人工任务,刚学习了一下BPMN 2.0的...
  • 使用keras进行分类建模

    万次阅读 2018-07-11 17:08:36
    由于所有的四个输入变量都是数值型,并且具有相同的尺度,该数据集研究较,是应用于神经网络的好例子。 每一个实例描述一个观察到的花朵测量的属性,输出变量是特定iris种类。 这是一个分类问题,意思是,需要...
  • 变量时间序列的预测和建模指南

    万次阅读 多人点赞 2019-06-24 12:35:01
    1.单变量与变量时间序列 本文假定读者熟悉单变量时间序列的性质,以及用于预测的各种技术。由于本文将重点讨论变量时间序列,因此我建议您阅读以下文章,这些文章可以作为对单变量时间序列的良好介绍: 时间...
  • 本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档分类应用) R中的softmaxreg包,发自2016-09-09,链接:https://cran.r-project.org/web/packages/softmaxreg/index.html ...
  • 为了对设计外部的时序情况进行精确建模,设计者必须设定输入输出端口的时序信息。Vivado只能识别出FPGA器件范围内的时序,因此必须使用set_input_delay和set_output_delay命令来设置FPGA范围外的延迟值。两者在...
  • 1.输入向量维数=输入层节点数 2.隐含层节点数计算 一般情况下隐含层转移函数用logsig或tansig 确定隐含层节点数应该满足以下条件:  隐含层节点数必须小于N-1(N是训练样本数),否则网络模型的系统误差与训练样本...
  • 现在用 Python 写线性回归的博客都快烂大街了,为什么还要用 SPSS 做线性回归呢?这就来说说 SPSS 存在的原因吧。...SPSS 做因子分析,输出结果中有一项 Kaiser-Meyer-Olkin Measure of Sampling Ade...
  • 输入 T&T 输出 1.制定项目章程 1.协议 2.项目工作说明书 3.商业论证 4.事业环境因素 5.组织过程资产 1.专家判断 2.引导技术 1.项目章程 2.制定项目...
  • 输入输出解释: 工具解释: 1 1 制定项目章程 (项目整合) 制定一份正式批准项目或阶段的文件,并记录能反映干系人需要和期望的初步要求的过程 1、项目工作说明书 2、商业论证 3、...
  • 数学建模 matlab 数据建模基础

    千次阅读 2020-05-30 21:47:56
    textread读取信息的好处是,可以做到控制输出更精准,以及不需要使用fopen命令打开文件就可以直接读取TXT里的内容。 [A,B,C,…]=textread(‘filename’,‘format’,N,‘headerlines’,M) 其中,filename表示需要读取...
  • simulink建模之电池模型

    万次阅读 多人点赞 2019-04-14 20:15:43
    原理解释1.1模型的输入输出的参数1.2主要数学公式2.主要步骤2.1第一步:计算电池电量Q2.2第二步:计算SOC值(注意公式)2.3第三步:计算电池电压2.4 第四步:外部参数的对应关系3.总结3.1 注意相关参数3.1 自己...
  • 系统建模

    千次阅读 2012-10-14 22:30:51
    结构化系统建模 1.数据流图 DFD(Data Flow Diagram) 数据流图由数据流(data flow),加工(process),文件(data store),源 / 宿(Source / Sink)四部分组成。 数据流是有一组固定成分的数据组成,...
  • 3、门级建模

    2019-11-02 20:55:02
    (1)输入门:一个标量输出个标量输入 (2)输出门:具有一个标量输入个标量输出 (3)三态门:只在控制信号有效时才能传递数据;如果控制信号无效,则输出高阻z 3.2、门实例语法 3.1、门的类型 ...
  • 2、制定项目管理计划:输入:项目章程、其它过程的输出、事业环境因素、组织过程资产工具:专家判断、引导技术;输出:项目管理计划;3、指导和管理项目工作:输入:项目管理计划、批准的变更请求、事业环境因素、...
  • 项目管理九大知识点输入输出

    千次阅读 2016-08-18 11:35:04
    一、 项目整体管理 1、制订项目章程;2、制订项目范围说明书(初步);...输入 工具与技术 输出 ⑴合同:来自客户的采购组织 ⑵工作说明书(SOW):对内部项目:基于业务需要或产品
  • Keras Conv1d 参数及输入输出详解

    千次阅读 2019-10-08 06:51:34
    Conv1d(in_channels,out_channels,kernel_size,...filters:卷积核的数目(即输出的维度) kernel_size:整数或由单个整数构成的list/tuple,卷积核的空域或时域窗长度 strides:整数或由单个整数构成的list/tu...
  • 在临摹学习时,经常会看到demo中的Inport模块有多种不同的形式,现总结一下。   默认图标 从Ports &amp; Subsystems库中拖出来的输入...比如,先在BusEditor中添加myBus对象,再将输入端口的数据类型配置...
  • 电池建模与离散化

    千次阅读 2018-12-28 23:54:16
    三大模型分别从电化学反应、输入输出关系拟合和等效电路的角度分析锂离子电池所表现出的外特性,各有其特点和局限性,而本节主要介绍二阶等效电路模型,在其基础上减增RC回路便可实现一阶、三阶和其他高阶等效电路的...
  • 数学建模学习笔记--八步建模

    千次阅读 2018-03-28 14:50:01
    量的分析 收集数学建模的必要信息(相关数据和参考资料) 分析研究对象的主要特征(内在机理或者输入输出)从而对现实问题有一个比较清晰地了解3. 模型假设 根据所研究对象的特征以及建模目的抓住问题的本质,...
  • 领域建模详解

    千次阅读 2020-03-23 16:32:39
    领域建模。 从领域模型开始,我们就开始了面向对象的分析和设计过程,可以说,领域模型是完成从需求分析到面向对象设计的一座桥梁。 顾名思义,就是显示最重要的业务概念和它们之间关系,是真实世界各个事物的表示...
  • 本节向大家介绍一下UML建模工具Rose与PowerDesigner,两款建模工具的对比,主要包括二者的出身,二者的区别等内容,相信通过本节的介绍你对UML建模工具Rose与PowerDesigner,两款建模工具的特性有清楚的认识。...
  • 控制系统中被控对象建模

    千次阅读 2020-05-21 14:45:01
    在控制理论发展的早期,被控对象模型是通过分析对象的组成结构,结合相关的物理与数学知识,建立起系统输出输入之间的解析关系式(这种建模方法又称为机理建模)。由于这种方法具有很强的物理意义,因此可以较为...
  • Smart3D输出/输入空三结果

    千次阅读 2019-08-12 21:36:32
    1.输出空三结果 Smart3D在完成空三后就可以输出空三,直接在空三块上右键即可: 如上图,选择导出——导出到XML(如非特殊要求,一般为XML格式),然后出现界面: 输出格式(Outputformat):BlocksExchange ...
  • 平稳多元序列建模

    千次阅读 2017-07-08 09:36:10
    1970年,Box和Jenkins采用带输入变量的ARIMA模型,为平稳多元序列建模。 该模型构建的思想是:假设响应序列{Yt}和输入序列(即自变量序列){X1t},{X2t}…{Xnt}均平稳,首先构建响应序列与输入序列的回归模型: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,986
精华内容 37,194
关键字:

多输入多输出建模