NGenomeSyn 项目教程

NGenomeSyn 项目教程

NGenomeSyn Any Way to Show Multi genomic Synteny NGenomeSyn 项目地址: https://gitcode.com/gh_mirrors/ng/NGenomeSyn

1. 项目介绍

NGenomeSyn 是一个易于使用且灵活的工具,专为多基因组同线性关系的高质量可视化而设计。它支持用户自定义或通过自定义脚本生成的同线性关系和基因组特征(如重复序列、结构变异、基因)的可视化。NGenomeSyn 允许用户调整配置文件中定义的基因组和链接样式,并简单地调整目标基因组的移动、缩放和旋转选项,从而生成丰富的布局和出版级图表。

该工具的主要优势包括:

  • 支持多个可定制的基因组 (>=2)
  • 灵活且可定制的布局
  • 高定制化,允许为每个基因组设置颜色、透明度等
  • 支持链接信息的高定制化

2. 项目快速启动

2.1 下载和安装

首先,从 GitHub 仓库下载最新版本的 NGenomeSyn:

git clone https://github.com/hewm2008/NGenomeSyn.git
cd NGenomeSyn

2.2 安装依赖

NGenomeSyn 需要 Perl 和 SVG 模块。如果需要将 SVG 转换为 PNG 格式,还需要安装 convert 工具。

# 安装 Perl 和 SVG 模块
cpan SVG

# 安装 convert 工具(如果需要)
sudo apt-get install imagemagick

2.3 运行示例

运行示例脚本以验证安装是否成功:

chmod -R 755 bin/*
./bin/NGenomeSyn -InConf example/example1/in.conf -OutPut example/example1/out

3. 应用案例和最佳实践

3.1 简单使用案例

对于最简单的使用,只需提供两个基因组位点文件和链接文件(如 Minimap2 生成的文件):

./bin/NGenomeSyn -InConf example/example1/in.conf -OutPut example/example1/out

3.2 多基因组水平布局

在多基因组水平上,可以调整基因组的布局和特殊区域的突出显示:

./bin/NGenomeSyn -InConf example/example2/in.conf -OutPut example/example2/out

3.3 链接设置和特殊形状布局

通过调整链接设置和基因组布局,可以生成特定的形状(如三角形):

./bin/NGenomeSyn -InConf example/example3/in.conf -OutPut example/example3/out

4. 典型生态项目

NGenomeSyn 可以与其他基因组分析工具结合使用,如 Minimap2、MCScanX 和 SyRI,以生成更复杂的基因组同线性关系图。这些工具可以生成 NGenomeSyn 所需的输入文件,从而实现更高级的可视化。

例如,使用 Minimap2 生成基因组比对文件,然后使用 NGenomeSyn 进行可视化:

minimap2 -x asm5 ref1.fa ref2.fa > ref1_ref2.paf
./bin/NGenomeSyn -InConf example/example1/in.conf -OutPut example/example1/out

通过结合这些工具,研究人员可以更全面地分析和可视化基因组数据。

NGenomeSyn Any Way to Show Multi genomic Synteny NGenomeSyn 项目地址: https://gitcode.com/gh_mirrors/ng/NGenomeSyn

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

翻译代码#####################Find the relevant software in the systerm######################## my $nucmer="/usr/bin/nucmer"; my $deltaFilter="/usr/bin/delta-filter"; my $showcoords="/usr/bin/show-coords"; my $minimap2="/usr/bin/minimap2"; if (($MappingSoft eq "mummer") or ($MappingSoft eq "nucmer")) { # mummer-4.0.0/bin/nucmer # mummer-4.0.0/bin/delta-filter # mummer-4.0.0/bin/show-coords if ( !(-e $nucmer) ) { $nucmer=`which nucmer 2> /dev/null `;chomp $nucmer; } if ( !(-e $deltaFilter) ) { $deltaFilter=`which delta-filter 2> /dev/null `;chomp $deltaFilter; } if ( !(-e $showcoords) ) { $showcoords=`which show-coords 2> /dev/null `;chomp $showcoords; } if (defined $BinDir) { my $tmp="$BinDir/nucmer"; if (-e $tmp) {$nucmer=$tmp;} $tmp="$BinDir/delta-filter"; if (-e $tmp) {$deltaFilter=$tmp;} $tmp="$BinDir/show-coords"; if (-e $tmp) {$showcoords=$tmp;} } if ( !(-e $showcoords) ) { print "\tCan't find the mummer [show-coords] at \$PATH or \$BinDir\n"; print "\tplease Check at it\n";exit; } if ( !(-e $deltaFilter) ) { print "\tCan't find the mummer [delta-Filter] at \$PATH or \$BinDir\n"; print "\tplease Check at it\n";exit; } if ( !(-e $nucmer) ) { print "\tCan't find the mummer [nucmer] at \$PATH or \$BinDir\n"; print "\tplease Check at it\n";exit; } my $NumVer=`$nucmer -V `; chomp $NumVer ; my @ccc=split /\./,$NumVer; if ($ccc[0] <4 ) { print "found the $nucmer version is $NumVer < 4.0 , we need the 4.0\n"; print "\tplease Check at it\n";exit; } } else { if ( !(-e $minimap2) ) { $minimap2=`which minimap2 2> /dev/null `;chomp $minimap2; } if (defined $BinDir) { my $tmp="$BinDir/minimap2"; if (-e $tmp) {$minimap2=$tmp;} } if ( !(-e $minimap2) ) { print "\tCan't find the [ minimap2 ] at \$PATH or \$BinDir\n"; print "\tplease Check at it\n";exit; } } my $NGenomeSyn="$Bin/../NGenomeSyn"; if ( !(-e $NGenomeSyn) ) { $NGenomeSyn="$Bin/NGenomeSyn"; if ( !(-e $NGenomeSyn) ) { print "\tCan't find the [NGenomeSyn] at [ $Bin/..]\n"; print "\tplease Check at it\n";exit; } }
06-09
翻译代码############# new the scripts for alignments ,change format and show the alignments ############ if (($MappingSoft eq "mummer") or ($MappingSoft eq "nucmer")) { #mummer-4.0.0/bin/nucmer --mum --mincluster 500 -t 30 Ref.AAfa RefBB.fa -p OUT #mummer-4.0.0/bin/delta-filter -1 -i 90 -l 2000 OUT.delta > OUT.filter1.delta #mummer-4.0.0/bin/show-coords -c -r OUT.filter1.delta > OUT.filter1.coords if ($MappingPara eq "") {$MappingPara = "--mum --mincluster 500 ";} open (OUTSH,">$OutPrefix.mapping.sh") || die "input file can't open $!"; print OUTSH "$nucmer $MappingPara -t $NumThreads $OutPrefix.A.fa $OutPrefix.B.fa -p $OutPrefix \n"; print OUTSH "$deltaFilter -1 -i 90 -l $MinAlnLen $OutPrefix.delta > $OutPrefix.filter.delta \n"; print OUTSH "$showcoords -c -r $OutPrefix.filter.delta > $OutPrefix.filter.coords\n"; print OUTSH "perl $0 Coords2Link $OutPrefix.filter.coords $MinAlnLen $OutPrefix.link \n"; print OUTSH "$NGenomeSyn -InConf $OutPrefix.conf -OutPut $OutPrefix.svg \n"; close OUTSH; system ("sh $OutPrefix.mapping.sh "); } else { if ($MappingPara eq "") {$MappingPara = " -x asm5 "; } open (OUTSH,">$OutPrefix.mapping.sh") || die "input file can't open $!"; print OUTSH "$minimap2 $MappingPara -t $NumThreads $OutPrefix.B.fa $OutPrefix.A.fa > $OutPrefix.paf \n"; print OUTSH "perl $0 Paf2Link $OutPrefix.paf $MinAlnLen $OutPrefix.link \n"; print OUTSH "$NGenomeSyn -InConf $OutPrefix.conf -OutPut $OutPrefix.svg \n"; close OUTSH ; system ("sh $OutPrefix.mapping.sh "); } print "\tALL done, see the xxx.png . you can optimized drawing by [NGenomeSyn] software\n"; print "\t optimized: [Filter] and [Merge] small syn blocks to big syn block\n\n";
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吕镇洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值