利用perl一键生成符合LEFse差异分析的Table表

利用perl一键生成符合LEFse差异分析的Table表利用perl一键生成符合在线LEFse差异分析的Table表LEfSe分析的在线+本地运行的详细教程参考刘尧博客基于Picrust2进行宏基因预测后,我们往往需要对数据进行可视化话,其中LEFse就是非常不错的选择,这里通过perl实现对表的格式化。LEFse–Galaxy平台:http://huttenhower.sph.harvard.edu/galaxyusestrict;usewarnings;my$mapFile=$ARGV[0];my$tableFile=$ARG

大家好,又见面了,我是你们的朋友全栈君。

利用perl一键生成符合在线LEFse差异分析的Table表

LEfSe分析的在线+本地运行的详细教程参考刘尧博客

基于Picrust2进行宏基因预测后,我们往往需要对数据进行可视化话,其中LEFse就是非常不错的选择,这里通过perl实现对表的格式化。
LEFse –Galaxy平台:http://huttenhower.sph.harvard.edu/galaxy

use strict;
use warnings;
my $mapFile=$ARGV[0];
my $tableFile=$ARGV[1];
my %mapHash=();
open(MAP,"$mapFile")or die $!;
while(my $line=<MAP>)
{ 

chomp($line);
my @arr=split(/\s+/,$line);
$mapHash{ 
$arr[0]}=$arr[3];
}
close(MAP);
my %hash=();
my @samples=();
my %sumHash=();
open(RF,"$tableFile") or die $!;
while(my $line=<RF>)
{ 

next if($.==1);
my @arr=split(/\t/,$line);
if($.==2)
{ 

@samples=@arr;
next;
}
my $taxonomy=$arr[$#arr];
$taxonomy=~s/;/|/g;
$taxonomy=~s/(k|p|c|o|f|g|s)__//g;
$taxonomy=~s/\s+|\[|\]//g;
$taxonomy=~s/\|*$//g;
my @taxoArr=split(/\|/,$taxonomy);
my $taxSetp="";
for(my $tax=0;$tax<=$#taxoArr;$tax++)
{ 

if($tax==0)
{ 

$taxSetp=$taxoArr[$tax];
}
else
{ 

$taxSetp=$taxSetp . "|" . $taxoArr[$tax];
}
for(my $i=1;$i<$#samples;$i++)
{ 

${ 
$hash{ 
$taxSetp}}{ 
$samples[$i]}+=$arr[$i];
}
}
for(my $i=1;$i<$#samples;$i++)
{ 

$sumHash{ 
$samples[$i]}+=$arr[$i];
}
}
close(RF);
open(WF,">lefse_input.txt")or die $!;
#print WF "Taxonomy";
#for(my $i=1;$i<$#samples;$i++)
#{ 

# print WF "\t" .$samples[$i];
#}
#print WF"\n";
print WF "sampleType";
for(my $i=1;$i<$#samples;$i++)
{ 

print WF "\t" . $mapHash{ 
$samples[$i]};
}
print WF "\n";
foreach my $key(sort (keys %hash))
{ 

next if($key=~/Unassigned/);
print WF $key;
for(my $i=1;$i<$#samples;$i++)
{ 

print WF "\t" . ${ 
$hash{ 
$key}}{ 
$samples[$i]}/$sumHash{ 
$samples[$i]}*100;
}
print WF "\n";
}
close(WF);

将以上代码保存为lefse.pl, 然后cd到相应目录,将输入文件lefse_input.txt(以picrust2输出的meta表为例) ,和map文件 sample-meta.txt,放到该pl同一目录下,然后运行

perl lefse.pl 

然后就可以根据官方教程,进行上传生成LEFse分析表格。
在这里插入图片描述
更多微生物组学分析代码与方法,欢迎访问zlab仓库https://github.com/zlabx
参考文献:

docker安装Lefse和分析流程

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/136569.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 在C#中ParameterizedThreadStart和ThreadStart区别

    在C#中ParameterizedThreadStart和ThreadStart区别
    不需要传递参数,也不需要返回参数
      我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下:
    ThreadStartthreadStart=newThreadStart(Calculate);Threadthread=newThread(threadStart);thread.Start();publicvoidCalculate(){ doubleDiameter=0.5; Console.Write(“T

  • 使用Gstreamer处理RTSP视频流

    使用Gstreamer处理RTSP视频流文章目录RTSP视频流处理方法1.Gstreamer整体框架1.1MediaApplications1.2CoreFramework1.3Plugins2.Gstreamer组件2.1Element2.2Pad2.3Bin和Pipeline3.gstreamertools3.1gst-inspect-1.03.2gst-launch-1.04.参考链接RTSP视频流…

    2022年10月18日
  • java 登陆拦截_登录拦截 – java代码库 – 云代码

    java 登陆拦截_登录拦截 – java代码库 – 云代码[java]代码库packagecom.app.common;importorg.apache.log4j.Logger;importcom.app.model.User;importcom.opensymphony.xwork2.ActionContext;importcom.opensymphony.xwork2.ActionInvocation;importcom.opensym…

  • 一次简单的反射型XSS操作及思路

    一次简单的反射型XSS操作及思路xss是类似对html代码的注入,拼接恶意代码获取cookie等分为三种类型,分别是反射型、存储型和dom型反射型是不存入数据库,对自己有影响存储型是存入数据库,对来访者都有影响1.进入靶场看到输入框,进行插入js标签输入框里输入:<script>alert(1)</script>点击搜索语句没有执行,而是被当做文本搜索了,这显然不是我们想看到的,点…

  • php header utf8 插入header(“Content-type: text/html; charset=utf-8”);「建议收藏」

    php header utf8 插入header(“Content-type: text/html; charset=utf-8”);「建议收藏」phpheaderutf8插入header(‘Content-type:text/html;charset=utf-8’);

  • repeater嵌套以及合计问题

    repeater嵌套以及合计问题这次是做免费品订单的详情页面,根据需求,要做如下展示看着还行,就是repeater里面嵌套一个repeater呗,因为之前做过类似的,代码实现不是什么大问题,存储过程也都可以搞定,第二层的repeater这么绑定就可以了protectedvoidrptSapOrderList_ItemDataBound(objectsender,RepeaterItemEventArgse)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号