Perl子函数调用——求氨基酸残基两两之间的距离
求氨基酸残基两两之间的距离
实现功能:通过调用子函数,求氨基酸残基两两之间的距离,并通过调用子函数,print出距离最远的一对氨基酸残基。
__DATA__
ATOM 4542 CA LYS D 130 27.728 42.781 107.352 1.00 53.17 C
ATOM 4551 CA VAL D 131 28.783 40.337 110.073 1.00 46.40 C
ATOM 4558 CA LYS D 132 30.084 42.479 112.907 1.00 52.26 C
ATOM 4567 CA ALA D 133 31.868 41.767 116.183 1.00 53.70 C
ATOM 4572 CA LYS D 134 28.704 41.872 118.303 1.00 71.02 C
ATOM 4581 CA SER D 135 26.883 39.124 116.249 1.00 78.80 C
ATOM 4587 CA ILE D 136 29.774 36.647 116.820 1.00 93.90 C
ATOM 4595 CA VAL D 137 28.482 35.979 120.344 1.00117.21 C
ATOM 4602 CA PHE D 138 27.994 33.911 123.464 1.00133.01 C
ATOM 4613 CA HIS D 139 26.718 30.262 123.566 1.00139.94 C
ATOM 4623 CA ARG D 140 29.353 28.808 121.207 1.00139.51 C
ATOM 4634 CA LYS D 141 30.584 25.201 121.443 1.00131.58 C
ATOM 4642 CA LYS D 142 33.749 25.778 123.504 1.00113.11 C
ATOM 4651 CA ASN D 143 37.231 24.833 122.254 1.00 94.20 C
ATOM 4659 CA LEU D 144 36.495 27.447 119.636 1.00 69.72 C
ATOM 4667 CA GLN D 145 38.015 30.917 119.225 1.00 40.46 C
ATOM 4676 CA TYR D 146 37.259 33.717 116.776 1.00 28.66 C
ATOM 4688 CA TYR D 147 39.566 36.141 114.844 1.00 24.27 C
ATOM 4700 CA ASP D 148 38.913 38.812 112.220 1.00 32.21 C
ATOM 4708 CA ILE D 149 41.467 38.220 109.408 1.00 35.28 C
ATOM 4716 CA SER D 150 42.088 39.987 106.101 1.00 32.96 C
ATOM 4722 CA ALA D 151 43.967 37.479 103.880 1.00 32.91 C
ATOM 4727 CA LYS D 152 44.860 40.086 101.166 1.00 35.10 C
ATOM 4736 CA SER D 153 46.596 42.467 103.623 1.00 32.49 C
ATOM 4742 CA ASN D 154 47.988 39.768 105.958 1.00 28.75 C
代码如下:
sub distance {foreach $1(0..$#b){foreach $2(0..$#b){$d=sqrt(($x[$1]-$x[$2])**2+($y[$1]-$y[$2])**2+($z[$1]-$z[$2])**2);$arr[$1][$2]=$d;}}printf" ";foreach(0..$#b){printf "%6d",$b[$_];}printf("\n");foreach $1(0..$#b){printf "%6d",$b[$1];foreach $2(0..$#b){printf "% 6.2f",$arr[$1][$2];}print "\n";}foreach $1(0..$#b){foreach $2(0..$#b){if($arr[$1][$2]>$max){$max=$arr[$1][$2];$maxa=$b[$1];$maxb=$b[$2];}} }printf "\n Between $maxa and $maxb is the max distance:%.2f\n",$max;
}while (<DATA>) {@a=split(/\s+/,$_);push (@b,$a[5]);push(@x,$a[6]);push(@y,$a[7]);push(@z,$a[8]);
}
distance;__DATA__
ATOM 4542 CA LYS D 130 27.728 42.781 107.352 1.00 53.17 C
ATOM 4551 CA VAL D 131 28.783 40.337 110.073 1.00 46.40 C
ATOM 4558 CA LYS D 132 30.084 42.479 112.907 1.00 52.26 C
ATOM 4567 CA ALA D 133 31.868 41.767 116.183 1.00 53.70 C
ATOM 4572 CA LYS D 134 28.704 41.872 118.303 1.00 71.02 C
ATOM 4581 CA SER D 135 26.883 39.124 116.249 1.00 78.80 C
ATOM 4587 CA ILE D 136 29.774 36.647 116.820 1.00 93.90 C
ATOM 4595 CA VAL D 137 28.482 35.979 120.344 1.00117.21 C
ATOM 4602 CA PHE D 138 27.994 33.911 123.464 1.00133.01 C
ATOM 4613 CA HIS D 139 26.718 30.262 123.566 1.00139.94 C
ATOM 4623 CA ARG D 140 29.353 28.808 121.207 1.00139.51 C
ATOM 4634 CA LYS D 141 30.584 25.201 121.443 1.00131.58 C
ATOM 4642 CA LYS D 142 33.749 25.778 123.504 1.00113.11 C
ATOM 4651 CA ASN D 143 37.231 24.833 122.254 1.00 94.20 C
ATOM 4659 CA LEU D 144 36.495 27.447 119.636 1.00 69.72 C
ATOM 4667 CA GLN D 145 38.015 30.917 119.225 1.00 40.46 C
ATOM 4676 CA TYR D 146 37.259 33.717 116.776 1.00 28.66 C
ATOM 4688 CA TYR D 147 39.566 36.141 114.844 1.00 24.27 C
ATOM 4700 CA ASP D 148 38.913 38.812 112.220 1.00 32.21 C
ATOM 4708 CA ILE D 149 41.467 38.220 109.408 1.00 35.28 C
ATOM 4716 CA SER D 150 42.088 39.987 106.101 1.00 32.96 C
ATOM 4722 CA ALA D 151 43.967 37.479 103.880 1.00 32.91 C
ATOM 4727 CA LYS D 152 44.860 40.086 101.166 1.00 35.10 C
ATOM 4736 CA SER D 153 46.596 42.467 103.623 1.00 32.49 C
ATOM 4742 CA ASN D 154 47.988 39.768 105.958 1.00 28.75 C
运行结果如下:
Perl子函数调用——求氨基酸残基两两之间的距离相关推荐
- 计算空间中两线段之间的距离
最近在建立气凝胶的有限元模型中需要计算每两根纤维(线段)之间的距离,最初参考的两篇文章确实提供了关于一些数值方法的计算思路(文章1 && 文章2),但忽略了线段距离问题的理论推导,导致 ...
- CV之FR:DIY脚本通过人脸图像得到人脸特征向量并输出多张人脸图片之两两图片之间的距离
CV之FR:DIY脚本通过人脸图像得到人脸特征向量并输出多张人脸图片之两两图片之间的距离 目录 输出结果 设计思路 实现代码 计算过程 输出结果 设计思路 实现代码 from scipy import ...
- Mysql: LBS实现查找附近的人 (两经纬度之间的距离)
1. 利用GeoHash封装成内置数据库函数的简易方案: A:Mysql 内置函数方案,适合于已有业务,新增加LBS功能,增加经纬度字段方可,避免数据迁移 B:Mongodb 内置函数方案,适合中小型 ...
- OSChina 周五乱弹 ——什么情况下两个人之间的距离能成为负数
2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2017)请戳(这里) [今日歌曲] @亚麻仔 :分享 Cotton Jones Basket ... 的歌曲 ...
- 两经纬度之间的距离计算
以下是计算两经纬度之间距离的代码,分为:头文件.源代码和测试代码三部分. 具体如下: 1 // LatLonDistanceDlg.h : 头文件 2 // 3 4 #pragma once 5 6 ...
- 矩阵运算实现求样本与样本之间欧式距离
前言 最近需要写关于kmeans的一些小程序,需要计算距离,直接写for循环又特别慢,再要是样本多一点,那简直了.细细一想,需要计算距离的地方还真不少,kmeans.KNN.图等等. 1. 理论指导 ...
- 求空间两条直线之间的距离
1. 前言 最近老板让写一段空间点匹配的代码, 其中涉及到求空间两直线之间的距离,写起来满费劲的, 这里做一个记录. 2. 处理思路 空间两直线之间的位置关系主要可以分为: 重合, 平行, 相交, 异 ...
- 如何求地球上两点之间的最短距离_例谈平行线上两动点之间距离最短问题
初中几何中有一类关于距离最短的问题,这些问题最终都会转化为"垂线段最短"或"两点之间线段最短".本文就一类平行线上两动点之间距离最短问题,谈谈笔者对此的分析和见 ...
- 利用高德地图API获取任意两座城市之间的距离!异地也有惊喜!
工作中有时会遇到这样一种场景:年末需要统计所有员工该年的航旅出差情况,然后根据他们的飞行距离补贴一定的交通费.例如如下所示情况: 然而,如果我们使用地图APP等工具逐一进行手工查询,在一家规模稍大的公 ...
最新文章
- 输入示例,自动生成代码:TensorFlow官方工具TF-Coder已开源
- showimg.php,layer弹出图片
- 微型计算机内存不能用指令修改的部分,在微型计算机内存储器中,不能用指令修改其存储内容的部分是什么?...
- 在CentOS上安装和配置Guacamole
- Yii框架 phpexcel 导出
- MVVM更容易内存泄露吗?
- telnet用法 测试端口号是否可以使用
- selenium配置无界面chrome浏览器
- 获取当前时间getDate()注意点
- 决策树 Decision Tree
- 控制Dell服务器的风扇转速
- 笔记本电脑BIOS和硬盘加密密码设置方法
- PPT文件怎么快速压缩?
- 微信公众平台接口测试帐号登录
- 码栈开发手册(四)---编码方式开发(其他功能函数)
- Golang底层原理剖析之panic与recover
- android 开启wifi代码,Android编程打开WiFi
- 从控制台输入一个三位数,如果是水仙花数(是指一个三位数,其各位数字立方和等于该数 )就打印“是水仙花数”,否则打印“不是水仙花数”
- 君正T30移植ntp
- Neos - 漂亮的JABBER客户端
热门文章
- android webview anr,Android WebView客户端导致ANR
- 刷题 整理-SUCTF2019-easyweb
- 富达国际加密货币交易与存储平台目前进入最终测试
- 为什么梦幻西游服务器名字有显示但是区名字没有了,梦幻西游:免费改名的BUG被发现了,转区名字重复,但不能免费改名...
- 如何查询神武账号服务器,神武3开服的时间表2018在哪里看
- phpernbsp;的鼓励nbsp;nbsp;microsoftnbsp;牵手php
- 喜欢书法的程序员看过来:15行代码抓取兰亭序全文单字高清字帖
- Qt使用星空图作为窗口背景,点击键盘的WASD控制小飞机在上面移动。
- 微博消息队列架构分析
- linux tomcat 改端口号,Linux下启动tomcat、配置tomcat后台账号、修改tomcat端口