ChEMBL의 모든 화합물의 원자 수를 살펴보십시오.
개요
bioinformatics - ChEMBL에서 모든 화합물 데이터를 다운로드하여 분할 된 sdf 파일 만들기 - Qiita
h tp : // 굉장했다. 작은 m / twin ts / MS / 272 그림 d39b1 c663C47 fac
계속됩니다.
EMBL-EBI가 운영하는 화합물/약물의 데이터베이스 ChEMBL에는 어떤 화합물이 있는 것일까 하는 것을 보고 싶습니다.
시작하기 전에 모든 화합물의 원자 수가 어떤 분포를 가지고 있는지 살펴 보겠습니다.
ChEMBL에서 sdf를 다운로드하고 장미
이 내용을 해 둡니다.
bioinformatics - ChEMBL에서 모든 화합물 데이터를 다운로드하여 분할 된 sdf 파일 만들기 - Qiita
h tp : // 굉장했다. 작은 m / twin ts / MS / 272 그림 d39b1 c663C47 fac
sdf 파일의 원자 수 계산
sdf 파일을 열어 보면 다음과 같이 되어 있습니다.
sdf 파일 예: CHEMBL601.sdfCHEMBL601
SciTegic12111210002D
9 8 0 0 0 0 999 V2000
1.9000 -3.8875 0.0000 C 0 0
1.9000 -3.1792 0.0000 O 0 0
3.7167 -5.0000 0.0000 O 0 0
3.7375 -4.2875 0.0000 C 0 0
2.5042 -4.2542 0.0000 C 0 0
1.2750 -4.2375 0.0000 O 0 0
3.1375 -3.9250 0.0000 C 0 0
4.9750 -4.3292 0.0000 N 0 0
4.3625 -3.9542 0.0000 C 0 0
2 1 2 0
3 4 2 0
4 7 1 0
5 1 1 0
6 1 1 0
7 5 1 0
8 9 1 0
9 4 1 0
M END
> <chembl_id>
CHEMBL601
$$$$
이번 포인트는 4행째의 처음 3문자가 원자의 수가 되어 있다는 것입니다. 4문자째~6문자째는 결합수가 되어 있으므로 요주의입니다. 무슨 말을 하고 싶은가 하면 , 아래와 같은 파일도 존재합니다.
sdf 파일 예: CHEMBL440060.sdfCHEMBL440060
11280716012D 1 1.00000 0.00000 0
206208 0 1 0 999 V2000
2.0792 -0.9500 0.0000 N 0 0 0 0 0 0 0 0 0
1.4671 -0.5958 0.0000 C 0 0 2 0 0 0 0 0 0
0.8510 -0.9500 0.0000 C 0 0 0 0 0 0 0 0 0
以下略
원자수 206과 결합수 208이 붙어 버리고 있습니다. 그래서 정중하게 잘라 봅시다. 이번에는 다음 파이썬 스크립트를 사용했습니다. 보통 원라이너로 할 수 있습니다만.
count.py#!/usr/bin/python
import re
import sys
import linecache
if (len(sys.argv) != 2):
print 'Usage: # python %s sdf' % sys.argv[0]
quit()
sdffile = sys.argv[1]
fi = open(sdffile, 'r')
line = fi.readlines()
Natom = int(line[3][0:3])
print sdffile, ", ", Natom
fi.close()
실행$ python count.py CHEMBL440060.sdf
> CHEMBL440060.sdf , 206
ChEMBL의 모든 화합물의 원자 수를 계산
이것을 1,404,752개 모두에 적용합니다.
우선 32 코어 서버에서 다음 쉘 스크립트를 사용했습니다.
많이 실행#!/bin/sh
PROCMAX=32
np=$PROCMAX
FP=chembldata.txt
DIR=chembl_sdfs
if [ -e $FP ]; then
rm -f $FP
echo "rm -f $FP"
fi
touch $FP
for i in $DIR/*; do
python count.py $i >> $FP &
let np=np-1
if [ $np -eq 0 ]; then
wait
np=$PROCMAX
fi
done
이제 chembldata.txt
라는 파일에 모든 원자 수가 기록됩니다. 6 시간 정도 * 걸렸습니다. 장미 하지 말고 chembl_19.sdf
로부터 직접 하는 것이 절대 빠르네요(테헤페로).
*추기: 다시 시도하면 2시간 13분으로 끝났습니다.
히스토그램 그리기(R)
R을 사용하여 히스토그램을 그립니다.
히스토그램 그리기(png로 저장)data <- read.csv("chembldata.txt", header=FALSE)
Natom <- t(t(data[2]))
png("plot.png", width = 600, height = 600)
hist(Natom, col = "orange", main = "N_atom", breaks = "Scott", xlim=c(0,100), ylim=c(0,80000))
dev.off()
이렇게 되었습니다.
덧붙여서 $N_{atom}>100$ 의 화합물은 대체로 1만개 정도 있습니다.
> sum(Natom > 100)
[1] 11443
피크는 $N_{atom}=26$ 이고 원자수 26의 화합물은 74,693개였다.
Reference
이 문제에 관하여(ChEMBL의 모든 화합물의 원자 수를 살펴보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tonets/items/3b3603892d9a11d83b34
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 내용을 해 둡니다.
bioinformatics - ChEMBL에서 모든 화합물 데이터를 다운로드하여 분할 된 sdf 파일 만들기 - Qiita
h tp : // 굉장했다. 작은 m / twin ts / MS / 272 그림 d39b1 c663C47 fac
sdf 파일의 원자 수 계산
sdf 파일을 열어 보면 다음과 같이 되어 있습니다.
sdf 파일 예: CHEMBL601.sdfCHEMBL601
SciTegic12111210002D
9 8 0 0 0 0 999 V2000
1.9000 -3.8875 0.0000 C 0 0
1.9000 -3.1792 0.0000 O 0 0
3.7167 -5.0000 0.0000 O 0 0
3.7375 -4.2875 0.0000 C 0 0
2.5042 -4.2542 0.0000 C 0 0
1.2750 -4.2375 0.0000 O 0 0
3.1375 -3.9250 0.0000 C 0 0
4.9750 -4.3292 0.0000 N 0 0
4.3625 -3.9542 0.0000 C 0 0
2 1 2 0
3 4 2 0
4 7 1 0
5 1 1 0
6 1 1 0
7 5 1 0
8 9 1 0
9 4 1 0
M END
> <chembl_id>
CHEMBL601
$$$$
이번 포인트는 4행째의 처음 3문자가 원자의 수가 되어 있다는 것입니다. 4문자째~6문자째는 결합수가 되어 있으므로 요주의입니다. 무슨 말을 하고 싶은가 하면 , 아래와 같은 파일도 존재합니다.
sdf 파일 예: CHEMBL440060.sdfCHEMBL440060
11280716012D 1 1.00000 0.00000 0
206208 0 1 0 999 V2000
2.0792 -0.9500 0.0000 N 0 0 0 0 0 0 0 0 0
1.4671 -0.5958 0.0000 C 0 0 2 0 0 0 0 0 0
0.8510 -0.9500 0.0000 C 0 0 0 0 0 0 0 0 0
以下略
원자수 206과 결합수 208이 붙어 버리고 있습니다. 그래서 정중하게 잘라 봅시다. 이번에는 다음 파이썬 스크립트를 사용했습니다. 보통 원라이너로 할 수 있습니다만.
count.py#!/usr/bin/python
import re
import sys
import linecache
if (len(sys.argv) != 2):
print 'Usage: # python %s sdf' % sys.argv[0]
quit()
sdffile = sys.argv[1]
fi = open(sdffile, 'r')
line = fi.readlines()
Natom = int(line[3][0:3])
print sdffile, ", ", Natom
fi.close()
실행$ python count.py CHEMBL440060.sdf
> CHEMBL440060.sdf , 206
ChEMBL의 모든 화합물의 원자 수를 계산
이것을 1,404,752개 모두에 적용합니다.
우선 32 코어 서버에서 다음 쉘 스크립트를 사용했습니다.
많이 실행#!/bin/sh
PROCMAX=32
np=$PROCMAX
FP=chembldata.txt
DIR=chembl_sdfs
if [ -e $FP ]; then
rm -f $FP
echo "rm -f $FP"
fi
touch $FP
for i in $DIR/*; do
python count.py $i >> $FP &
let np=np-1
if [ $np -eq 0 ]; then
wait
np=$PROCMAX
fi
done
이제 chembldata.txt
라는 파일에 모든 원자 수가 기록됩니다. 6 시간 정도 * 걸렸습니다. 장미 하지 말고 chembl_19.sdf
로부터 직접 하는 것이 절대 빠르네요(테헤페로).
*추기: 다시 시도하면 2시간 13분으로 끝났습니다.
히스토그램 그리기(R)
R을 사용하여 히스토그램을 그립니다.
히스토그램 그리기(png로 저장)data <- read.csv("chembldata.txt", header=FALSE)
Natom <- t(t(data[2]))
png("plot.png", width = 600, height = 600)
hist(Natom, col = "orange", main = "N_atom", breaks = "Scott", xlim=c(0,100), ylim=c(0,80000))
dev.off()
이렇게 되었습니다.
덧붙여서 $N_{atom}>100$ 의 화합물은 대체로 1만개 정도 있습니다.
> sum(Natom > 100)
[1] 11443
피크는 $N_{atom}=26$ 이고 원자수 26의 화합물은 74,693개였다.
Reference
이 문제에 관하여(ChEMBL의 모든 화합물의 원자 수를 살펴보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tonets/items/3b3603892d9a11d83b34
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
CHEMBL601
SciTegic12111210002D
9 8 0 0 0 0 999 V2000
1.9000 -3.8875 0.0000 C 0 0
1.9000 -3.1792 0.0000 O 0 0
3.7167 -5.0000 0.0000 O 0 0
3.7375 -4.2875 0.0000 C 0 0
2.5042 -4.2542 0.0000 C 0 0
1.2750 -4.2375 0.0000 O 0 0
3.1375 -3.9250 0.0000 C 0 0
4.9750 -4.3292 0.0000 N 0 0
4.3625 -3.9542 0.0000 C 0 0
2 1 2 0
3 4 2 0
4 7 1 0
5 1 1 0
6 1 1 0
7 5 1 0
8 9 1 0
9 4 1 0
M END
> <chembl_id>
CHEMBL601
$$$$
CHEMBL440060
11280716012D 1 1.00000 0.00000 0
206208 0 1 0 999 V2000
2.0792 -0.9500 0.0000 N 0 0 0 0 0 0 0 0 0
1.4671 -0.5958 0.0000 C 0 0 2 0 0 0 0 0 0
0.8510 -0.9500 0.0000 C 0 0 0 0 0 0 0 0 0
以下略
#!/usr/bin/python
import re
import sys
import linecache
if (len(sys.argv) != 2):
print 'Usage: # python %s sdf' % sys.argv[0]
quit()
sdffile = sys.argv[1]
fi = open(sdffile, 'r')
line = fi.readlines()
Natom = int(line[3][0:3])
print sdffile, ", ", Natom
fi.close()
$ python count.py CHEMBL440060.sdf
> CHEMBL440060.sdf , 206
이것을 1,404,752개 모두에 적용합니다.
우선 32 코어 서버에서 다음 쉘 스크립트를 사용했습니다.
많이 실행
#!/bin/sh
PROCMAX=32
np=$PROCMAX
FP=chembldata.txt
DIR=chembl_sdfs
if [ -e $FP ]; then
rm -f $FP
echo "rm -f $FP"
fi
touch $FP
for i in $DIR/*; do
python count.py $i >> $FP &
let np=np-1
if [ $np -eq 0 ]; then
wait
np=$PROCMAX
fi
done
이제
chembldata.txt
라는 파일에 모든 원자 수가 기록됩니다. 6 시간 정도 * 걸렸습니다. 장미 하지 말고 chembl_19.sdf
로부터 직접 하는 것이 절대 빠르네요(테헤페로).*추기: 다시 시도하면 2시간 13분으로 끝났습니다.
히스토그램 그리기(R)
R을 사용하여 히스토그램을 그립니다.
히스토그램 그리기(png로 저장)data <- read.csv("chembldata.txt", header=FALSE)
Natom <- t(t(data[2]))
png("plot.png", width = 600, height = 600)
hist(Natom, col = "orange", main = "N_atom", breaks = "Scott", xlim=c(0,100), ylim=c(0,80000))
dev.off()
이렇게 되었습니다.
덧붙여서 $N_{atom}>100$ 의 화합물은 대체로 1만개 정도 있습니다.
> sum(Natom > 100)
[1] 11443
피크는 $N_{atom}=26$ 이고 원자수 26의 화합물은 74,693개였다.
Reference
이 문제에 관하여(ChEMBL의 모든 화합물의 원자 수를 살펴보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tonets/items/3b3603892d9a11d83b34
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
data <- read.csv("chembldata.txt", header=FALSE)
Natom <- t(t(data[2]))
png("plot.png", width = 600, height = 600)
hist(Natom, col = "orange", main = "N_atom", breaks = "Scott", xlim=c(0,100), ylim=c(0,80000))
dev.off()
> sum(Natom > 100)
[1] 11443
Reference
이 문제에 관하여(ChEMBL의 모든 화합물의 원자 수를 살펴보십시오.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tonets/items/3b3603892d9a11d83b34텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)