程序3:提取基因组内基因序列并翻译为蛋白质, 默认密码子表

img


程序3:提取基因组内基因序列并翻译为蛋白质, 默认密码子表
/mnt/sdb/share/bin/program_test/prog3_gff2pep
基因ref.gff文件得到基因的蛋白序列

【相关推荐】



  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7567474
  • 你也可以参考下这篇文章:批处理、批量复制文件:复制文件夹及子文件下所有特定文件,并且复制存在特定文件的子文件夹
  • 您还可以看一下 张先凤老师的《计算机体系结构—网络篇3、4》之IP分类与组成、网络标识、子网掩码、私网组建等课程中的 子网掩码1小节, 巩固相关知识点
  • 除此之外, 这篇博客: 程序是怎么跑起来的——虚拟内存与动态链接中的 1.3.3.3 用例子来解释动态链接的过程 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    其实,动态链接的过程可以看做静态链接的扩展,举个例子来解释:

    1. 首先客户只是提出了静态链接的需求——我需要链接,把不同的程序组成部分合成一个可执行的文件即可;然后,我们觉得使用最直观的方式解决——把各个分散在库中的函数扫描一遍,然后copy一份代码到客户源代码中,最后将得到的一个"超大"的处理过的源文件,最后汇编成二进制代码即可;直观简单,很美好;于是撸起袖子一顿猛虎操作,很愉快的完成了;客户看到程序能够执行,也很愉快;
    2. 但是,突然有一天,客户说机器全瘫痪了,然后一查发现内存耗尽了;结果查看日志发现一个叫puts的函数因为被频繁使用、而且频繁的实例化,服务器中出现大量重复的puts代码,最终耗尽了内存;
    3. 项目组马上开会讨论解决方案,大家一致觉得,静态链接不符合未来的需求,造成大量的内存浪费;而且客户的调用需求持续增长,而内存不能无限增长,所以需要将函数代码在各个进程间共享,从而节约内存,避免再次内存耗尽;这样一来,确定了解决方案的机制——库代码运行时多进程共享机制——也就是so(share object)机制;
    4. 然后拆解任务——A组做编译器的改造,B组做操作系统共享内存开发,C组做动态链接器;完事后大家联调,PM分解任务后,大家开始紧张的开发;
    5. 2个月后……A组扩展了ELF格式,增加了.interp,.dynamic,扩展了.got,.plt增加了对动态链接器的支持;B组完善了文件内存映射机制,用于高效加载大量的.so文件;C组完成了动态链接器的开发,跟B组对接,能加载大量的so文件到内存映射区;跟A组协商了如何在运行时通过懒加载方式重写动态函数的地址;
    6. 联调上线,got_test_dync成功编译、链接、加载运行。
    [root@localhost got_test]# ./got_test_dyn
    hello world
    

    嗯,客户很满意,不仅编译的可执行文件小了,启动多个进程也没压力了~


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^