将mol2分子数据库分成N个小集合

3 投票
2 回答
2628 浏览
提问于 2025-04-15 17:28

我从锌数据库(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/' '{*}'

如果你想要更聪明一点的方法,可以把每个分子读入一个列表或数组中,作为字符串,然后根据需要把它们输出到多个文件里。

撰写回答