SELFIES中的函数简介

SELFIES是一种用于表示化学分子的字符串格式,提供编码和解码功能。它具有语义约束,确保表示的合法性,并支持多种操作,如获取约束、处理多个SELFIES等。SELFIES在化学和机器学习交叉领域有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import selfies as sf

点进入selfies,可以看到inti中有如下方法:

1、"encoder",

>>> import selfies as sf
>>> sf.encoder("C=CF")
'[C][=C][F]'

 

2、"decoder",

>>> import selfies as sf
>>> sf.decoder('[C][=C][F]')
'C=CF'

 

3、"get_preset_constraints",

返回给定名称的预设语义约束。


4、"get_semantic_robust_alphabet",

返回在当前语义约束下受 :mod:`selfies` 约束的所有 SELFIES 符号的子集。

5、"get_semantic_constraints",

语义约束,可以查看SELFIES里面存在的语义约束,我觉得就是化合价,SELFIES里面定义了如下语义约束

default_constraints = sf.get_semantic_constraints()
default_constraints

{'H': 1,
 'F': 1,
 'Cl': 1,
 'Br': 1,
 'I': 1,
 'O': 2,
 'O+1': 3,
 'O-1': 1,
 'N': 3,
 'N+1': 4,
 'N-1': 2,
 'C': 4,
 'C+1': 5,
 'C-1': 3,
 'S': 6,
 'S+1': 7,
 'S-1': 5,
 'P': 7,
 'P+1': 8,
 'P-1': 6,
 '?': 8}


6、"set_semantic_constraints",

更新:mod: ' selfie '操作的语义约束。


7、"len_selfies",

>>> import selfies as sf
>>> sf.len_selfies("[C][=C][F].[C]")
5


8、"split_selfies",

将SELFIES有序的拆分为多个独立的token

>>> import selfies as sf
>>> list(sf.split_selfies("[C][=C][F].[C]"))
['[C]', '[=C]', '[F]', '.', '[C]']
"""


9、"get_alphabet_from_selfies",

获得单个/多个SELFIES的词库,有点像去重的"split_selfies"方法 + 可以同时处理多个SELFIES

>>> import selfies as sf
>>> selfies_list = ["[C][F][O]", "[C].[O]", "[F][F]"]
>>> alphabet = sf.get_alphabet_from_selfies(selfies_list)
>>> sorted(list(alphabet))
['[C]', '[F]', '[O]']


10、"selfies_to_encoding",

Converts a SELFIES string into its label (integer)and/or one-hot encoding.

>>> import selfies as sf
>>> sf.selfies_to_encoding("[C][F]", {"[C]": 0, "[F]": 1})
([0, 1], [[1, 0], [0, 1]])


11、"batch_selfies_to_flat_hot",

将 多个SELFIES转为one-hot encodings

>>> import selfies as sf
>>> batch = ["[C]", "[C][C]"]
>>> vocab_stoi = {"[nop]": 0, "[C]": 1}
>>> sf.batch_selfies_to_flat_hot(batch, vocab_stoi, 2)
[[0, 1, 1, 0], [0, 1, 0, 1]]


12、"encoding_to_selfies",

>>> import selfies as sf
>>> one_hot = [[0, 1, 0], [0, 0, 1], [1, 0, 0]]
>>> vocab_itos = {0: "[nop]", 1: "[C]", 2: "[F]"}
>>> sf.encoding_to_selfies(one_hot, vocab_itos, enc_type="one_hot")
'[C][F][nop]'


13、"batch_flat_hot_to_selfies",

>>> import selfies as sf
>>> batch = [[0, 1, 1, 0], [0, 1, 0, 1]]
>>> vocab_itos = {0: "[nop]", 1: "[C]"}
>>> sf.batch_flat_hot_to_selfies(batch, vocab_itos)
['[C][nop]', '[C][C]']


14、"EncoderError",

Exception raised by :func:`selfies.encoder`.


15、"DecoderError"

Exception raised by :func:`selfies.decoder`.

自引用嵌入式字符串(SELFIES):一种鲁棒性100%的分子字符串表现形式 - 知乎

### Kaggle身份验证自拍指南 为了确保账户安全并防止滥用,Kaggle要求新用户完成身份验证过程。这一过程中的一部分可能涉及提交一张清晰的身份验证自拍照[^1]。 #### 准备工作 - **环境光线充足**:确保拍摄环境有良好的自然光或人工光源,避免过暗或背光情况。 - **背景简单干净**:选择一个简洁无干扰的背景,最好是在纯色墙壁前进行拍摄。 - **设备稳定固定**:如果可以的话,使用三脚架或其他方式来保持手机/相机平稳不动。 #### 拍摄要点 - **正面面对镜头**:使脸部完全正对着摄像头,眼睛平视前方。 - **露出完整面部特征**:不要遮挡眉毛、耳朵等重要部位;头发也不应挡住脸庞任何部分。 - **移除所有配饰**:取下帽子、眼镜(除非是隐形眼镜)、围巾以及其他可能会掩盖面部轮廓的东西。 - **表情自然放松**:嘴角微微上扬即可,不需要刻意微笑或者做出夸张的表情。 #### 提交照片 按照平台指示上传所拍摄的照片文件,在此之前建议先预览确认图像质量良好再正式递交审核。通常情况下,只要遵循上述指导原则,通过率会非常高[^2]。 ```python # 这里提供一段伪代码用于模拟图片上传流程 def upload_selfie(image_path): """ 该函数接收本地路径作为参数, 并尝试向服务器发送自拍图片数据流。 参数: image_path (str): 图片存储位置 返回值: bool: 成功与否的状态标志位 """ try: with open(image_path, 'rb') as f: response = requests.post('https://www.kaggle.com/api/v1/users/selfies', files={'file': f}) return True if response.status_code == 200 else False except Exception as e: print(f"Error occurred during uploading selfie: {e}") return False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值