本地运行psRNATarget(MiRNATarget)

如果你的数据量太大,尝试一下本地运行psRNATarget吧

试了下其他的软件都不好使,还得是psRNATarget,但是没有本地版,在issue中看到有人手工复现了代码,让我们来跑下试试。

原始网址
https://github.com/jtremblay/MiRNATarget

运行环境依然是 wsl ubuntu2204,代码实际要求python >3.9,其他好像没啥了

克隆MiRNATarget后,将文件夹添加到环境变量。其中data是测试用数据。


救命啊原始文件有BUG(已经提交issue)

在提供的miRNA数目超过100时,程序出现错误,问题在于100之后的ssearch输出不包含开头的空格

修改parse_ssearch.py原始代码:

应将line 67 的
match = re.match(r"\s+\d+>>>(\S+) - (\d+) nt", line)
更改为
match = re.match(r"\s*\d+>>>(\S+) - (\d+) nt", line)


然后你还需要一个ssearch36,他实际在fasta36中,所以我们需要安装fasta_v36.3.8i_Nov2022(https://github.com/wrpearson/fasta36/releases/tag/v36.3.8i_14-Nov-2020

你可以直接wget下载二进制文件到一个单独的文件夹:

wget https://github.com/wrpearson/fasta36/releases/download/v36.3.8i_14-Nov-2020/fasta-36.3.8i-linux64.tar.gz
tar -xvzf fasta-36.3.8i-linux64.tar.gz

解压后你应该将fasta-36.3.8i/bin 加入到你的环境变量中。

然后回到MiRNATarget文件夹,这里我们可以看到有一个data 文件,把里面的2545824690.fna、test.fna、test_rc.fna拷贝到一个新的test文件夹中可以用来测试。

ssearch36 -f -8 -g -3 -E 10000 -T 8 -b 200 -r +4/-3 -n -U -W 10 -N 20000 ./test/test_rc.fna ./test/2545824690.fna > ssearch_output.txt
parse_ssearch.py -i ./test/ssearch_output.txt > ./test/ssearch_output.tsv
parse_mirna_targets.py -i ./test/ssearch_output.tsv > ./test/ssearch_output_parsed.tsv

这里会发现生成的ssearch_output.txt和2545824690.txt大小不一样,结果ssearch_output_parsed.tsv似乎也不一样,没有详细对比,可能是使用的fasta36版本不一样?

特别注意
这里提到了你的miRNA文件应该是test.fna,对其反向互补(Reverse complementarity)生成test_rc.fna。这是因为比对时实际计算机进行的是查找而不是互补,所以你在作图时候需要用原始数据哦

因此对于你的数据,应该用seqkit将miRNA反向互补后再用于预测

seqkit seq miRNA.fasta -r -p > miRNA.RC.fasta

最后依然是一行命令简化:
需要两个文件 miRNA.dna.fasta或者miRNA.fasta 以及 target.fasta

#不生成中间文件
#如果你的miRNA输出实际上是DNA文件则需要取消下面这一行的注释
#seqkit seq --dna2rna miRNA.dna.fasta >miRNA.fasta
mkdir MiRNATarget_output
seqkit seq -t RNA miRNA.fasta -r -p > miRNA.RC.fasta
ssearch36 -f -8 -g -3 -E 10000 -T 8 -b 200 -r +4/-3 -n -U -W 10 -N 20000 miRNA.RC.fasta target.fasta | parse_ssearch.py  | parse_mirna_targets.py  > ./MiRNATarget_output/ssearch_output_parsed.tsv
#生成中间文件
#如果你的miRNA输出实际上是DNA文件则需要取消下面这一行的注释
#seqkit seq --dna2rna miRNA.dna.fasta >miRNA.fasta
mkdir MiRNATarget_output
seqkit seq -t RNA miRNA.fasta -r -p > miRNA.RC.fasta
ssearch36 -f -24 -g -3 -E 10000 -T 8 -b 200 -r +4/-3 -n -U -W 10 -N 20000 miRNA.RC.fasta target.fasta > ./MiRNATarget_output/ssearch_output.txt
parse_ssearch.py -i ./MiRNATarget_output/ssearch_output.txt > ./MiRNATarget_output/ssearch_output.tsv
parse_mirna_targets.py -i ./MiRNATarget_output/ssearch_output.tsv > ./MiRNATarget_output/ssearch_output_parsed.tsv


其他提醒
ssearch36设置中,
-T 用于调节线程数
只可以设置 -f -9 -g -2 或者 -f -8 -g -3

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、 软件安装: 下载软件包https://ftp.ncbi.nlm.nih.gov/blast/executab...
    谢俊飞阅读 11,497评论 1 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,390评论 19 139
  • rnammer的安装 rnammer软件是比较常用的核糖体rna寻找软件,但目前不提供网络版,只提供本地版本。本地...
    土豆仙人阅读 6,440评论 0 1
  • ############原文粘贴#################### 用 Perl 实现的有用的单行程序 ...
    sunslj阅读 4,882评论 0 4
  • (6). python赋值语句的注意事项 在本例子中会报错,找不到x, 因为赋值即定义(在函数定义时,已经解释了语...
    四月天_da7e阅读 3,926评论 0 0