计算化学公社

 找回密码 Forget password
 注册 Register
Views: 6670|回复 Reply: 9
打印 Print 上一主题 Last thread 下一主题 Next thread

[程序/脚本开发] 关于将PDB文件转为特定格式的脚本问题求助

[复制链接 Copy URL]

27

帖子

0

威望

125

eV
积分
152

Level 3 能力者

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 lym563557413 于 2020-6-30 10:04 编辑

有已知的PDB文件,如下,
ATOM      1  N   TYR A   1       1.195   3.926   2.552  1.00  0.00           N  
ATOM      2  CA  TYR A   1       0.509   3.483   1.309  1.00  0.00           C  
ATOM      3  C   TYR A   1       1.466   3.480   0.121  1.00  0.00           C  
ATOM      4  O   TYR A   1       2.626   3.875   0.242  1.00  0.00           O  
ATOM      5  CB  TYR A   1      -0.662   4.428   1.036  1.00  0.00           C  
ATOM      6  CG  TYR A   1      -1.698   3.859   0.092  1.00  0.00           C  
ATOM      7  CD1 TYR A   1      -2.555   2.843   0.497  1.00  0.00           C  
ATOM      8  CD2 TYR A   1      -1.814   4.337  -1.206  1.00  0.00           C  
ATOM      9  CE1 TYR A   1      -3.499   2.321  -0.366  1.00  0.00           C  

想通过读取TYR和它前面这一列,生成特定格式的txt文件,如 读取到TYR并且前面是CA,则写入新的txt文件内容为:
6     1       1.195   3.926   2.552

解释:我想通过TYR和它前面那列,生成自动的两列序号,第一列为元素周期表的序号,第二列为我自己定的号,剩下的则写入它的xyz坐标
关与脚本 不是很懂,请求有人给个例子,非常感谢!

1187

帖子

5

威望

2876

eV
积分
4163

Level 6 (一方通行)

2#
发表于 Post on 2020-6-30 12:18:16 | 只看该作者 Only view this author
本帖最后由 snljty 于 2020-6-30 13:43 编辑

用靠谱的搜索引擎搜索下面几个Linux相关内容:
Linux cut命令
Linux awk命令
Linux declare命令
Linux shell 字典
Linux 管道符
Linux 重定向输出
不想学shell也可以,如楼下,直接学python我觉得更简单一些。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
thanhtam + 3 我很赞同

查看全部评分 View all ratings

269

帖子

1

威望

3030

eV
积分
3319

Level 5 (御坂)

3#
发表于 Post on 2020-6-30 12:49:06 | 只看该作者 Only view this author
楼上+1

或者用python(好处是不限于linux,windows也行),你这个需求20行左右就可以搞定

27

帖子

0

威望

125

eV
积分
152

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2020-6-30 14:03:16 | 只看该作者 Only view this author
snljty 发表于 2020-6-30 12:18
用靠谱的搜索引擎搜索下面几个Linux相关内容:
Linux cut命令
Linux awk命令

这个用awk命令等,确实可以实现这种转换,不过我之后会面临更多不同的蛋白,因此如果有个可以循环的脚本最好。不过谢谢

27

帖子

0

威望

125

eV
积分
152

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2020-6-30 14:04:12 | 只看该作者 Only view this author
agent99 发表于 2020-6-30 12:49
楼上+1

或者用python(好处是不限于linux,windows也行),你这个需求20行左右就可以搞定

正在尝试用python写,不过很不熟练,后续会继续发一下,如果有问题还请多指教

222

帖子

5

威望

2587

eV
积分
2909

Level 5 (御坂)

6#
发表于 Post on 2020-6-30 14:08:07 | 只看该作者 Only view this author
awk编程还不是可以循环,你就当C语言写就行。很强大的

27

帖子

0

威望

125

eV
积分
152

Level 3 能力者

7#
 楼主 Author| 发表于 Post on 2020-6-30 14:11:31 | 只看该作者 Only view this author
liuyuje714 发表于 2020-6-30 14:08
awk编程还不是可以循环,你就当C语言写就行。很强大的

我的编程基础只有一点FORTRAN的,C语言确实没有接触过,还用过python的程序

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

8#
发表于 Post on 2020-6-30 19:08:03 | 只看该作者 Only view this author
这种事情用你现在已经会的Fortran就可以很容易地写出来,完全没必要为此还学python去。把格式化输入输出搞懂,把相应的列读入相应变量里,弄个循环就搞定了,简单至极。有不懂的你再具体问。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

138

帖子

0

威望

445

eV
积分
583

Level 4 (黑子)

9#
发表于 Post on 2020-7-2 21:00:07 | 只看该作者 Only view this author
思路:

1. 新建一个空的数组Result=[]
2. 循环
    2-1. 按行读取文件(百度一下python文件读写)
    2-2. 判断第四列是不是TYR
    2-3. 将需要的信息保存至一开始新建的空数组中
3. 保存空数组为 Result.txt

*需要百度 for循环 | 文件I/O | if判断
上海交通大学计算化学与分子生物信息学实验室
Shanghai JiaoTong University
Computational Chemistry and Molecular Bioinformatics Laboratory

CCMBI of SJTU
点击访问个人主页

27

帖子

0

威望

125

eV
积分
152

Level 3 能力者

10#
 楼主 Author| 发表于 Post on 2020-7-10 16:20:27 | 只看该作者 Only view this author
DoubeeTwT 发表于 2020-7-2 21:00
思路:

1. 新建一个空的数组Result=[]

多谢,已写完小程序!多谢各位!

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-21 02:12 , Processed in 0.188469 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list