本文针对萌新小盆友,貌似很多学医的小可爱们会使用一些类似Perl脚本语言、R语言一些专业性比较高但比较偏门的语言,本人就遇到一个萌新小可爱,需要用到Perl对从TCGA数据库下载的数据进行格式转换处理,后期还会使用R语言进行统计分析。
书归正传,本文主要是针对Perl解释器环境安装的各种踏坑,后面用到R语言时再踏吧,敬请期待。纵观各大论坛,其实详细的文章特别是Perl执行脚本解释器的环境依赖安装的特别少,而且相关的文章都是比较老旧的,有的甚至10年前的翻出了大概几个有点参考价值的文章,现贴出来,供感兴趣的童鞋参考。
因为我的操作平台是windows10,萌新小盆友的操作平台是macOS,所以,找资料是分两个系统去参考找的,现把文章分为两类,如下:
Perl GD模块的安装linux/windows/mac (Windows系统、macOS)
perl官网 (Windows系统、macOS)
perl官方下载地址 (Windows系统、macOS)
cpan官网 (Windows系统、macOS)
Perl模块的三种安装方法 (Windows系统、macOS)
Perl PPM安装模块 (Windows系统)
mac系统perl安装JSON模块 (macOS)
在Mac OSX 10.7.3上面安装perl模块 (macOS)
mac安装perl :blog.csdn.net/yuxin6866/a… (macOS)
在新Mac上配置Perl (macOS)
Mac必备神器Homebrew (macOS)
爬坑爬了一天后现把收获整理出来分享给大家:
1. perl解释器的下载安装
- 下载
Perl(一般MacOS X已经自带安装了Perl,但版本待定,不知道是否会因为版本过老不能使 用,windows系统需要各位童鞋自行去官网下载安装,mac也可以去官网下载),通过Perl官网下载,如下图:
Windows有两种下载安装方式,ActiveState Perl方式安装(下图是windows的ActiveState下载方式)
windows还有一种安装方式是Strawberry Perl。
注意:ActiveState Perl方式在5.26之前的老版本默认附带PPM(即Perl Package Manager,是windows下的perl编译器active perl的包管理工具,具体作用类似于CPAN),5.26之后,包括5.26版本,现在默认安装时没有PPM这个工具,并且将不再为早期版本的ActivePerl构建许多软件包。,想要安装perl的包,就需要通过CPAN方式安装,与macOS安装perl包的方式一样。如果安装方式是Strawberry Perl,则想要安装perl的包,也需要通过CPAN方式安装。
Windows下载后的安装包是.msi结尾
macOS安装则需要登录后,进入以下页面选择Download Builds模块下去下载
下载的安装包则是以.pkg结尾的安装包。
- 安装
安装直接点击安装包安装。
windows安装后如下图所示(5.26版本已经无PPM)
故如果安装的activePerl有PPM,可以直接通过PPM搜索相关的模块(也就是包)安装,例如JSON模块,如果是安装的activePerl版本比较高不支持PPM或者安装的是Strawberry Perl这种没有PPM的,则需要使用CPAN安装些perl模块(包)。
2. 安装Perl相关包
安装Perl解释器的目的除了执行基本的脚本功能,肯定也是想依赖他的各种包跟模块来处理一些数据的,例如处理从TCGA上下载癌症相关数据,加入cart之后下载,得到的数据如下所示:
里面的数据格式并不是我们想要的,我们想要的是把数据生成矩阵的格式,就需要通过Perl做处理,分以下几个步骤去处理,首先我们需要把下载的每个文件夹里.gz的文件放在一个统一的文件夹下,如果文件少的话,也可以手动自己粘贴复制,但如果几十上百的文件的话,手动粘贴复制就是最笨的方法了,所以,我们完全可以利用工具,可以通过Perl脚本完成这些繁琐而没有意义的工作。
- 首先,我们检测我们刚才安装的perl是否安装成功
打开终端,windows系统的同学,Win + R,调出运行框(左下角),输入cmd,就会出现命令提示符,如下图
输入命令:
perl -v
如果出现展示perl版本信息,如上图,则证明安装成功,如果查看不到或者报错,则没有安装成功。
macOS打开终端的方法如下:
通过command + space 打开搜索
然后输入terminal 打开终端
在终端内输入命令:
perl -v
就可以查看到perl版本信息了,如果查看不到或者报错,则没有安装成功。
- 安装perl相关依赖包方法
因为某个萌新童鞋是macOS系统,而且windows系统安装依赖包的相关环境有些麻烦,貌似需要手动处理,就只整理了macOS安装环境的相关步骤,如下:
1. 首先安装Xcode
Xcode是运行在操作系统Mac OS X上的集成开发工具,安装Xcode不是为了让你使用这款IDE编写代码,Xcode在整个perl使用环境里是使用不到的,只是因为在使用macOS的命令行工具homebrew时如果不安装Xcode会报错,也有办法在不安装Xcode的情况下,使用homebrew,只是有些麻烦,为了避免给各位萌新制造额外困难,就老老实实安装吧
注意:安装包有些大,下来11个G多,安心下载完成。
安装步骤如下:
在Mac电脑的App Store搜索下载Xcode,图标如下:
2. 打开一次Xcode
能成功进入软件即可(目的是为了初始化,注意:如果电脑配置过低的萌新童鞋,打开一次Xcode后以后请不要打开了,即使再次使用Perl或者命令行工具homebrew也不需要打开,否则电脑内存有爆炸风险,卡的你会什么也干不了,它的使命只有第一次,做一些初始化的配置工作)
3. 安装完Xcode后,打开终端(即terminal)
打开终端方法:通过**command + space
打开搜索,然后输入terminal
**就能打开终端。
终端内输入命令如下:
xcode-select --install
之后一直选择“安装”即可。
4. 安装命令行工具homebrew,继续在终端输入命令:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
注意:直接安装homebrew因为是国外的源,会非常的慢甚至安装不成功,上面的命令是已经替换成国内源。
执行命令之后按照提示安装操作即可。
5. 安装最新Perl 5.30(没有Perl 6……)(如果mac安装了可跳过此步骤)
注意:因为mac自带了Perl,所以可以先尝试不安装最新的Perl,第五步可以跳过,如果下面步骤出错,可以再回来按照第五步安装最新版本Perl,但因为本身也有一个版本的Perl,所以可能会导致有问题,故在不确定已安装的版本能不能使用的情况下可以先跳过第五步。
安装Perl命令如下:
brew install perl
此命令就是通过命令行工具homebrew安装perl。
安装完成后,验证一下当前正在使用的perl版本,在终端使用命令:
perl -v
如果还是原版本,检查一下引入,在终端输入命令:
Where is perl
应该能看到/usr/local/bin/perl在/usr/bin/perl
前面,并且指向
/usr/local/Cellar/perl/{version}/bin/perl
,那么就退出当前Terminal(即终端),重新打开,应该就好了。
6. 安装Cpanm
该步骤进入正题,即安装Perl的包管理工具Cpanm。
cpanm是cpan的升级版。
在终端输入命令如下:
brew install cpanm
7. 通过cpanm安装JSON包
在终端输入命令如下:
sudo cpanm install JSON
即JSON包安装完成。
3. 使用Perl处理数据
TCGA上下载的相关数据如下:
进入文件夹后
我们需要处理的就是每个文件夹里的.gz结尾的文件,整理成矩阵格式的数据
1. 我们首先需要把所有文件夹下的.gz文件整理到一个文件夹里
可以手动粘贴到一个文件夹下,多的话会很笨重。接下来我们使用Perl脚本帮我们整理。
- 创建putFilesToOneDir.pl文件
我们可以创建一个以.pl结尾putFilesToOneDir.pl文件,放在要处理的文件夹同级目录,如下图
putFilesToOneDir.pl文件代码如下:
use strict;
use warnings;
use File::Copy;
my $newDir="files";
unless(-d $newDir)
{
mkdir $newDir or die $!;
}
my @allFiles=glob("*");
foreach my $subDir(@allFiles)
{
if((-d $subDir) && ($subDir ne $newDir))
{
opendir(SUB,"./$subDir") or die $!;
while(my $file=readdir(SUB))
{
if($file=~/\.gz$/)
{
#`cp ./$subDir/$file ./$newDir`;
copy("$subDir/$file","$newDir") or die "Copy failed: $!";
}
}
close(SUB);
}
}
- 使用终端在目标文件夹下执行putFilesToOneDir.pl脚本文件
首先要使用终端进入putFilesToOneDir.pl所在的文件夹,进入方式如下:
进入目标文件夹后,执行命令如下:
perl putFilesToOneDir.pl
执行完毕后,就会在putFilesToOneDir.pl文件的同级目录下生成一个files的文件夹,如下图
进去files文件夹后内容如下
所有的.gz文件已经已经复制到files文件夹里了。
以上给我启发的文章是该篇: