哪一个才是生物信息学呢?

看到了朋友圈有人转发了这样的一个系列:

  • 【陪你学·生信】序
  • 【陪你学·生信】一、生信能帮我们做什么
  • 【陪你学·生信】二、一些你肯定会用到的生信工具和基本操作
  • 【陪你学·生信】三、核苷酸序列数据库的使用
  • 【陪你学·生信】四、蛋白质相关的数据库
  • 【陪你学·生信】五、当你有一段待分析的DNA序列(基础操作介绍)
  • 【陪你学·生信】六、当你有一段待分析的氨基酸序列 (基础操作介绍)
  • 【陪你学·生信】七、在数据库中检索相似的序列
  • 【陪你学·生信】八、序列两两比对
  • 【陪你学·生信】九、多序列比对-Multiple Sequence Alignment(MSA)
  • 【陪你学·生信】十、编辑对多序列比对结果
  • 【陪你学·生信】十一、构建系统发育树

创作者的心声很有意思:想和大家一起开始学习生物信息学。因为最近看文献(涉及生信),总是大概明白了,自己还是无法操作。我也关注了很多生信的公众号,加了几个群,心动种草了一些线上课程。但是实在是觉得自己的基础知识太薄弱了,都看不懂群里的提问。所以决定要系统学一下,先看几本书吧,然后再学个线上操作课。

让我想起来了一个故事,就是现阶段生物信息学本科培养的人才与社会工作实践脱钩的问题。因为我看到他这个学习内容完全就是现阶段生物信息学本科培养大纲。

比如,他最新的一个是:【陪你学·生信】十二、RNA相关的简单分析,提到了Mfold 可以做RNA的二级结构预测,很有意思。在其网页工具上面输入你需要fold的序列,点击 fold RNA。如果事先不知道关于这段序列的任何信息,那么其他的参数都保持默认,就可以拿到该RNA序列的二级结构,确实是超级好用。

  • 网页链接:http://www.unafold.org/mfold/applications/rna-folding-form-v2.php
  • mfold网页返回的结果不仅是这个折叠的图,还有关于每个结构稳定性的解析,以及一些dot plot。
  • image-20210111212010912

其实呢,这样的绝大部分生物信息学本科专业所教的知识点啦,但是这些呢,并不是社会实践中的生物信息学,真正的生物信息学不仅仅是能使用它这个mfold的网页工具,还需要能解决问题。比如这个网页工具是有序列输入长度限制的,如果你的序列超级长,比如最近流行的新冠病毒的某个RNA基因,就会超出限制,那么我们就得使用另外一个方法来进行mfold, 就是命令行软件使用。

软件安装3部曲

很久以前我分享过1000个生物信息学软件安装,见:生物信息学常见1000个软件的安装代码!,它们是有规律的,比如对C语言的源代码软件来说,就是3部曲啦,首先,登陆你的Linux系统,然后敲入下面的命令,全部的代码如下:

mkdir -p ~/biosoft/mfold && cd  ~/biosoft/mfold  
wget http://www.unafold.org/download/mfold-3.6.tar.gz
tar zxvf mfold-3.6.tar.gz
cd mfold-3.6
./configure  prefix=$HOME/biosoft/bin/
make
make install
# 前提是你的电脑存在 $HOME/biosoft/bin/ 文件夹,并且该 $HOME/biosoft/bin/ 文件夹是在环境变量
# 如果不在环境变量,就需要下面的2行代码哦!
PATH=$PATH:$HOME/biosoft/bin
export PATH

这样的话,你的Linux系统里面就有了mfold这个命令,如果你认真看它,其实就会发现它是一个shell脚本:

#!/bin/bash
# This shell script folds an RNA or DNA sequence and creates output
# files.
export _POSIX2_Version=0
export Package_URL="http://mfold.rna.albany.edu"

export DATDIR=`mfold_datdir|sed -e '[email protected]/[email protected]@'`
export Package=mfold
export Version=3.6

# Abort subroutine
abort() {
    rm -f mfold.log  fort.*
    if [ $# -gt 0 ] ; then
            echo -e "$1"
    fi
    echo "Job Aborted"
    exit 1
}

虽然如此简单,但是没有这个基础的小伙伴仍然是会花式报错哦:

 

输入数据的准备

既然我们在其网页工具都是输入序列即可,软件使用理论上也是如此,前面的网页工具使用的时候,我就是输入了软件安装包里面自带的测试序列:

>MDV-1 (-) RNA
GGGGAACCCCCCUUCGGGGGUCACCUCGCGCAGCGGGCUGCGCGAAGGGGCCACGCUGCGAAGCAGCGUG
GCGGUUCUCGUGCGUUACCGAAACGCACGAAGGUCGCGCCUCUUCACGAGGCGUCACCUGGGAGAGCGCG
AAAGCGCUAGCCCGUGACUCGUCACGGUCGAACUCCCGUACGAGGUGCCCGCACCUCGUCCCCCCUUCCG
GGGGGUCCCCA

默认参数运行mfold

如果前面的对mfold软件的C语言的源代码安装三部曲正常的话,该软件就可以调用,先看看帮助文档,如下:

$mfold
Usage is
mfold SEQ='file_name' with optional parameters:
    [ AUX='auxfile_name' ] [ RUN_TYPE=text (default) or html ]
    [ NA=RNA (default) or DNA ] [ LC=sequence type (default = linear) ]
    [ T=temperature (default = 37 deg C) ] [ P=percent (default = 5) ]
    [ NA_CONC=Na+ molar concentration (default = 1.0) ]
    [ MG_CONC=Mg++ molar concentration (default = 0.0) ]
    [ W=window parameter (default - set by sequence length) ]
    [ MAXBP=max base pair distance (default - no limit) ]
    [ MAX=maximum number of foldings to be computed (default 100) ]
    [ MAX_LP=maximum bulge/interior loop size (default 30) ]
    [ MAX_AS=maximum asymmetry of a bulge/interior loop (default 30) ]
    [ ANN=structure annotation type: none (default), p-num or ss-count ]
    [ MODE=structure display mode: auto (default), bases or lines ]
    [ LAB_FR=base numbering frequency ] [ ROT_ANG=structure rotation angle ]
    [ START=5' base # (default = 1)] [ STOP=3' base # (default = end) ]
    [ REUSE=NO/YES (default=NO) reuse existing .sav file ]

对于软件安装包里面自带的测试序列,我们可以这样运行:

$mfold SEQ='test.txt'  
# 不知道为什么我的报错了,如下:
mfold version 3.6
REUSE= NO
test.txt.pnt created.
Sequence length is 221
Folding at 37 degrees using version 3.0 dat files.
Save file created using nafold.
Save file is empty. No foldings.
Job Aborted

好奇怪啊,我也不知道为什么我的报错了。因为这个软件并不是我的刚需,我也懒得去解决这个bug啦,如果有这方面经验的小伙伴欢迎留言交流哈!

输出结果解读

如果是正确运行,大概会出现如下结果:

542K Mar 21  2009 mdv1.37.ct
5.1K Mar 21  2009 mdv1.37.ext
 13K Mar 21  2009 mdv1.37.plot
  39 Mar 21  2009 mdv1.dG
 61K Oct 24  2009 mdv1.jpg
 239 Nov 19  2009 mdv1-local.seq
  33 Nov 19  2009 mdv1.log
 51K Oct 24  2009 mdv1.pdf
 14K Mar 21  2009 mdv1.plot
 12K Oct 24  2009 mdv1.png
 21K Oct 24  2009 mdv1.ps
 109 Mar 21  2009 mdv1.run
4.0K Jan 11 16:12 mfold

相当于你在网页工具里面提交序列,选择参数,然后运行拿到的交互式结果。

其它编程语言的mfold

比如:https://pypi.org/project/seqfold/, seqfold is an implementation of the Zuker, 1981 dynamic programming algorithm, the basis for UNAFold/mfold, with energy functions from SantaLucia, 2004 (DNA) and Turner, 2009 (RNA).

类似的,也会有R语言,java等等开发的mfold。

conda或者docker

更高级啦,这里略。如果你感兴趣,可以考虑加入我们的《生信小成之conda交流群》。

我们邀请到了,简书conda教程单篇阅读量破40万的人气作者卖萌哥为咱们《生信技能树》和《生信菜鸟团》粉丝在钉钉群直播授课。直播是免费的哈,赶快下载钉钉软件加入吧,“Linux公益课(2021) 生物信息学”群的钉钉群号:33840083,下周六(2021-01-16)晚上八点开课哈。

同时我们提供一个微信交流群(钉钉软件我们并不是随时在线,不方便交流,钉钉仅仅是直播授课时候开启聊天),还是老规矩,18 元进群,一个简单的门槛,隔绝那些营销号!仅此而已,考虑清楚哦! 进群方式详见公众号推文:很多事情不一定有答案(但是可以有交流渠道)

我的疑问是

到底是各式各样的网页工具操作是生物信息学呢,还是说基于Linux的NGS操作才是生物信息学呢?欢迎留言或者投票给出你的看法。

生物医学科研方法

真开心一分钟赚100块钱

2021-1-15 5:24:51

生物医学科研方法

我能不能做生信?生信难吗?

2021-1-15 5:54:36