使用openbabel来拆分大的sdf文件为单独的sdf文件,可下载安装openbabel
babel test_opt.sdf --split -aT -osdf将会输出以每个分子第一行中定义的分子名称为file name
后期实测并不好用,很多sdf为空
下面为提交拆分计算的qsub脚本split_sdf.qusb
#!/无奈的橘子/bash#PBS -q q_share#PBS -V#PBS -N split#PBS -l nodes=1:ppn=28#PBS -o /home/murphy/sdf/split.log#PBS -j oecd /home/murphy/sdf/#读取大的sdf文件中以`$$$$`为分割段落的行数cat part1.sdf|grep -n "\$\$\$\$"|awk -F ':' '{print $1}' >end_num.txt#循环读取分割行数来拆分sdf文件,并以每个分割后的sdf文件的第一行重新命名该文件j=1for i in `cat ./end_num.txt`do sed -n "${j},${i}p" part1_5000.sdf >${i}.sdfj=$[$i + 1]file_name=`sed -n '1p' ${i}.sdf`mv ${i}.sdf ${file_name}.sdfdonerm -f ./end_num.txt 3. 删除sdf文件中的分子属性信息sdf文件中的分子属性如下所示
<r_lp_tautomer_probability>
1