sponge.system.Residue
=========================

.. image:: https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/website-images/r2.2/resource/_static/logo_source.svg
    :target: https://gitee.com/mindspore/mindscience/blob/r0.5/MindSPONGE/docs/api/api_python/system/sponge.system.Residue.rst
    :alt: 查看源文件


.. py:class:: sponge.system.Residue(atom_name: Union[List[str], ndarray] = None, atom_type: Union[List[str], ndarray] = None, atom_mass: Union[Tensor, ndarray, List[float]] = None, atom_charge: Union[Tensor, ndarray, List[float]] = None, atomic_number: Union[Tensor, ndarray, List[float]] = None, bonds: Union[Tensor, ndarray, List[int]] = None, settle_index: Union[Tensor, ndarray, List[int]] = None, settle_length: Union[Tensor, ndarray, List[float]] = None, settle_unit: str = None, head_atom: int = None, tail_atom: int = None, start_index: int = 0, name: str = 'MOL', template: Union[dict, str] = None, length_unit: str = None, **kwargs)

    残基的基类。 `Residue` 神经元是 `Molecule` (system) 的组成部分。 `Residue` 不止可以代表单一的氨基酸残基,还可以代表分子系统中的一个小分子,例如一个水分子,一个无机盐离子等。这代表着 `Residue` 和PDB文件中的 "residue" 有着相似的概念。

    .. Note::
        `Residue` 只用来表示原子属性和键连接关系,不包含原子坐标。

    参数:
        - **atom_name** (Union[List[str], ndarray]) - 原子名称的array,数据类型为str。默认值:``None``。
        - **atom_type** (Union[List[str], ndarray]) - 原子种类的array,数据类型为str。默认值:``None``。
        - **atom_mass** (Union[Tensor, ndarray, List[float]]) - 原子质量的array,shape为 :math:`(B, A)` ,数据类型为float。默认值:``None``。
        - **atom_charge** (Union[Tensor, ndarray, List[float]]) - 原子电荷的array,shape为 :math:`(B, A)` ,数据类型为float。默认值:``None``。
        - **atomic_number** (Union[Tensor, ndarray, List[float]]) - 原子序数的array,shape为 :math:`(B, A)` ,数据类型为float。默认值:``None``。
        - **bonds** (Union[Tensor, ndarray, List[int]]) - 键连的array,shape为 :math:`(B, b, 2)` ,数据类型为int。默认值为:``None``。
        - **settle_index** (Union[Tensor, ndarray, List[int]]) - 用于SETTLE限制算法的原子序数的array,shape为 :math:`(B, 3)` ,数据类型为int。索引的顺序是订点原子和两个基原子。默认值为: ``None`` 。
        - **settle_length** (Union[Tensor, ndarray, List[float]]) - 用于SETTLE限制算法的长度array,shape为 :math:`(B, 2)` ,数据类型为int。索引的顺序是leg和base。默认值为:``None``。
        - **settle_unit** (str) - 用于SETTLE限制算法的单位。默认值:``None``。
        - **head_atom** (int) - 与前一个残基相连接的头原子的索引。默认值:``None``。
        - **tail_atom** (int) - 与下一个残基相连的尾原子的索引。默认值:``None``。
        - **start_index** (int) - 残基中第一个原子的开始索引。默认值:0。
        - **name** (str) - 残基名称。默认值:'MOL'。
        - **template** (Union[dict, str]) - 残基的模板。默认值:``None``。
        - **length_unit** (str) - 长度单位。默认值:``None``。
        - **kwargs** (dict) - 其他参数字典

    符号:
        - **B** - Batch size。
        - **A** - 原子总数。
        - **b** - 键总数。

    .. py:method:: add_atom(atom_name: str = None, atom_type: str = None, atom_mass: float = None, atom_charge: float = None, atomic_number: str = None)

        把一个原子添加到残基中。

        参数:
            - **atom_name** (str) - 原子名称。默认值:``None``。
            - **atom_type** (str) - 原子种类。默认值:``None``。
            - **atom_mass** (float) - 原子质量。默认值:``None``。
            - **atom_charge** (float) - 原子电荷数。默认值:``None``。
            - **atomic_number** (str) - 原子序数。默认值:``None``。

    .. py:method:: broadcast_multiplicity(multi_system: int)

        将信息广播到所选择的多系统中。

        参数:
            - **multi_system** (int) - 多系统中系统的数量。

    .. py:method:: build_atom_charge(template: dict)

        按照模板中原子名称对应的原子索引,获取模板对应索引的原子电荷数并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。

    .. py:method:: build_atom_mass(template: dict)

        按照模板中原子名称对应的原子索引,获取模板对应索引的原子质量并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。

    .. py:method:: build_atom_type(template: dict)

        按照模板中原子名称对应的原子索引,获取模板对应索引的原子种类并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。

    .. py:method:: build_atomic_number(template: dict)

        按照模板中原子名称对应的原子索引,获取模板对应索引的原子数并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。

    .. py:method:: build_bond(template: dict)

        按照模板中原子名称对应的原子索引,获取模板对应索引的原子的化学键并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。

    .. py:method:: build_settle(template: dict)

        按照模板中原子类型对应的原子索引,为SETTLE算法获取模板对应索引和长度并加到残基对应原子上。

        参数:
            - **template** (dict) - 残基的模板。
    
    .. py:method:: name()
        :property:

        获取残基的名称。

        返回:
            str,残基名称。

    .. py:method:: set_name(name: str)

        设定残基的残基名。

        参数:
            - **name** (str) - 残基名称。

    .. py:method:: set_start_index(start_index: int)

        设定残基的开始索引。

        参数:
            - **start_index** (int) - 残基的开始索引。