使用AWStats对网站流量进行统计

1. 安装AWStats

# yum install awstats

2. 使用AWStats

常用示例:
# /var/www/awstats/awstats.pl --config=localhost.localdomain -update -output > /var/www/awstats/index.html

--config=virtualhostname
    该参数用于导入配置文件。配置文件位于 /etc/awstats 或 /usr/local/etc/awstats 目录。程序会导入awstats.virtualhostname.conf或awstats.conf配置文件。
-update
    对数据统计结果进行更新。
-output
    输出HTML结果文件。

对Perl代码进行编译与加密

我写了一些Perl程序。为了防止程序在传播扩散过程中遭人随意篡改或出售而引起版权纠纷,于是需要对一些程序进行编译和加密处理。

1. 使用perlcc命令对perl代码进行编译

我安装的时CentOS 6系统,该系统中默认能的Perl版本时5.10版本。该版本中取消了perlcc命令以及相应的B::C, B::CC, B::Bytecode等模块。只有不搞于5.9.4版本的perl才会有perlcc命令。详情请见:http://perldoc.perl.org/perl5100delta.html。
perlcc的使用方法(http://search.cpan.org/~nwclark/perl-5.8.9/utils/perlcc.PL):

$ perlcc -o hello hello.pl

2. 使用pp命令对perl代码进行编译

perlcc命令可能对perl代码编译不成功,或成功后不能正常运行。推荐使用pp命令来进行该项工作。

2.1 安装 pp 和 PAR::Filter::Crypto 模块

pp 模块用于perl程序的编译和打包:http://search.cpan.org/~rschupp/PAR-Packer-1.035/lib/pp.pm
PAR::Filter::Crypto 模块用于加密: http://search.cpan.org/~shay/Filter-Crypto-2.07/lib/PAR/Filter/Crypto.pm

$ sudo cpan -i pp
$ sudo cpan -i PAR::Filter::Crypto

2.2 对perl程序进行编译和加密

$ pp -f Crypto -F Crypto -M Filter::Crypto::Decrypt -o hello hello.pl

CentOS系统NAT共享上网

现在有服务器A通过PPPOE联网,而服务器B直接和服务器A使用网线连接。若需要使B能正常上网,则需要将A的网络共享给B。此外,服务器A和B都具有多网口,并都是CentOS系统。将服务器A的网络共享给B,其对两台服务器的设置如下:

1. 服务器A的设置

1.1 服务器A的第一个网口进行pppoe连接

将网线插入到服务器A的第一个网口eth0,然后设置服务器A的PPPOE连接:

安装pppoe软件
# yum install rp-pppoe
配置pppoe设置,填写上网账号和密码,该pppoe配置名称为ppp0,保证对应的网口为eth0,设置。
# pppoe-setup
关闭ppp0的连接
# ifdown ppp0
开启ppp0的连接
# ifup ppp0
若发现ppp0连接不上,输入下面命令后再连接
# pppoe-stop

1.2 服务器A的第二个网口的IP设置

再将服务器A的eth1口和服务器B的eth1口进行连接。对服务器A的eth1口进行设置:

# setup
通过setup命令配置eth1的IP,设置其:
IP地址:192.168.1.1
子网掩码:255.255.255.0
网关:192.168.1.1
DNS1:211.69.143.1
DNS2:8.8.8.8

其中DNS1是我们学校提供的DNS服务器网址,DNS2是google提供的DNS网址。可能在不同的地方其DNS网址不一样。
然后,修改 eth0 和 eth1 的配置文件,设置这两个网口开机启动:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
ONBOOT=yes

1.3 将服务器A的ppp0网络进行NAT共享

首先,修改配置文件/etc/sysctl.conf的一个参数来开启使用NAT进行IP转发。

$ perl -p -i -e 's/net.ipv4.ip_forward =.*/net.ipv4.ip_forward = 1/' /etc/sysctl.conf

再使用iptables命令来对ppp0进行网络共享。

生成文件 /usr/local/bin/ishare 并使其可执行,执行该命令,即可共享 ppp0 网络。
# echo '#!/bin/bash
## Internet connection shating script
sysctl -w net.ipv4.ip_forward=1
sysctl -p
iptables -X
iptables -F
iptables -t nat -X
iptables -t nat -F
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -I POSTROUTING -o ppp0 -j MASQUERADE' > /usr/local/bin/ishare
# chmod 755 /usr/local/bin/ishare
# /usr/local/bin/ishare

若需要开机则启动该命令:
# echo '/usr/local/bin/ishare' >> /etc/rc.d/rc.local

1.4 重启服务器A的网络设置

服务器A的配置修改完毕,然后重启服务器A的网络,使配置生效:

# /etc/init.d/network restart
保证看到pppoe和eth1网络的正常启动。

2. 服务器B的设置

配置服务器B的 eth1 网口:

# setup
通过setup命令配置eth1的IP,设置其:
IP地址:192.168.1.2
子网掩码:255.255.255.0
网关:192.168.1.1
DNS1:211.69.143.1
DNS2:8.8.8.8

修改 eth1 的配置文件,设置这该网口开机启动:
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
ONBOOT=yes

再重启重启服务器B的网络设置
# /etc/init.d/network restart
保证看到eth1网络的正常启动。

3. 会出现的问题

以上设置完毕后,通过 ping 命令来检测服务器B是否能联网。若服务器ping不通192.168.1.1,则表示服务器B和服务器A连接不通;若能ping通192.168.1.1而不能联外网,则表示服务器A没有开启共享或服务器A没有联网。需要按照上述教程逐步排查。

mycology_学科杂志分区

生物大学科分区	MYCOLOGY小学科分区	杂志名称	2014-2015影响因子
1区	1区	STUDIES IN MYCOLOGY	13.25
2区	2区	FUNGAL DIVERSITY	6.221
2区	2区	PERSOONIA	5.3
3区	2区	MYCORRHIZA	3.459
3区	3区	Fungal Ecology	2.929
3区	3区	FUNGAL GENETICS AND BIOLOGY	2.587
4区	3区	MYCOLOGIA	2.471
4区	4区	Fungal biology	2.342
3区	3区	MEDICAL MYCOLOGY	2.335
4区	4区	MYCOSES	2.239
3区	3区	World Mycotoxin Journal	2.157
4区	4区	MYCOLOGICAL PROGRESS	1.913
4区	4区	MYCOPATHOLOGIA	1.528
4区	4区	CRYPTOGAMIE MYCOLOGIE	1.524
4区	4区	LICHENOLOGIST	1.454
4区	4区	Mycoscience	1.418
4区	4区	Revista iberoamericana de micología : órgano de la Asociación Espa ola de Especialistas en Micología1.056
4区	4区	SYDOWIA	1.021
4区	4区	INTERNATIONAL JOURNAL OF MEDICINAL MUSHROOMS	0.927
4区	4区	MYCOTAXON	0.705
4区	4区	JOURNAL DE MYCOLOGIE MEDICALE	0.573

blast进行重复序列屏蔽

1. 构建数据库的时候屏蔽参考序列的重复

segmasker 屏蔽氨基酸的低复杂序列
dustmasker 屏蔽核算序列的低复杂序列
windowmasker 按照序列重复的次数来屏蔽
convert2blastmask 根据小写字母来屏蔽

这几个都可以先得到一个含有屏蔽信息的文件。然后进行 makeblastdb 的时候输入这个文件,就可以相应的 masked 数据库了。

参考:http://www.ncbi.nlm.nih.gov/books/NBK279681/

2. 比对的时候对query序列的重复进行屏蔽

blast 比对的时候,可以对 query 序列进行屏蔽。 这几个参数估计这样理解:
-seg blastp的参数,是否对query 序列使用 segmasker来屏蔽低复杂重复,默认 no
-dust blastn的参数,是否对query 序列使用 dustmasker来屏蔽低复杂重复,默认 no
-lcase_masking 对query序列的小写部分进行屏蔽
-soft_masking 是否进行软屏蔽。软屏蔽则是不会使用屏蔽的序列进行种子比对,但是可以延长时候比对。硬屏蔽,则是直接不对屏蔽序列部分进行比对。blastn的默认值是yes,blastp的默认值是no

文档编辑经验点

1. 分节符的使用
点击:“页面布局”——“分隔符”——“分节符下一页”,在指定位置插入分节符,用于将文章不同的章节进行分割。这样可以保证:下一章节的第一行则总是在页面的最上面;下一章节的排版和上一章节可以不一致,例如纸张方向不一致。

2. 使用Endnote分别对每一章节插入文献
默认情况下Endnote是将文献插入到文章最后面的。若需要将文献插入到各个章节后面,则在Endnote中设置,例如:点击“Edit”——“Output Styles”——“Edit BMC genomics”——“Sections”——选中“Create a bibliography for each section”——退出保存该格式为另外一个名字,然后使用这个保存的格式。

3.

human genome h38 infromation downloading

Writing date: 2015-11-17.

The latest Human Genome assembly version is : GRCh38 (GCA_000001405.15) . GRch38: Genome Reference Consortium Human Reference 38.

The GRch38 genome browses:
UCSC http://genome.ucsc.edu/cgi-bin/hgGateway
Ensembl http://www.ensembl.org/Homo_sapiens/Info/Index
Vega http://vega.sanger.ac.uk/Homo_sapiens/Info/Index
GENCODE http://www.gencodegenes.org/human_biodalliance.html

The downloading website of GRch38 information in Ensembl: http://www.ensembl.org/info/data/ftp/index.html
I recommend to download gh38 sequence functional annotations from Ensembl: ftp://ftp.ensembl.org/pub/release-82/genbank/homo_sapiens/.

mdkir sequence_annotation
cd sequence_annotation
lftp -e "mirror -c --parallel=5 /pub/release-82/genbank/homo_sapiens/" ftp://ftp.ensembl.org
cd ..

The downloading website of GRch38 information in GENCODE: http://www.gencodegenes.org/releases/23.html
I recommend to download gh38 fasta and gff3 files from GENCODE. These 2 files would be the main fasta and gff3 files for most users.

wget ftp://ftp.sanger.ac.uk/pub/gencode/Gencode_human/release_23/GRCh38.primary_assembly.genome.fa.gz
wget ftp://ftp.sanger.ac.uk/pub/gencode/Gencode_human/release_23/gencode.v23.basic.annotation.gff3.gz

SVG更改坐标系原点位置

在使用FigTree画树后。由于设置字体大小>14,于是导致export出来的图片中最上面一行字被截断了,从而使图片很丑。于是export出SVG格式文件。然后修改SVG坐标系原点位置,将图片完整显示出来。

在 <svg xmlns… 这行尾部添加 transform=”translate(0,20)” 解决。

纤维素,半纤维素和果胶的成份及其降解酶

1. 纤维素

Cellulose is a dominant structural polysaccharide in plants composed ofβ -D-glucose units with β-1,4-linkages.

Cellulose decomposition requires multiple enzymes. In general, cellulose is degraded to cellodextrin or cellobiose by the synergistic action of two cellulases: endoglucanase (EC 3.2.1.4) and cellobiohydrolase (EC 3.2.1.91) (Tomme et al., 1995; Bayer et al., 1998). Degradation of cellodextrin or cellobiose into monomeric glucose units requires another enzyme, β-glucosidase (EC 3.2.1.21), that hydrolyzes non-reducing 1,4-linked-β-glucose (Henrissat et al., 1989).

2. 半纤维素

Cellulose fibers are cross-linked by other polysaccharides called `hemicelluloses’ to increase the physical strength of the cell wall. Hemicelluloses include xylan (β-D-xylose units with β-1,4-linkages), glucomannan (β-D-mannose units andβ -D-glucose units with β-1,4-linkages), xyloglucan (β-D-glucose units with β-1,4-linkages, andβ -D-xylose and β-D-glucose units withβ -1,6-linkages), 1,3-1,4-β-glucan (β-D-glucose units with β-1,3- and β-1,4-linkages), and a relatively small amount of other polysaccharides composed of β-D-glucose,β -D-xylose, β-D-mannose and other sugar units with various linkages (McNeill et al., 1984).

3. 果胶

The scaffold of cellulose and hemicelluloses is filled with pectin (α-D-galacturonic acid units with mainly α-1,4-linkages), which functions as a cement-like substance in the cell wall.

reference:
Sakamoto, Kentaro, and Haruhiko Toyohara. “A comparative study of cellulase and hemicellulase activities of brackish water clam Corbicula japonica with those of other marine Veneroida bivalves.” Journal of Experimental Biology 212.17 (2009): 2812-2818.

通过WIG格式将转录组数据展示到Gbrowse2中

1. WIG格式介绍

WIG格式(Wiggle Track Format),可用于将转录组数据进行可视化展示。bigWig格式则是WIG格式的二进制方式,可以使用wigToBigWig将WIG格式转换成BigWig格式。
一个 WIG 格式实例文件:

track type=wiggle_0 name="sampleA1" description="RNA-Seq read counts of species A"
variableStep chrom=chr01 span=10
10001    13
10011    15
10021    12
fixedStep chrom=chr01 start=100031 step=10 span=10
17
15
20

如上例子,有2个注意点:

1. 第一行必须如理示例中格式。只有name和description这两个参数的值可以随意填写。
2. 有两种方法进行数据描述。分别是variableStep和fixedStep。前者数据内容用2行表示,后者数据部分仅用1行表示。
3. 这两种方法的几个参素意义为:
    chrom    设置序列名
    start    fixStep中Locus的起始位置
    step     fixStep中Locus的步进
    span     一个数据对应碱基数目

2. 将Bam文件转换成WIG文件并进行压缩

使用bam2wig命令将bam文件转换成wig文件。bam2wig命令可以来自于Augustus软件。

$ bam2wig sampleA1.tophat.bam > sampleA1.wig

该wig文件的span参数值为1。因此,当基因组越大,则wig文件越大。可以考虑设置span的值为10,能有效减小wig文件的大小。例如编写如些perl程序进行压缩wig文件。

#!/usr/bin/perl
use strict;

my $usage = <<USAGE;
Usage:
    perl $0 RNA-Seq.wig &gt RNA-Seq.cutdown.wig
USAGE
if (@ARGV==0){die $usage}

open IN, $ARGV[0] or die $!;

$_ = <>;
print;

my $locus = 1;
my $count = 0;
while () {
    if (m/^variableStep/) {
        $count = int(($count + 0.5) / 10);
        print "$locus\t$count\n" if $count > 0;
        s/$/ span=10/;
        print;
        $locus = 1;
    }
    else {
        if (m/(\d+)\s+(\d+)/) {
            my ($num1, $num2) = ($1, $2);
            if ($num1 >= $locus + 10) {
                $count = int(($count + 0.5) / 10);
                print "$locus $count\n" if $count > 0;
                $locus = $num1;
                $count = 0;
            }
            $count += $num2;
        }
    }
}

3. 将wig文件转换成wig binary文件和一个gff3文件

使用Gbrowse2所带命令 wiggle2gff3.pl 将wig文件转换成wig binary文件和一个gff3文件。每个基因组序列得到一个二进制格式的wig文件。同时生成一个gff3文件。该gff3文件指向所有的wig binary文件。

$ mkdir $PWD/gbrowse_track_of_RNA_seq
$ wiggle2gff3.pl --source=sampleA1 --method=RNA_Seq --path=$PWD/gbrowse_track_of_RNA_seq --trackname=track_A1 sampleA1.wig > sampleA1.gff3

4. 导入gff3文件到数据库,并配置Gbrowse配置文件

导入gff3文件

$ bp_seqfeature_load.pl -a DBI::mysql -d gbrowse2_species -u train -p 123456 sampleA1.gff3

配置文件:

[RNA_Seq_sampleA1_xyplot]
feature        = RNA_Seq:sampleA1
glyph          = wiggle_xyplot
graph_type     = boxes
height         = 50
scale          = right
description    = 1
category       = RNA-Seq:sampleA1
key            = Transcriptional Profile

[RNA_Seq_sampleA1_density]
feature        = RNA_Seq:sampleA1
glyph          = wiggle_density
height         = 30
bgcolor        = blue
description    = 1
category       = RNA-Seq:sampleA1
key            = Transcriptional Profile