技术背景

由于创建软链接这个事情,在算法开发的日常中使用到的并不是很多,因此本文也是做一个简单的回顾。这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。

TMalign的下载与安装

TMalign可以给两个给定的蛋白质pdb文件进行评分:

  1. $ TMalign out.pdb origin.pdb
  2. *********************************************************************
  3. * TM-align (Version 20220412): protein structure alignment *
  4. * References: Y Zhang, J Skolnick. Nucl Acids Res 33, 2302-9 (2005) *
  5. * Please email comments and suggestions to yangzhanglab@umich.edu *
  6. *********************************************************************
  7. Name of Chain_1: out.pdb (to be superimposed onto Chain_2)
  8. Name of Chain_2: origin.pdb
  9. Length of Chain_1: 207 residues
  10. Length of Chain_2: 207 residues
  11. Aligned length= 207, RMSD= 0.00, Seq_ID=n_identical/n_aligned= 1.000
  12. TM-score= 1.00000 (if normalized by length of Chain_1, i.e., LN=207, d0=5.35)
  13. TM-score= 1.00000 (if normalized by length of Chain_2, i.e., LN=207, d0=5.35)

那么如果要使用该评分软件,需要从该链接中下载相关的文件,比如cpp文件和readme文件。下载到本地目录下之后,可以执行如下指令进行编译(如果是Mac可能需要去掉static):

  1. $ g++ -static -O3 -ffast-math -lm -o TMalign TMalign.cpp

编译之后就会在当前路径下生成一个名为TMalign的可执行文件:

  1. $ ll
  2. 总用量 3036
  3. drwxrwxr-x 2 dechin dechin 4096 5 6 13:58 ./
  4. drwxrwxr-x 11 dechin dechin 4096 5 6 13:57 ../
  5. -rw-rw-r-- 1 dechin dechin 7387 5 6 13:58 readme.c++.txt
  6. -rwxrwxr-x 1 dechin dechin 2904224 5 6 13:59 TMalign*
  7. -rw-rw-r-- 1 dechin dechin 182097 5 6 13:57 TMalign.cpp

建立软链接

虽然这条指令很简单,但是需要注意的是一定要使用绝对路径,如果使用相对路径,会出现符号连接的层数过多的报错信息。另外如果要创建的软链接在/usr/bin之类的目录下的话,需要使用到sudo权限。具体执行指令如下:

  1. $ sudo ln -s /home/dechin/tools/TMalign/TMalign /usr/bin/TMalign

一般/usr/bin是用户的系统路径,相比于不断的补充系统路径,这种建立软链接的方式会显得更加简洁。建立完软链接之后,就可以在系统的任一位置直接执行TMalign的指令了:

  1. $ TMalign
  2. *********************************************************************
  3. * TM-align (Version 20220412): protein structure alignment *
  4. * References: Y Zhang, J Skolnick. Nucl Acids Res 33, 2302-9 (2005) *
  5. * Please email comments and suggestions to yangzhanglab@umich.edu *
  6. *********************************************************************
  7. Usage: TMalign PDB1.pdb PDB2.pdb [Options]
  8. Options:
  9. -u TM-score normalized by user assigned length (the same as -L)
  10. warning: it should be >= minimum length of the two structures
  11. otherwise, TM-score may be >1
  12. -a TM-score normalized by the average length of two structures
  13. T or F, (default F)
  14. -i Start with an alignment specified in fasta file 'align.txt'
  15. -I Stick to the alignment specified in 'align.txt'
  16. -m Output TM-align rotation matrix
  17. -d TM-score scaled by an assigned d0, e.g. 5 Angstroms
  18. -o Output the superposition to 'TM_sup*'
  19. $ TMalign PDB1.pdb PDB2.pdb -o TM_sup
  20. View superposed C-alpha traces of aligned regions by RasMol or PyMOL:
  21. $ rasmol -script TM_sup
  22. $ pymol -d @TM_sup.pml
  23. View superposed C-alpha traces of all regions:
  24. $ rasmol -script TM_sup_all
  25. $ pymol -d @TM_sup_all.pml
  26. View superposed full-atom structures of aligned regions:
  27. $ rasmol -script TM_sup_atm
  28. $ pymol -d @TM_sup_atm.pml
  29. View superposed full-atom structures of all regions:
  30. $ rasmol -script TM_sup_all_atm
  31. $ pymol -d @TM_sup_all_atm.pml
  32. View superposed full-atom structures and ligands of all regions
  33. $ rasmol -script TM_sup_all_atm_lig
  34. $ pymol -d @TM_sup_all_atm_lig.pml
  35. -fast Fast but slightly inaccurate alignment by fTM-align algorithm
  36. -cp Alignment with circular permutation
  37. -v Print the version of TM-align
  38. -h Print the full help message, including additional options
  39. (Options -u, -a, -d, -o will not change the final structure alignment)
  40. Example usages:
  41. TMalign PDB1.pdb PDB2.pdb
  42. TMalign PDB1.pdb PDB2.pdb -u 100 -d 5.0
  43. TMalign PDB1.pdb PDB2.pdb -a T -o PDB1.sup
  44. TMalign PDB1.pdb PDB2.pdb -i align.txt
  45. TMalign PDB1.pdb PDB2.pdb -m matrix.txt
  46. TMalign PDB1.pdb PDB2.pdb -fast
  47. TMalign PDB1.pdb PDB2.pdb -cp

总结概要

编译安装源代码为可执行文件时,有时候会遇到想把可执行文件放在特定的路径下的问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟的系统路径。这就需要使用到Linux中的软链接的功能,通常使用ln -s的指令即可。本文顺带介绍了蛋白质结构评分软件TMalign的源码下载和安装使用的基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础的操作。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/ln.html

作者ID:DechinPhy

更多原著文章请参考:https://www.cnblogs.com/dechinphy/

打赏专用链接:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

腾讯云专栏同步:https://cloud.tencent.com/developer/column/91958

CSDN同步链接:https://blog.csdn.net/baidu_37157624?spm=1008.2028.3001.5343

51CTO同步链接:https://blog.51cto.com/u_15561675

参考链接

  1. https://blog.csdn.net/jialibang/article/details/108247033

Linux系统创建可执行文件软链接的更多相关文章

  1. useradd linux系统创建用户和设置密码简单脚本-1

    useradd linux系统创建用户和设置密码简单脚本-1 linux_wangqiang 2019-12-04 20:51:18 65 收藏展开#!/bin/bash#快速创建用户 使用$1第一个 ...

  2. linux系统创建windows启动盘

    平时工作中用到linux的操作命令较多,因此为了方便,就给电脑装了双系统,一般工作的时候,都选择进入linux系统.但是今天有件工作之外的事情需要解决下:创建一个windows启动盘.如果按照往常来说 ...

  3. AWS EC2实例Linux系统创建root用户并更改为root用户登录

    对于刚创建AWS EC2实例,或者经常使用AWS 实例的小伙伴们来说,刚创建的EC2实例是没有ROOT权限的,因此不能直接使用ROOT用户去登陆实例,也无法获取到root权限.一般情况下,EC2实例默 ...

  4. linux 系统创建软连接

    ln -s /data/var/ /usr/local/smokeping/var 需求:/var/本身在/usr/local/smokeping/var下,想要把/usr/local/smokepi ...

  5. Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程

    Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

  6. 第六周——分析Linux内核创建一个新进程的过程

    "万子恵 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 &q ...

  7. 实验六:分析Linux内核创建一个新进程的过程

    原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 题目自拟,内容围绕对Linu ...

  8. 作业六:分析Linux内核创建一个新进程的过程

    分析Linux内核创建一个新进程的过程 进程描述符PCB----task_struct数据结构 操作系统:1.进程管理 2.内存管理 3 文件系统 一.新进程如何创建和修改task_struct数据结 ...

  9. Linux内核分析-分析Linux内核创建一个新进程的过程

    作者:江军 ID:fuchen1994 实验题目:分析Linux内核创建一个新进程的过程 阅读理解task_struct数据结构http://codelab.shiyanlou.com/xref/li ...

随机推荐

  1. Java语言的特点有哪些?

    1.简单 Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了.Java语言的简单性主要体现在以下三个方面: 1) Java的风格类似于C++,因而C++程序员是非常熟悉的.从某 ...

  2. 如何通过HibernateDaoSupport将Spring和Hibernate 结合起来?

    用 Spring 的 SessionFactory 调用 LocalSessionFactory.集成过程分三步: 配置 the Hibernate SessionFactory. 继承 Hibern ...

  3. web workers是什么,为什么我们需要web workers?

    请看下面的for循环代码,它将运行超过百万次. function SomeHeavyFunction() { for (i = 0; i < 10000000000000; i++) { x = ...

  4. Effective Java —— 用私有构造器或枚举类型强化单例属性

    本文参考 本篇文章参考自<Effective Java>第三版第三条"Enforce the singleton property with a private construc ...

  5. spi协议

    1. 概述 SPI = Serial Peripheral Interface,是串行外围设备接口,是一种高速,全双工,同步的通信总线.常规只占用四根线,节约了芯片管脚,PCB的布局省空间.现在越来越 ...

  6. 前端规范(ES6BEMOOCSSSMACSS)

    前端规范 在实际开发中,由于团队成员编码习惯不一,技术层次不同,开发前定制并遵循一种代码规范能提高代码质量,增加开发效率. Javascript Javascript规范直接参考airbnb: ES6 ...

  7. 用 JWT 实现小程序本地用户标识

    panda-chat-room 继上节「理解小程序 session」 ,本节我们以 jsonwebtoken 来实现小程序端的用户状态标识.如果你对小程序用户登录流程及 session 管理还有些疑惑 ...

  8. Android Studio安装及问题

    安装教程+虚拟机调试:https://blog.csdn.net/y74364/article/details/96121530 gradle下载缓慢解决办法:https://blog.csdn.ne ...

  9. Python-初见-高级篇

    目录 正则表达式 CGI MySQL PyMySQL 网络编程 多线程 线程同步 线程优先级 JSON 推荐阅读:https://www.cnblogs.com/zwtblog/tag/Python/ ...

  10. 查域名对应ip,测试端口是否可访问通

    根据命令查询软件包名称 yum provides */nslookup 根据域名解析ip nslookup 域名 示例:nslookup smtp.163.com 测试端口 telnet ip 端口 ...