2009/03/22 09:30:07
Chemistry::RECAPというモジュールを書いたのでケモインフォクックブックも更新しといた。
インストールはダウンロードして
tar xvfz Chemistry-RECAP-0.01.tar.gz
cd Chemistry-RECAP-0.01
perl Makefile.PL
make
make test
sudo make install
PerlMolのインストールと使い方は以下の書籍が参考になるかも。
2007/08/02 20:21:50
PerlMolにはseparateメソッドがあるので、SMARTSで適当にマッチさせて結合を壊してからseparateすると化合物の構造を分割できる。
芳香環の炭素原子とヘテロ原子の間を切って、分割した構造をsmilesで出力するスクリプトはこう書ける。
use warnings;
use strict;
use Chemistry::File::SMARTS;
use Chemistry::File::SMILES;
use Chemistry::Ring 'aromatize_mol';
my $SMILES = shift;
my $react = Chemistry::Mol->parse($SMILES, format => 'smiles');
my $SMARTS = 'c-A';
my $pattern = Chemistry::Pattern->parse($SMARTS, format => 'smarts');
aromatize_mol($react);
molsplit($react);
sub molsplit {
my $mol = shift;
if($pattern->match($mol)){
my @nbd = $pattern->bond_map;
my @nfg = $pattern->atom_map;
$nbd[0]->delete;
for my $fg (@nfg){
my $hcnt = $fg->implicit_hydrogens();
$fg->implicit_hydrogens(++$hcnt);
}
for my $frag ($mol->separate){
molsplit($frag);
}
}else{
print $mol->print(format => 'smiles', unique => 1, name => 1),"\n";
}
}
試しにpioglitazoneを分割してみると
$ perl molsplit.pl "CCC1=CN=C(C=C1)CCOC2=CC=C(C=C2)CC3C(=O)NC(=O)S3"
CC
c1ccncc1
CCO
c1ccccc1
CC1SC(=O)NC1=O
2006/02/03 17:36:40
PerlMolがバージョン0.35にあがったようなので入れてみた。PerlMolってのは、バイオインフォでいうところのbioperlみたいなもんです。perlでケモインフォといったらPerlMolでしょ!みたいにそだって欲しい(などと期待しております)
インストールはいつものとおりCPANモジュールで。
# perl -MCPAN -e 'install Chemistry::File::SMILES'
# perl -MCPAN -e 'install Chemistry::File::SMARTS'
ExampleのPolar Surface Area計算なんて、C->DayPerl->PerlMolという感じで着実にオープン化してますな。
化合物のデータベースが欲しければLigand.Infoなんてどうですかね?