可视化dotPlotly工具,是利用R语言写的可视化Minimap2/mummer比对输出的结果文件。
# 1 激活环境后输入R,进入R环境
# 2 指定安装包的来源(这些步骤都是用的百度到的
options(repos=structure(c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/")))
# 3 R安装模块
install.packages("optparse", "plotly","ggplot2")
4 在Linux服务器终端从github上下载dotPlotly的两个R脚本
git clone https://github.com/piyixing/dotPlotly.git
5 根据参数进行运行脚本,先使用例子的paf文件也行
/public/home/fengting/task/5.12ragtag/7.22/out/test/dotPlotly/pafCoordsDotPlotly.R -i test.paf -o 1 -s -t -m 500 -q 500000 -k 7 -l
minimap2 生成paf文件命令,-ax 生成sam格式,-cx生成paf格式。
minimap2 -cx asm5 HHZ.fasta rice_MH63.fa > test.paf
参数说明:
Usage: pafCoordsDotPlotly.R -i alignments.coords -o out [options]
Options:
-i INPUT, --input=INPUT # 输入文件,minimap paf文件
coords file from mummer program 'show.coords' [default NULL]
-o OUTPUT, --output=OUTPUT #输出文件前缀
output filename prefix [default out]
-v, --verbose
Print out all parameter settings [default]
-q MIN-QUERY-LENGTH, --min-query-length=MIN-QUERY-LENGTH # 最短的查询序列长度,用于过滤
filter queries with total alignments less than cutoff X bp [default 4e+05]
-m MIN-ALIGNMENT-LENGTH, --min-alignment-length=MIN-ALIGNMENT-LENGTH #最短的比对长度
filter alignments less than cutoff X bp [default 10000]
-p PLOT-SIZE, --plot-size=PLOT-SIZE # 绘图图片大小
plot size X by X inches [default 15]
-l, --show-horizontal-lines # 显示水平线,默认关上,建议打开
turn on horizontal lines on plot for separating scaffolds [default FALSE]
-k NUMBER-REF-CHROMOSOMES, --number-ref-chromosomes=NUMBER-REF-CHROMOSOMES # 选择绘图时染色体数目,默认绘制所有序列
number of sorted reference chromosomes to keep [default all chromosmes]
-s, --identity # -s 不同比对一致性显示不同的颜色,默认关上,建议打开
turn on color alignments by % identity [default FALSE]
-t, --identity-on-target # 仅对目标对比时计算一致性,可以理解为比对很好时才会计算一致性,如果加上-s 参数,那就是只有比对很好的序列会显示颜色,其他都是黑白
turn on calculation of % identity for on-target alignments only [default FALSE]
-x, --interactive-plot-off #是否打开互动展示,默认开,建议关上,打开报错
turn off production of interactive plotly [default TRUE]
-r REFERENCE-IDS, --reference-ids=REFERENCE-IDS #要保留的引用id列表(以逗号分隔)
comma-separated list of reference IDs to keep [default NULL]
-h, --help
Show this help message and exit

经过安装dotPlotly,就得到了共线性图,会自动排序,调整正负方向,和mummer软件出来的图有所差别,更美观,同时也会损失正负链信息。
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
我正在阅读一本关于Ruby的书,作者在编写类初始化定义时使用的形式与他在本书前几节中使用的形式略有不同。它看起来像这样:classTicketattr_accessor:venue,:datedefinitialize(venue,date)self.venue=venueself.date=dateendend在本书的前几节中,它的定义如下:classTicketattr_accessor:venue,:datedefinitialize(venue,date)@venue=venue@date=dateendend在第一个示例中使用setter方法与在第二个示例中使用实例变量之间是
我基本上来自Java背景并且努力理解Ruby中的模运算。(5%3)(-5%3)(5%-3)(-5%-3)Java中的上述操作产生,2个-22个-2但在Ruby中,相同的表达式会产生21个-1-2.Ruby在逻辑上有多擅长这个?模块操作在Ruby中是如何实现的?如果将同一个操作定义为一个web服务,两个服务如何匹配逻辑。 最佳答案 在Java中,模运算的结果与被除数的符号相同。在Ruby中,它与除数的符号相同。remainder()在Ruby中与被除数的符号相同。您可能还想引用modulooperation.
我从用户Hirolau那里找到了这段代码:defsum_to_n?(a,n)a.combination(2).find{|x,y|x+y==n}enda=[1,2,3,4,5]sum_to_n?(a,9)#=>[4,5]sum_to_n?(a,11)#=>nil我如何知道何时可以将两个参数发送到预定义方法(如find)?我不清楚,因为有时它不起作用。这是重新定义的东西吗? 最佳答案 如果您查看Enumerable#find的文档,您会发现它只接受一个block参数。您可以将它发送两次的原因是因为Ruby可以方便地让您根据它的“并行赋
RSpec似乎按顺序匹配方法接收的消息。我不确定如何使以下代码工作:allow(a).toreceive(:f)expect(a).toreceive(:f).with(2)a.f(1)a.f(2)a.f(3)我问的原因是a.f的一些调用是由我的代码的上层控制的,所以我不能对这些方法调用添加期望。 最佳答案 RSpecspy是测试这种情况的一种方式。要监视一个方法,用allowstub,除了方法名称之外没有任何约束,调用该方法,然后expect确切的方法调用。例如:allow(a).toreceive(:f)a.f(2)a.f(1)
A/ctohttp://wiki.nginx.org/CoreModule#usermaster进程曾经以root用户运行,是否可以以不同的用户运行nginxmaster进程? 最佳答案 只需以非root身份运行init脚本(即/etc/init.d/nginxstart),就可以用不同的用户运行nginxmaster进程。如果这真的是你想要做的,你将需要确保日志和pid目录(通常是/var/log/nginx&/var/run/nginx.pid)对该用户是可写的,并且您所有的listen调用都是针对大于1024的端口(因为绑定(
方法应返回-1,0或1分别表示“小于”、“等于”和“大于”。对于某些类型的可排序对象,通常将排序顺序基于多个属性。以下是可行的,但我认为它看起来很笨拙:classLeagueStatsattr_accessor:points,:goal_diffdefinitializepts,gd@points=pts@goal_diff=gdenddefothercompare_pts=pointsother.pointsreturncompare_ptsunlesscompare_pts==0goal_diffother.goal_diffendend尝试一下:[LeagueStats.new(
有没有办法在sinatra的beforedoblock中停止执行并返回不同的值?beforedo#codeishere#Iwouldliketo'return"Message"'#Iwouldlike"/home"tonotgetcalled.end//restofthecodeget'/home'doend 最佳答案 beforedohalt401,{'Content-Type'=>'text/plain'},'Message!'end如果你愿意,你可以只指定状态,这里有状态、标题和正文的例子
我想用sunspot重现以下原始solr查询q=exact_term_text:fooORterm_textv:foo*ORalternate_text:bar*但我无法通过标准的太阳黑子界面理解这是否可能以及如何实现,因为看起来:fulltext方法似乎不接受多个文本/搜索字段参数我不知道将什么参数作为第一个参数传递给fulltext,就好像我通过了"foo"或"bar"结果不匹配如果我传递一个空参数,我得到一个q=*:*范围过滤器(例如with(:term).starting_with('foo*')(顾名思义)作为过滤器查询应用,因此不参与评分。似乎可以手动编写字符串(或者可能使