迷茫

日志

最近断断续续花了半年时间写的一篇文章被拒,使我最近一个星期来心情非常的糟糕,做什么事情也提不起精神,对于做实验也有点灰心。文章的评审意见非常中肯,自己也并不觉得太冤,主要问题是研究内容太过单薄,没有创新,回过来看文章也确实如此,也就是按照别人的方法克隆了一个植物抗逆中比较重要的基因而以。我想主要原因是思维方法还没有转变过来。在公司做生物信息时,主要是客户提供问题,我们负责找到问题的答案或者相关资料就可以了,就像做工程,采用合适的方法找到合适的材料放在恰当的地方就可以,例如写代码时将别人的代码复制过来再根据需要自己修改一下就变成了自己的代码了,而搞研究的话这种行为就被称人“没有创新”。就拿我的这个文章做个例子吧,采用同源克隆获得基因序列,然后测序验证,最后分析序列结构和功能。实验确实做了很多,但没有一点方法是新的,没有一个发现是新的,就像公司做克隆一样,可以程序化生产。在做试验之间没有先行搞明白这个基因是主要功能是什么,有什么特性,现在已经研究到什么阶段了,还有哪些需要解决的问题,我又能做些什么,预计多长时间,可以做到什么程度,而不是简单的按照吩咐克隆这个基因就可以了。觉得需要把这些弄清楚再开始做试验,再在试验发现新问题,新思想。如果这样做了也不会导致现在文章都写完了,心里还一点底都没有。可是说起来简单,要做到那些是非常难的,以我现在的速度,看一篇文章得花一天,把那些前期工作做完, 一年时间就过去了,在这一年时间里,如果一点产出都没有,你就会受到别人质疑,年终评审也会产生问题,但如果不按照这个程序来做的话,就导致这个结局,做了一年的实验,最后还不知道自己在做什么,做出来有什么用,心里感觉非常的虚,非常踌躇迷茫,但时间又一天天过去,自己却还什么也没有,我到底要怎么办呢!

Perl输出函数传递的二维数组

最近用DBI模块写个了mysql接入函数,但得到的return一直不能输出结果,后来经过思考,原来是二维数组传递的问题,终于解决了,特此为记。

下面这个是mysql接入函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sub mysql_connect(){
        use DBI;
	my ($sql,$db)=@_;
	my $usr="selectonly";
	my $passwd="yuyin_110";
	my $dbh=DBI->connect("DBI:mysql:$db",$usr,$passwd);
 
	if(!$dbh){
		print "connect lost\n";
	}else{
		my $sth=$dbh->prepare($sql)or die "Can’t prepare $sql: $dbh->errstr\n";
		$sth->execute()or die "Can’t execute the query: $sth->errstr";
		my $data=$sth->fetchall_arrayref();
		$sth->finish;
		return $data;
	}
}

现在的问题是输出$data的内容,而$data返回的是一个二维数组的引用地址,可以用以下方法分层输出这个数组:

1
2
3
4
5
6
7
8
9
10
11
	my $sql="select * from test limit 1000";
	my $b=mysql_connect($sql,"test");
	my @r=@$b;    #####因为$b获得的只是一个引用地址,可以用@变成数组,这个数组这储存了一系列一维数组地址
	foreach(@r){
		my @each=@$_;            ######道理与获得二维地址一样
		foreach(@each){
			print  $_."\t";
		}
		print  "\n";
 
	}

perl DBI模块详解

Perl DBI是Perl数据库接口(Perl Database Interface,简称DBI)。通过提供一系列在内部上能够转化成原始调用函数的功能,DBI模块为很多不同的数据库提供了一个统一的接口,包括mysql,Oracle等。
可移植的DBI方法:
connect 建立到一个数据库服务器的连接
disconnect 断开数据库服务器的连接
prepare 准备执行一个SQL语句
继续阅读

吃豆腐新解

原来只知道吃豆腐是“占便宜”的意思,特别是肌肤之亲的“便宜”,今天吃饭刚好吃到了豆腐,忽然想到女人的胸部质感不正像豆腐一样吗,那吃豆腐不能成了吃奶了,这个词真的取得太形象啦,表面意思只是肌肤之亲的占便宜,其实深层含义就是想吃那个的意思,这是不是新发现,如果不是那我真佩服古人的语言智慧啦,如果是新发现,那我太佩服我自己啦(邪恶)。现在听到好多女孩子动不动就说别人吃她豆腐,看来是没有明白这深层含义,被人占便宜了还不知道,看来是我想歪啦!由此还让我想到了一个非常有意思的东西————日本豆腐,很多中国人喜欢吃,看来吃饭的时候也不忘占下日本女人的便宜,不知是哪位天才想到的这个名称!

HTML各种颜色的HEX和RGB

颜色由红色、绿色、蓝色混合而成。

颜色值

颜色由一个十六进制符号来定义,这个符号由红色、绿色和蓝色的值组成(RGB)。

每种颜色的最小值是0(十六进制:#00)。最大值是255(十六进制:#FF)。

这个表格给出了由三种颜色混合而成的具体效果:

Color Color HEX Color RGB
  #000000 rgb(0,0,0)
  #FF0000 rgb(255,0,0)
  #00FF00 rgb(0,255,0)
  #0000FF rgb(0,0,255)
  #FFFF00 rgb(255,255,0)
  #00FFFF rgb(0,255,255)
  #FF00FF rgb(255,0,255)
  #C0C0C0 rgb(192,192,192)
  #FFFFFF rgb(255,255,255)

继续阅读

最新Boost和bjam的快捷安装

boost是一个可移植,能提供源代码的C++库,是C++标准化进程的引擎之一,由C++标准委员会工作组成员发起。最近因为要安装cufflinks(分析转录本数据的程序),但cufflinks是依附于boost的,所以得先安装boost,而安好boost后需要bjam编译,网上找了一些bjam安装教程,但大多是以前版本的,我安的是最新的boost_1_55_0,这些教程都不适用,而且最新的bjam是boost-jam-3.1.18.tgz,在这个版本之后就不再更新了,用这个bjam编译显示与boost版本不一致,说明这种方法不行,凭借多年搞程序的经验(不排除运气成分),运行了一下boost_1_55_0中的./bootstrap.sh程序,bjam就出现了boost中自身就带了bjam程序,同时产生了一个b2的可执行程序,./bjam –toolset=gcc link=static runtime-link=static install ,下面简单介绍一下一些主要参数的含义:
1、toolset:指定编译器,如gcc, msvc, msvc-9.0, borland等;
2、prefix/stagedir:stage时使用stagedir,install时使用prefix,指定编译生成的路径(如–prefix=”./bjam/”,如果不指定,默认为/usr/local/);
3、link:生成动态链接库或者静态链接库,shared为动态,static为静态,动态库本身只是一些索引,本身没有库文件,要用到的时候根据这些索引可以找到这些库文件,静态是已包含全部库文件,如果硬盘条件允许的话建议用静态,如果用到的库文件不是很多而且不想浪费太多资源的话就用动态;
4、runtime-link:程序运行时采用的库,同样包含动态(shared)和静态(static)两种;
5、stage/install:stage表示只生成库(dll和lib),install还会生成包含头文件的include目录;
6、withou/with:不编译或者编译哪些库;

Bioperl的简单安装

按照Bioperl上介绍的方法在linux下安装Bioperl老是安不上,或者是安装上了,但不能用,上面介绍的几种方法都试了,全不行,后面自己想了个办法,就是利用cpan只对要用到的模块进行单独安装,简单适应,如果你和我碰到了同样的问题不妨试试。
0、用root用户登录,不能由于权限问题,安装不上去。
1、确定cpan能用。
>perl -MCPAN -e shell
cpan>install Bundle::CPAN
cpan>q
2、升级cpan,保证安装的模块是最新的。
>cpan
cpan>install Module::Build
cpan>o conf prefer_installer MB
cpan>o conf commit
cpan>q
3、安装Bioperl最重要的模块SeqIO(该模块可以实现文件格式转换,计算序列长度,blast信息提取等),中间会有些选项要求选择,一路回车采用默认的就行了。
cpan>install Bio::SeqIO
4、安装SeqFeature模块(序列特征信息的获取或解析)。
cpan>install Bio::SeqFeature
5、安装GenBank模块
cpan>install Bio::GenBank
6、安装AlignIO和AlignI模块(数据格式格式转换)。
cpan>install Bio::AlignIO
cpan>install Bio::AlignI
7、安装DNAstatistics模块(序列统计分析,进化距离计算)。
cpan>install Bio::DNAstatistics

上面是一引起常用的模块,至于其它的一些模块如果要用到就按这种方法安装就行了。
利用cpan安装的模块默认路径是当前用户的perl5/lib/perl5目录下面,如/root/perl5/lib/perl5/,如果运行perl -e “use Bio::SeqIO”还是找不到该模块的话,可以将 /当前用户/perl5/lib/perl5/下的文件拷贝到@INC目录中,如/usr/local/lib64/perl5/中,最好也将/当前用户/perl5/bin/中的文件拷贝到/usr/local/bin/perl5中,以后可在那里调用。

linux 安装和使用NCBI剪接边界工具splign

splign是NCBI中一个比对cDNA和genome的一个工具,通过splign可以很方便的找到cDNA各个外显子。Windows下安装非常简单,下载后就可以直接用了,但linux版本下运行需要一些相关的包,下面介绍一下splign在linux下的安装和使用(windows中splign的使用和linux一样)。
首先下载相应的版本,我的linux系统是ubuntu 64位的,下载Linux x64,解压”gunzip splign”,修改文件属性为可执行文件”chomd 777 splign”,试着运行一下”./splign”,一般会报错”splign: error while loading shared libraries: libpcre.so.0: cannot open shared object file: No such file or directory”,那是因为缺少模块 “libpcre.so.0″, 应下载安装pcre包(pcre-8.21)。 继续阅读