使用BioEdit生成和绘制蛋白质进化树

BioEdit是一个功能很强大的生物学软件,整合了很多常用的生物信息工具。如:多序列比对,质粒图谱的绘制,查看DNA序列的酶切位点等等。

使用BioEdit可以方便的生成和绘制进化树。(另请参考:进化树大杀器MEGA的使用

首先,打开序列。我们这里是一个含有6个蛋白质的Fasta格式的文件。如下所示:

然后从菜单中选择“ClustalW多序列比对”,会弹出下一个对话框,设置一些程序运行的参数。

我们这里采用了默认配置,直接点击“Run ClustalW”按钮。ClustalW程序会以命令行的形式运行,程序运行会在多序列比对完成之后,显示多序列比对的结果,并生成进化树。

“进化树”呢?别着急,进化树已经生成了。现在,我们关闭BioEdit软件。进化树已经在它该在的地方了,我们这就去把它挖出来。

我们来到了BioEdit的安装目录(通常是“C:\BioEdit”),这里有一个Temp临时文件夹,打开临时文件夹,里面就要我们要的东西了。

我这里有5个文件,你那里说不定会有别的临时文件。如果无法确定,不妨把这些文件都删除了,重头运行一遍,就这剩下这5个文件了。

正如文件名昭示的那样,第一个文件是一个log文件,第二个文件时程序运行的参数设置,第三个文件是多序列比对的结果,第四个文件时我们的蛋白质序列的一份拷贝,最后一个就是我们需要的进化树了。
这几个文件其实都是文本文件,可以用“记事本”之类的软件打开的。最后一个进化树用TreeView软件打开,就会得到这样的结果。

这是一棵什么树?叶子的标示都不对啊。不好意思,忘记告诉你了,这个dnd文件需要修改一下。将这些“0000000XX”的编号改成我们的序列名称“Seq1,Seq2”等等。用文本编辑器打开最前面和最后面的那个文件。按照log文件中的指示,把dnd文件中的编号改过来吧。

会变成这个样子。

这是你想要的结果吗?

我们还有一下几种展示方案,敬请选择。

好了,就这样结束了。如果觉得有问题,请留言吧。BioEdit的,进化树的都可以。

对了,忘记告诉你,如何安装Treeview这个软件了。BioEdit附带了这个软件,不过默认似乎没有安装,在BioEdit的安装目录,有安装包,自行安装一下吧。

注意:以上内容在WindowsXP中测试通过,Win7什么的,不能保证哦!

紫外线灯管(紫外线杀菌灯)的构成和原理

紫外线灯管的构成和原理

紫外线杀菌灯(UV灯)实际上是属于一种低压汞灯,和普通日光灯一样,利用低压汞蒸汽(<10-2Pa)被激发后发射紫外线。

不同的是日光灯的灯管采用的是普通玻璃,254nm紫外线不能透出来,只能被灯管内壁的荧光粉吸收后激发出可见光。如果改变荧光粉的成分和比例,它就可以发出我们通常所见的不同颜色的光。

紫外线杀菌灯

1、发光原理。紫外线光在水银放电管中产生。水银放电管是包含两个电极和绝缘器的一根石英玻璃管,管体内悬浮着水银蒸汽(汞蒸气)这种惰性气体。

当紫外线灯管通电且被激发后,水银在254nm,310nm和365nm处达到最高点,产生在200 和400nm之间的紫外线光辐射,其中峰值365nm类型的紫外线灯管,被广泛应用于工业上表面加工作业的干燥固化;254nm及特制185nm的灯管常用于杀菌消毒、污水处理、油烟净化,甚至是光清洗。

紫外线灯可以被生产成几毫米到超过2米的长度,功率可做到杀菌灯中不足1W,固化灯至25KW。 这些固化灯的寿命从1000到2500小时内变化,杀菌灯的寿命从6000到20000小时内变化。

2、灯管。一般杀菌灯的灯管都采用石英玻璃制作,因为石英玻璃对紫外线各波段都有很高的透过率,达80%-90%,并且同时能忍受800°C的高温,是做杀菌灯的最佳材料。

因成本关系与用途不同,也有用紫外线穿透率<50%的高硼砂玻璃管代替石英玻璃的。高硼玻璃的成本很低,但它在性能上远比不上石英杀菌灯,其杀菌效果有相当大的差异。

3、电极:电极由钨制成。

4、连线。用钼板来连接电极和电线,可以和石英一起膨胀。并且当加热时仍然能忍受高电压。

5、灯头。石英玻璃与普通玻璃在性能上有很大的差别,主要是热膨胀系数不同,一般不能封接铝盖灯头,所以杀菌灯的灯头材质多采用胶木、塑料或陶瓷。

使用shell删除文本中的重复行

使用uniq命令得到不重复的行
现有文件如下:
—————————————————
my friends, chenhong
my friends, chenhong
my friends, chenhong
my teacher, liyong
my teacher, liyong
my teacher, liyong
my father, wuzhongyi
my father, wuzhongyi
my father, wuzhongyi
my sister, wushiying
my sister, wushiying
my sister, wushiying
—————————————————
现在欲把文件变成如下:
—————————————————
my friends, chenhong
my teacher, liyong
my father, wuzhongyi
my sister, wushiying
—————————————————

命令:
[cc lang=”bash”]uniq file[/cc]

使用sort和awk删除存在特定列重复的行

文件如下:
———————-

aa  cc  dd ee

11 34  45 22

bb  cc dd ee

ff cc dd ee

———————-
现在欲把文件变成如下:
———————-

aa  cc  dd ee

11 34  45 22

———————-
[cc lang=”bash”]sort -k2,3 |awk ‘{if(str!=$2$3){str=$2$3;print}}'[/cc]

bbs.chinaunix.net/viewthread.php?tid=473706
www.linuxsir.org/bbs/thread132848.html

使用Matlab画中国地图

使用Matlab绘制中国地图十分方便,使用Mapping工具箱中的几条命令。

介绍如下:

设置坐标轴:setm命令。
因为地球是圆的,所以地图的绘制涉及到投影的问题,跟普通的2-D或者3-D作图差别明显。setm命令专门用来设置map axis。例如:
[cc lang=”matlab”]
ax=worldmap(‘china’); %worldmap命令生成一个map axis,其各项属性可以用getm(ax)来获得
setm(ax,’grid’,’off’) % 关闭grid,其实就是经线和纬线
setm(ax,’frame’,’off’) % 关闭边框
setm(ax,’parallellabel’,’off’) % 关闭坐标轴标记,相当于X轴
setm(ax,’meridianlabel’,’off’) % 关闭坐标轴标记,相当于Y轴
[/cc]

绘制地图:geoshow或者mapshow
这两个命令差别不大,系统在判断参数的时候会自动在二者之间切换。不过他们其实还是有差别的。geoshow会根据经度和纬度来作图,如果我们的坐标轴以经纬度来标记,那么用mapshow图像就会不正确。
例如:
[cc lang=”matlab”]
geoshow(file) % 可以直接读取文件中数据作图
[/cc]
[cc lang=”matlab”]
mapshow(file) % 可以直接读取文件中数据作图
[/cc]

地图数据下载
中国的地图数据可以从国家基础地理信息系统的网站上下载,网址是nfgis.nsdi.gov.cn/

地图数据说明
从国家基础地理信息系统的网站上下载得到的数据,分为两种:一种以“l”结尾,经过笔者的考虑,应当是line(线,曲线)的缩写,这些数据是线性的数据,描述了边界。另外一些数据,以“p”结尾,应当是polygon(多边形)的意思,这些数据描述了不同的区块。
另外,每组数据都有3个文件,分别以“shp”,“dbf”,“shx”为扩展名。需要注意的是,虽然我们在作图时只用到了“shp”数据,但是显然这样的一组数据才是完整的数据。

图片如下:
国家基础地理信息系统™版权所有
这是一个以bou1_4l为基础的作图,可以看到南海的断续线。图内没有填充。

这是一个以bou1_4p为基础的作图,不可以看到南海的断续线。图内有填充。
这显然是由于曲线没有面积造成的。

参考资料:
MATLAB绘制中国地图 blog.sciencenet.cn/home.php?mod=space&uid=428536&do=blog&id=307997

在MATLAB中创建色彩绚丽的柱状图

首先,看一下效果图。

默认条件下的柱状图

漂亮的柱状图

渐变着色的柱状图

代码如下:

[cc lang=”matlab”]
% 彩色柱状图
%% 用到的数据
n = 13;
Z = rand(n,1);
%% 默认图片
bar(Z);
%% 简单的作图
% 这个图根据数据列中值的大小着色。每列中的
% 值越大,颜色越突出
figure
h=bar(Z);
colormap(summer(n));
ch = get(h,’Children’);
fvd = get(ch,’Faces’);
fvcd = get(ch,’FaceVertexCData’);
[~, izs] = sortrows(Z,1);
for i = 1:n
row = izs(i);
fvcd(fvd(row,:)) = i;
end
set(ch,’FaceVertexCData’,fvcd)
%% 更加漂亮的图片
% 图片会以渐变的方式着色,效果非常不错
figure
h=bar(Z);
ch = get(h,’Children’);
fvd = get(ch,’Faces’);
fvcd = get(ch,’FaceVertexCData’);
[zs, izs] = sortrows(Z,1);
k = 128; % 准备生成128 *3 行的colormap
colormap(summer(k)); % 这样会产生一个128 * 3的矩阵,分别代表[R G B]的值
% 检视数据
whos ch fvd fvcd zs izs
%
%   Name       Size            Bytes  Class     Attributes
%
%   ch         1×1                 8  double
%   fvcd      66×1               528  double
%   fvd       13×4               416  double
%   izs       13×1               104  double
%   zs        13×1               104  double
%
shading interp % Needed to graduate colors
for i = 1:n
color = floor(k*i/n); % 这里用取整函数获得color在colormap中行
row = izs(i); % Look up actual row # in data
fvcd(fvd(row,1)) = 1; % Color base vertices 1st index
fvcd(fvd(row,4)) = 1;
fvcd(fvd(row,2)) = color; % Assign top vertices color
fvcd(fvd(row,3)) = color;
end
set(ch,’FaceVertexCData’, fvcd); % Apply the vertex coloring
set(ch,’EdgeColor’,’k’)
[/cc]