
# 创建分子生成作业
#### 功能介绍
创建分子生成作业。
#### URI
POST /v1/{project_id}/eihealth-projects/{eihealth_project_id}/drug-jobs/generation
表1路径参数 
| 参数                  | 是否必选 | 参数类型   | 描述                                                                                                       |
|:---|:---|:---|:---|
| project_id          | 是    | String | 项目ID，您可以从获取项目ID中获取。 最小长度：**1** 最大长度：**128** |
| eihealth_project_id | 是    | String | 平台项目ID。 最小长度：**1** 最大长度：**128**              |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。Token认证就是在调用API的时候将Token加到请求消息头，从而通过身份认证，获得操作API的权限，获取Token接口响应消息头中X-Subject-Token的值即为Token。 最小长度：**1** 最大长度：**32768** |
   
表3请求Body参数 
| 参数                 | 是否必选 | 参数类型                                                                      | 描述                                                                                                                                                  |
|:---|:---|:---|:---|
| basic_info         | 是    | [CreateDrugJobBasicInfo] object        | 作业基本信息。                                                                                                                                             |
| smiles_list        | 否    | Array of strings                                                          | 分子表达式列表。 最小长度：**1** 最大长度：**512** 数组长度：**10 - 10000**    |
| molecule_file      | 否    | [DrugFile] object                     | 分子文件，分子表达式列表和分子文件二选一，分子文件优先级最高。                                                                                                                     |
| binding_sites      | 否    | Array of [BindSiteDto] objects            | 靶点列表。 数组长度：**0 - 2**                                                                                                  |
| weak_constraints   | 否    | Array of [WeakConstraintDto] objects    | 弱约束集合。 数组长度：**0 - 10**                                                                                               |
| strong_constraints | 否    | Array of [StrongConstraintDto] objects | 强约束集合。 数组长度：**0 - 5**                                                                                                  |
| base_model_id      | 否    | String                                                                    | 基模型id。 缺省值：**pangu-drug-model** 最小长度：**0** 最大长度：**128** |
| model_ids          | 否    | Array of strings                                                          | 模型id列表。 最小长度：**1** 最大长度：**128** 数组长度：**0 - 10**          |
| num_trials         | 否    | Integer                                                                   | 生成分子数量。 最小值：**0** 最大值：**5000** 缺省值：**5000**              |
   
 表4CreateDrugJobBasicInfo 
| 参数                | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                |
|:---|:---|:---|:---|
| name              | 是    | String           | 作业的名称，取值范围：\[5,64\]，允许大小写字母、数字、空格、下划线(_)和中划线(-),只能以数字或字母开头。 最小长度：**5** 最大长度：**64**                                                     |
| labels            | 否    | Array of strings | 标签，取值范围\[0,5\]，单个标签最大长度32字符，支持中文、字母、数字、空格、下划线和中划线，且不能以空格开头或者结尾。 最小长度：**1** 最大长度：**32** 数组长度：**0 - 5** |
| upstream_job_info | 否    | String           | 上游作业信息。 最小长度：**1** 最大长度：**10240**                                                                                                      |
   
 表5DrugFile 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| source | 是    | String | 受体的数据源：外部网络数据（如RCSB在线数据库）、用户私有数据中心、承载租户公共数据（含样例/公共库）。 枚举值： - **EXTRANET**  - **PRIVATE**  - **PUBLIC**  - **RAW**   |
| url    | 否    | String | 文件URL，当数据源为外部网络数据时为https地址；用户私有数据中心为项目路径、公共数据场景为obs地址。 最小长度：**1** 最大长度：**2000**                                                                                                                                                                                                                                                                                                                       |
| format | 否    | String | 文件格式，支持PDB、SDF、MOL2、SMI，仅数据源为RAW时提供。 最小长度：**1** 最大长度：**6**                                                                                                                                                                                                                                                                                                                                             |
| data   | 否    | String | 文件原始数据，仅数据源为RAW时提供。 最小长度：**0** 最大长度：**10000000**                                                                                                                                                                                                                                                                                                                                                    |
   
 表6BindSiteDto 
| 参数            | 是否必选 | 参数类型                                                        | 描述                                                                                                                                                                              |
|:---|:---|:---|:---|
| name          | 否    | String                                                      | 靶点名称，只能设置为target1或者target2。 最小长度：**1** 最大长度：**128**                                                                   |
| receptor      | 是    | [ReceptorDrugFile] object  | 受体文件。                                                                                                                                                                           |
| engine        | 否    | String                                                      | 对接引擎，支持DSDP、AUTODOCK_VINA。 缺省值：**AUTODOCK_VINA** 最小长度：**0** 最大长度：**15**           |
| docking_type  | 否    | String                                                      | 对接类型，支持BLIND_DOCKING、POCKET_DOCKING。 缺省值：**POCKET_DOCKING** 最小长度：**0** 最大长度：**15** |
| bounding_box  | 否    | [BoundingBoxDto] object | 结合口袋，包含口袋中心位置和尺寸大小。                                                                                                                                                             |
| remove_ion    | 否    | Boolean                                                     | 去除受体中的离子。 缺省值：**true**                                                                                                                            |
| remove_water  | 否    | Boolean                                                     | 去除受体中的水分子。 缺省值：**true**                                                                                                                           |
| remove_ligand | 否    | Boolean                                                     | 去除受体中的配体分子。 缺省值：**true**                                                                                                                          |
| add_hydrogen  | 否    | Boolean                                                     | 增加氢原子。 缺省值：**false**                                                                                                                              |
   
 表7ReceptorDrugFile 
| 参数     | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| source | 是    | String | 受体的数据源：外部网络数据（如RCSB在线数据库）、用户私有数据中心、承载租户公共数据（含样例/公共库）。 枚举值： - **EXTRANET**  - **PRIVATE**  - **PUBLIC**  - **RAW**   |
| url    | 否    | String | 文件URL，当数据源为外部网络数据时为https地址；用户私有数据中心为项目路径、公共数据场景为obs地址。 最小长度：**1** 最大长度：**2000**                                                                                                                                                                                                                                                                                                                             |
| format | 否    | String | 文件格式，仅支持PDB，仅数据源为RAW时提供。 最小长度：**1** 最大长度：**6**                                                                                                                                                                                                                                                                                                                                                           |
| data   | 否    | String | 文件原始数据，仅数据源为RAW时提供。 最小长度：**0** 最大长度：**10000000**                                                                                                                                                                                                                                                                                                                                                         |
   
 表8BoundingBoxDto 
| 参数      | 是否必选 | 参数类型             | 描述                                                                                                                                                             |
|:---|:---|:---|:---|
| center  | 是    | Array of doubles | 口袋中心坐标； x, y, z轴的坐标。 最小值：**-9999999** 最大值：**99999999** 数组长度：**3 - 3** |
| size    | 是    | Array of floats  | 口袋尺寸大小； x, y, z轴的大小。 最小值：**2** 最大值：**500** 数组长度：**3 - 3**           |
| padding | 否    | Float            | 填充。 最小值：**0** 最大值：**20**                                                                           |
   
 表9WeakConstraintDto 
| 参数          | 是否必选 | 参数类型                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| id          | 否    | String                                                                 | 自定义模型id，仅弱约束为模型时填写。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| name        | 否    | String                                                                 | 属性名称。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| type        | 是    | String                                                                 | 属性约束类型。 枚举值： - **bool**  - **range**  - **struct**  - **minimize**  - **maximize**  - **interaction**   |
| bool        | 否    | Boolean                                                                | 属性约束类型bool的参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| range       | 否    | Array of floats                                                        | 属性约束类型range的参数。 最小值：**-9999** 最大值：**9999** 数组长度：**2 - 2**                                                                                                                                                                                                                                                                                                                                                                                                                             |
| struct      | 否    | [StructureConstraintParamsDto] object | 结构约束参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| quantiles   | 否    | Array of floats                                                        | 属性约束类型minimize和maximize的参数。 最小值：**0.0** 最大值：**1.0** 数组长度：**2 - 2**                                                                                                                                                                                                                                                                                                                                                                                                                 |
| interaction | 否    | [InteractionConstraintDto] object     | 相互作用力约束参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
 表10StrongConstraintDto 
| 参数          | 是否必选 | 参数类型                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| id          | 否    | String                                                                 | 自定义模型id，仅强约束为模型时填写。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                            |
| name        | 否    | String                                                                 | 属性名称。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                        |
| type        | 是    | String                                                                 | 属性约束类型。 枚举值： - **bool**  - **range**  - **struct**  - **interaction**   |
| bool        | 否    | Boolean                                                                | 属性约束类型bool的参数。                                                                                                                                                                                                                                                                                                                                                                                                   |
| range       | 否    | Array of floats                                                        | 属性约束类型range的参数。 最小值：**-9999** 最大值：**9999** 数组长度：**2 - 2**                                                                                                                                                                                                                                                             |
| struct      | 否    | [StructureConstraintParamsDto] object | 结构约束参数。                                                                                                                                                                                                                                                                                                                                                                                                          |
| interaction | 否    | [InteractionConstraintDto] object     | 相互作用力约束参数。                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表11StructureConstraintParamsDto 
| 参数        | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| structs   | 是    | Array of strings | 子结构SMILES。 最小长度：**1** 最大长度：**120** 数组长度：**1 - 8**                                                                                                                     |
| exclusive | 是    | Boolean          | 是否排除子结构。                                                                                                                                                                                                                                                     |
| operator  | 否    | String           | 多个子结构之间的逻辑关系。 枚举值： - **or**  - **and**   |
   
 表12InteractionConstraintDto 
| 参数           | 是否必选 | 参数类型                                                              | 描述                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| interactions | 是    | Array of [Interaction] objects | 相互作用力列表。 数组长度：**1 - 8**                                                                                                                                                                                                          |
| exclusive    | 是    | Boolean                                                           | 是否排除指定的约束作用力。                                                                                                                                                                                                                                                  |
| operator     | 否    | String                                                            | 多个作用力之间的逻辑关系。 枚举值： - **or**  - **and**   |
   
 表13Interaction 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| binding_site | 是    | String | 靶点，只支持target1或target2。 最小长度：**1** 最大长度：**128**                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| type         | 是    | String | 相互作用力类型：氢键、疏水作用、盐桥、π-π堆积、π-阳离子。 枚举值： - **hydrogen_bond**  - **hydrophobic_action**  - **salt_bridge**  - **pi_stacking**  - **pi_cation**   |
| amino_acid   | 是    | String | 氨基酸。 最小长度：**4** 最大长度：**16**                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
#### 响应参数
**状态码： 201**
表14响应Body参数 
| 参数                | 参数类型    | 描述      |
|:---|:---|:---|
| id                | String  | 作业id。   |
| limit_concurrency | Integer | 限制的并发量。 |
   
#### 请求示例
创建分子生成作业，输入方式为分子表达式，作业名称为demo-job，分子文件为project:/dir/file，靶点设置的受体文件为project:/test.pdb，口袋中心位置为\[0,0,0\]，口袋尺寸大小为\[500,500,500\]，设置弱约束为eye_corrosion，类型为布尔值，值为true，设置强约束为sascore，类型为range，值为\[0,1\]。
```
https://{endpoint}/v1/{project_id}/eihealth-projects/{eihealth_project_id}/drug-jobs/generation 
 
{ 
  "basic_info" : { 
    "name" : "demo-job", 
    "labels" : [ "labelA" ] 
  }, 
  "molecule_file" : { 
    "source" : "PRIVATE", 
    "url" : "project:/dir/file" 
  }, 
  "num_trials" : 500, 
  "binding_sites" : [ { 
    "name" : "target1", 
    "receptor" : { 
      "source" : "PRIVATE", 
      "url" : "project:/test.pdb" 
    }, 
    "engine" : "DSDP",
    "bounding_box" : { 
      "center" : [ 0, 0, 0 ], 
      "size" : [ 500, 500, 500 ] 
    }, 
    "remove_ion" : false, 
    "remove_water" : false, 
    "remove_ligand" : false 
  } ], 
  "weak_constraints" : [ { 
    "name" : "eye_corrosion", 
    "type" : "bool", 
    "bool" : true 
  } ], 
  "strong_constraints" : [ { 
    "name" : "sascore", 
    "type" : "range", 
    "range" : [ 0, 1 ] 
  } ] 
}
```
#### 响应示例
**状态码： 201**
CREATED
- 创建分子生成作业成功。
  ```
  { 
     "id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1" 
   }
  ```
  
- 创建分子生成作业成功，当前运行作业数已达配额限制，此作业会等待。
  ```
  { 
     "id" : "baabcb56-5bb6-11eb-8a0d-fa163e3ddba1", 
     "limit_concurrency" : 50 
   }
  ```
  
 
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 201 | CREATED |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-eihealth/ErrorCode.html)。
