miRNA功能研究最为关键的一步就是进行miRNA靶标基因的筛选,虽然研究人员已经开发出多种用于miRNA靶标的预测软件,有些还提供在线版本,但是使用过程中仍然存在以下问题:
- 在线版本仅限于部分模式物种,对于非模式物种并不支持;
- 在线版本并不能进行批量化操作;
- 不能进行个性化的分析;
Linux软件安装可以通过conda(类似于手机app)和手动两种安装方式,手动则需要单独安装包所需要的依赖包。所以,优先考虑用conda进行安装,conda没有收录的再考虑手动安装。
建立用于miRNA分析的mirna环境
#创建环境
conda create -n mirna
#激活环境
conda activate mirna
1.miRanda
官网:http://cbio.mskcc.org/miRNA2003/miranda.html
conda安装
conda安装包查询
https://anaconda.org/anaconda/repo
#安装
conda install -c bioconda miranda
#查询安装路径
(mirna) user@user-PowerEdge-R740:~$ whereis miranda
miranda: /home/public/miniconda3/envs/mirna/bin/miranda
#帮助文档
(mirna) user@user-PowerEdge-R740:~$ miranda -h
用法:miranda file1 file2 [options..]
miranda的使用需要准备两个文件,file1是miRNA序列的fasta文件,file2是mRNA序列的fasta文件。
此外,你还可以根据需求设置可选参数。
图片.png以下列举几个常用的参数选项:
-sc S 将得分阈值设置为S [默认:140.0]
-en -E 将能量阈值设置为-E kcal / mol [默认值:1.0]
-strict 严格要求5'种子区配对 [默认:关]
-out file 输出结果到文件 [默认:关]
值得注意的是,微生信平台推出了在线版的miRanda。
http://www.bioinformatics.com.cn/local_miranda_miRNA_target_prediction_120
2. TargetScan
官网:https://www.targetscan.org/cgi-bin/targetscan/data_download.fly72.cgi
- 图片.png
#下载安装包
wget -c https://www.targetscan.org/fly_72/fly_72_data_download/targetscan_70.zip
#解压
unzip targetscan_70.zip
#添加环境变量
vim ~/.bashrc
export PATH=/home/public/software/targetscan:$PATH
source ~/.bashrc
#检测是否可行
targetscan_70.pl -h
图片.png
用法: targetscan_70.pl miRNA.fa mRNA.fa outfile
targetscan对输入文件类型有所不同,miRNA需要输入miRNA名字,物种ID,和种子序列的2-8nt;
UTR序列则包含:gene ID, 物种ID,比对好的序列。
暂时不知道如何除了UTR序列达到符合输入文件的类型?
3. RNAhybrid
conda安装
图片.png
#安装
conda install -c genomedk rnahybrid
#检测是否可运行
RNAhybrid -h
#运行
RNAhybrid -s 3utr_fly -t /home/public/datas/mirna/file2/3UTR.fasta -q /home/public/datas/mirna/file1/mir_8_3p.fasta > /home/user/output/RNAhybrid_test.txt
Usage: RNAhybrid [options] [target sequence] [query sequence].
4. PITA
官网:https://genie.weizmann.ac.il/pubs/mir07/mir07_exe.html
#下载
wget -c https://genie.weizmann.ac.il/pubs/mir07/64bit_exe_pita_prediction.tar.gz
#解压
tar -zxvf pita_prediction.tar.gz
#安装
make install
#修改PITA权限
sudo chmod -R 777 ./PITA
#添加环境变量
as above
#查看帮助文档
pita_prediction.pl --help
用conda安装依赖包:viennarna
图片.png
报错解决方案
Report 1. "Unescaped left brace in regex is illegal here in regex"
报错1Solutions: 网友分析可能是软件写的比较早,Perl不支持以前的写法[1]
图片.png从示例中可以看出,最大的区别就是在双引号的第一个双引号,需要额外的加上括号。
{}修改为[{]}
插一句题外话,vim默认并没显示行号,先解决显示行号问题[2].
Report 2. Compilation failed in require at……
Solutions:查看报错提示的文本后(如下图),原来依赖关系导致,所以R1解决之后
这个问题就不存在了。
Report 3. Can't use 'defined(@array)' (Maybe you should just omit the defined()?)
报错3Solutions:网友解释仍旧是perl版本升级导致[3],按照如下对应修改即可。
if(defined(@fill_lines) and $#fill_lines>=0) 修改改为 if(@fill_lines) and $#fill_lines>=0)
5. RNA22
下载地址:https://cm.jefferson.edu/rna22/Interactive/
在线版本可用,但是可以下载本地版后上传服务器进行批量化操作。
#install java
sudo apt install openjdk-8-jre-headless
# 查看
java -version
# 修改权限否则无法执行
sudo chmod -R 777 /home/user/software/RNA22/
#creat output file
touch output.txt
#运行
java RNA22v2
#提取结果
#过滤并提取结果
cat ./output.txt | awk '$5 <= -18 {for(i = 1; i <= 5; i++) printf("%s ", $i); printf("\n")}'>./extract.txt
6. PicTar
在线版本可用
数据合并:
https://www.jianshu.com/p/6fbfebbc818b
5. TargetFinder
TargetFinder下载使用---miRNA靶点识别
用于植物靶标鉴定
miRNA预测结果整理:
linux下运行python
打开Terminal后输入指令:python,会出现>>>,这个时候就可以在里面输入python脚本开始运行了
使用exit()退出python环境
def TidyMirandaResult(path, inputfile, outfile):
infpath = r'{}\{}'.format(path,inputfile)
outfpath = r'{}\{}'.format(path, outfile)
with open(infpath) as f:
for row in f:
row = row.split('\t')
line = row[0][2:] + ':' + row[1] + '\n'
with open(outfpath, 'a') as r:
r.writelines(line)
def TidyTargetscanResult(path, inputfile, outfile):
infpath = r'{}\{}'.format(path, inputfile)
outfpath = r'{}\{}'.format(path, outfile)
i = 0
with open(infpath) as f:
for row in f:
i += 1
if i == 1:
continue
row = row.split('\t')
line = row[1] + ':' + row[0] + '\n'
with open(outfpath, 'a') as r:
r.writelines(line)
def TidyRNA22Result(path, inputfile, outfile):
infpath = r'{}\{}'.format(path, inputfile)
outfpath = r'{}\{}'.format(path, outfile)
with open(infpath) as f:
for row in f:
row = row.split('\t')
line = row[0] + ':' + row[1] + '\n'
with open(outfpath, 'a') as r:
r.writelines(line)
def main():
path = r'D:\用户\桌面\练习\结果'
TidyMirandaResult(path, 'miranda_result.txt', 'miranda_TidyResult.txt')
TidyRNA22Result(path, 'RNA22_result.txt', 'RNA22_TidyResult.txt')
TidyTargetscanResult(path, 'targetscan_result.txt', 'targetscan_TidyResult.txt')
TidyTargetscanResult(path, 'pita_results.txt', 'pita_TidyResult.txt') # pita结果处理和targetscan是一样的
main()
i = 0
with open(r'D:\用户\桌面\练习\结果\4软件结果交集.txt') as f:
for row in f:
i += 1
if i == 1:
continue
row = row.split(':')
line = row[1]
with open(r'D:\用户\桌面\练习\结果\靶基因.txt', 'a') as r:
r.writelines(line)
参考资料:
网友评论