반응 데이터에 사용 된 시약의 임베딩 공간 탐색을위한 웹 앱. 대화식 시약 우주 맵을 사용한 화학 반응 데이터의 종이 큐 레이팅 시약에 기술 된.
이 앱은 반응에서 시약의 동시 발생 통계를 탐색하는 시각적 인 방법입니다. 이 앱은 단일 값 분해로 시약의 PMI 매트릭스를 분해하여 파생 된 시약 임베딩의 UMAP 예측을 표시합니다 .
PMI 매트릭스 에는 포인트 상호 정보 점수가 포함되어 있습니다. 2 개의 시약 A 및 B 의 경우, PMI 점수 는 시약 발생 계수로부터 유래된다.
SVD를 사용 하여이 매트릭스를 인수하면 시약에 대한 밀도가 밀봉됩니다.이 시약이 발생하면 2 개의 시약에 대해 유사한 경향이 있습니다.
비슷한 맥락에서, 즉 같은 다른 시약과 함께. 예를 들어, 스즈키 커플 링을위한 두 개의 상이한 팔라듐 촉매는 반응에 함께 사용되지 않지만 동일한 염기 및 용매와 함께 사용될 수있다.
따라서,이 두 촉매는 비슷한 임베딩을 얻을 것이며 함께 가깝게 누워있을 것이다. 그런 다음 그 임베딩은 2D 평면과 단위 구의 표면에 투사됩니다.
UMAP 알고리즘에 의해. 차원 지점 사이의 거리 관계를 보존하려는 차원 감소 알고리즘입니다.
시약 임베드의 UMAP 투영 맵은 앱에 표시됩니다.
다음 명령을 실행하여 앱의 환경을 설치하십시오.
conda create - n reagent_emb_vis_app python = 3.10 - y
conda activate reagent_emb_vis_app
pip install - r requirements . txt
pip install - e .다음 명령으로 앱을 실행하십시오
python3 app . py 앱은 http : // localhost : 8050에서 실행됩니다. 기본적으로 AAM에 의해 결정된 USPTO 시약 임베드 맵을 표시 data/default/uspto_aam_rgs_min_count_100_d_50.csv 의 정보를 읽습니다. 사용자는 아래에 설명 된 방식으로 적절한 스크립트로 준비된 자체 시약 데이터를 업로드 할 수도 있습니다.
파일 data/standard_reagents.csv 에는 USPTO에서 발생하는 ~ 600 개의 시약에 대한 정보가 포함되어 있으며 역할과 이름이 포함되어 있습니다. 파일의 항목은 내림차순 순서로 발생 빈도로 순서를 따릅니다.
data 디렉토리에서 다음 명령을 실행하여 rxnutils 사용하여 USPTO 데이터 세트를 다운로드합니다.
python - m rxnutils . data . uspto . download python - m rxnutils . data . uspto . combine 파일 data/uspto_data.csv 다운로드합니다. 그런 다음 프로젝트 디렉토리에서 실행 된 다음 명령 으로이 데이터 세트의 초기 필터링을 수행합니다.
python3 - m rxnutils . pipeline . runner - - pipeline uspto / pipeline . yml - - data data / uspto_data . csv - - output data / uspto_filtered . csv마지막으로 필터링 된 데이터 세트에서 시약을 추출합니다.
python3 scripts / prepare_reagents . py - i data / uspto_filtered . csv - - output_dir uspto_aam_reagents - c ReactionSmiles - - reagents aam - - fragment_grouping cxsmiles - - canonicalization remove_aam - - n_jobs 9 - - min_reagent_occurrences 1 - - verbose 스크립트는 다양한 옵션으로 prepare_reagents.py . 예를 들어, 원자 매핑 또는 지문으로 시약을 결정할 수 있습니다.
시약에 대한 임베딩은 각각의 시약에 사용되는 시약이있는 파일을 기반으로 스크립트 build_embeddings.py 사용하여 계산됩니다.
입력 파일에는 모든 행에서 약간의 반응에 대한 시약 스마일 세트가 포함되어야하며, 그 미소는 일부 분리기에 의해 분리되어야합니다. 예를 들어 ; .
예:
CCO ; c1ccccc1
[ H - ].[ Na + ]; C1CCOC1
NN 이 파일의 모든 행에는 관심있는 데이터 세트에서 약간의 반응에 대한 시약이 포함되어 있습니다. 반응 자체는 관련이 없습니다. script prepare_reagents.py build_embeddings.py 에 적합한 입력을 준비합니다.
이 앱은 csv 파일의 좌표를 사용하여 build_embeddings.py 스크립트를 사용하여 준비됩니다.
다음 명령을 실행하십시오.
python3 scripts / build_embeddings . py - i < PATH TO THE TEXT FILE WITH REAGENT SMILES > - - standard data / standard_reagents . csv - - min_count < MINIMAL OCCURENCE COUNT FOR REAGENTS TO BE CONSIDERED > - o < PATH TO THE OUTPUT CSV FILE > - d < DIMENSONALITY OF REAGENT EMBEDDINGS > 자세한 내용은 python3 build_embeddings.py --help 실행하십시오.
기본 시약 내장은 다음 명령으로 구축되었습니다.
python3 scripts / build_embeddings . py - i data / uspto_aam_reagents / reagents - 1128297. txt - - standard data / standard_reagents . csv - d 50 - o data / uspto_aam_rgs_min_count_100_d_50 . csv - - min_count 100 build_embeddings.py 스크립트에서 CSV 파일 빌드를 업로드하십시오.
USPTO의 시약에 대한 통찰력과 논문의 그림을 재현하려면 노트북 notebooks/results.ipynb 참조하십시오.
@inproceedings { andronov2024 ,
title = { Curating Reagents in Chemical Reaction Data with an Interactive Reagent Space Map } ,
author = { Andronov, Mikhail and Andronova, Natalia and Wand, Michael and Schmidhuber, J{"u}rgen and Clevert, Djork-Arn{'e} } ,
booktitle = { International Workshop on AI in Drug Discovery } ,
pages = { 21--35 } ,
year = { 2024 } ,
publisher = { Springer Nature Switzerland } ,
address = { Cham } ,
doi = { 10.1007/978-3-031-72381-0_3 }
}