将mol2分子数据库分成N个小集合
我从锌数据库(http://zinc.docking.org/)获取了一大堆分子数据,这些数据是以mol2格式(http://tripos.com/index.php?family=modules,SimplePage,,,&page=sup_mol2&s=0)存储的。我想把这个数据库分成N个小的数据库,随便分成多少个。请问用python、bash或者perl哪种脚本语言最合适呢?我听说过openbabel,但它只能生成单个分子的集合。
如果不行的话,我也可以把mol2格式转换成其他更方便的格式。
谢谢!
2 个回答
0
在Linux系统中,有一种方法可以做到这一点:
gawk -v RS="@<TRIPOS>MOLECULE" 'NF{ print RS$0 > "zinc"++n".mol2" }' zinc.mol2
2
csplit
可以把文件分割成一个个独立的分子:
csplit ~/Download/zinc.mol2 '/@<TRIPOS>MOLECULE/' '{*}'
如果你想要更聪明一点的方法,可以把每个分子读入一个列表或数组中,作为字符串,然后根据需要把它们输出到多个文件里。