根据cas号批量下载pubchem上的化合物
本帖最后由 数据挖掘 于 2017-4-19 15:35 编辑根据cas号批量下载化合物,在cmd运行exe,出现使用说明。
#########################################
第二个附件针对改版的pubchem的
Charleshen 发表于 2014-10-15 17:23
该死的SCIfinder,不能导出sdf格式啊
scifinder是可以导出sdf格式的。:)
准确率只能达到80%+,,因为有些cas号 pubchem会没有 我靠。。。太感谢了。我还没看内容,但是我表示感谢! 哈哈,好东西,先下了。谢谢数据挖掘。 好东西,谢谢分享!
hao dong xi! 这个附近中的exe已经过期了,由于我当时使用的是试用版的perl2exe。
有需要的可以联系我。qq 744891290 #!/usr/bin/perl -w
use LWP::Simple;
use LWP::UserAgent;
use warnings;
use strict;
if(@ARGV !=6)
{
print "USAGE(example): perl downcas.pl-infile f:/casid.txt -type 2Dor3D -outfolder f:/downcas\n";
# 0 1 2 3 4 5
}
else
{
my $filepath=$ARGV;
my $downcas=$ARGV;
my $identy;
if($ARGV=~/(\d)D/)
{
$identy=($1==3)?'3D':"";
print "\n$identy\n";
}
else
{
print "USAGE(example): perl downcas.pl-infile f:/casid.txt -type 2Dor3D -outfolder f:/downcas\n";
#
exit 0;
}
print "$downcas\n";
mkdir $downcas unless -d $filepath;
my ($ua,$req,$res);
$ua = LWP::UserAgent->new;
open FH, $filepath;
while(my $id=<FH>)
{
chomp $id;
$req= HTTP::Request->new(HEAD => 'http://www.ncbi.nlm.nih.gov/pccompound/?term='.$id);
$res = $ua->request($req);
$res->request()->uri()=~/(\d+)\s*$/;
if($res->request()->uri()=~/cid\=(\d+)\s*$/)
{
my $savename=$downcas.$id.'_cid_'.$1.'.sdf';
print "find $id and download it as $savename\n";
my $newfile=$downcas.'/successdown.txt';
open FG,">>$newfile";
print FG "$idsavename: $savename\n";
getstore("http://pubchem.ncbi.nlm.nih.gov/summary/summary.cgi?cid=$1&disopt=${identy}SaveSDF",$savename);
}
else
{
print "can't find $id\n";
my $newfile=$downcas.'/faildown.txt';
open FF,">>$newfile";
print FF "$id \n ";
}
}
}
补一个Perl脚本 谢谢分享脚本 准确率无法达到100% ,下载完了以后需要验证下
比如看看分子式 分子量是否合理 该死的SCIfinder,不能导出sdf格式啊
页:
[1]
2