标签归档:未分类

在c语言中,变量名 地址 存储单元的内容 分别怎样储存?

Published / by clownwyb / 在c语言中,变量名 地址 存储单元的内容 分别怎样储存?有1条评论

例如: int a; a=5; 其中的a,5以及5的地址分别怎么存储?

我更想知道a是否储存了,怎样储存的?5不是被随机分配一地址,假如它被分配了两个字节为2001-2002,那么2001就会成为他的地址,那2001又怎样储存的?

 

定义int a;时,编译器分配4个字节内存,并命名该4个字节的空间名字为a(即变量名),当用到变量名a时,就是在使用那4个字节的内存空间. 5是一个常数,在程序编译时存放在代码的常量区存放着它的值(就是5),当执行a=5时,程序将5这个常量拷贝到a所在的4个字节空间中,就完成了赋值操作. ======================================= a是我们对那个整形变量的4个字节取的"名字", 是我们人为给的,实际上计算机并不存储a这个名字,只是我们编程时给那4个字节内存取个名字好用.实际上程序在编译时,所有的a都转换为了那个地址空间了.编译成机器代码后,没有a这个说法了.a这个名字只存在于我们编写的代码中. 5不是被随机分配的,而总是位于程序的数据段中,可能在不同的机器上在数据段中的位置可能不一致,它的地址其实不能以我们常用到的内存地址来理解,因为牵扯到一个叫"计算机寻址方式"的问题,所以写很多都解释不清楚,你自己找本汇编语言的书来学一下吧.........

【转】本地blast的详细用法 ZZ

Published / by clownwyb

本地blast的详细用法

本地Blast的详细使用方法

blastall -p blastn -i myRNA.fasta -d humanRNA.fasta -o myresult.blastout -a 2 -F F -T T -e 1e-10
解释如下:
blastall: 这是本地化/命令行执行blast时的程序名字!(Tips:blastall直接回车就会给出你所有的参数帮助,但是英文的)

-p: p 是program的简写,program在计算机领域中是程序的意思。此参数是指定要使用何种子程序,所谓子程序,就是针对不同的需要,如核酸序列和核酸序列进行比对、蛋白质序列和蛋白质序列进行比对、假设翻译后核酸序列于蛋白质序列进行比对,选择相应的子程序: blastn 是用于核酸对核酸 blastp 是蛋白质对蛋白质序列 等等,一共5个自程序。

-i: i 是input的简写,意思是输入文件,就是你自己的要进行比对的序列文件(fasta格式)

-d: d是database的简写,意思是要比对的目标数据库,在例子中就是humanRNA.fasta (别忘了要formatdb)

-o: o是output的简写,意思是结果文件名字,这个根据你自己的习惯起名字,可以带路径,(上边两个参数-i -d 也都可以带路径)
*注意以上4个参数是必须的,缺一不可,下面的参数是为了得到更好的结果自己可调的参数,如果你不加也没有关系,blastall程序本身会给一个默认值!

-a: 是指计算时要用的CPU个数,我的机器有两个CPU,所以用-a 2,这样可以并行化进行计算,提高速度,当然你的计算机就一个CPU,可以不用这个参数,系统默认值为1,就是一个CPU

-F: 是filter的简写,blastall程序中有对简单的重复序列和低复杂度的一些repeats过滤调,默认是T (注意以后的有几种参数就两个选项,T/F T就是ture,真,你可以理解为打开该功能; F就是false,假,理解为关闭该功能)

-T: 是HTML的简写,是指blast结果文件是否用HTML格式,默认是F!如果你想用IE看,我建议用-T T

-e: 是Expectation value,期望值,默认是10,我用的10-10!

BLASTALL 用法
a.格式化序列数据库
格式化序列数据库— —formatdb
formatdb简单介绍:
formatdb处理的都是格式为 ASN.1和 FASTA,而且不论是核苷酸序列数据库,还是蛋白质序列数据库;不论是使用Blastall ,还是Blastpgp,Mega Blast应用程序,这一步都是不可少的。

formatdb命令行参数:
formatdb -    得到formatdb 所有的参数显示(见附录二)和介绍,

主要参数的说明:
-i 输入需要格式化的源数据库名称 Optional

-p 文件类型,是核苷酸序列数据库,还是蛋白质序列数据库

T – protein   F - nucleotide [T/F] Optional default = T

-a 输入数据库的格式是ASN.1(否 则是FASTA)

T - True,     F - False.    [T/F] Optional default = F

-o 解析选项

T - True: 解析序列标识并且建立目录

F - False: 与上相反

[T/F] Optional default = F
命令示例:
formatdb -i ecoli.nt -p F -o T
运行此命令就会在当前目录下产生用于BLAST搜索的7个文件,一旦如上的formatdb命令执行完毕,就不 再需要ecoli.nt,可以移除。此时,blastall可以直接使用。

b.Blastall常用参数简析
-p Program Name [String]
所用程序名称[String],用 户可以根据需要从blastn,blastp,blastx,tblastn,tblastx中任选一程序。

-d Database [String] default = nr
所用序列数据库的名称 [String],默认为:nr

-i Query File [File In] default = stdin
所用查询序列文件[File In], 默认为:stdin,本文例为 test.txt

-e Expectation value (E) [Real]   default = 10.0
期望值[Real]   默认为10.0 描述搜索某一特定数据 库时,随机出现的匹配序列数目。

-m alignment view options: 比对显 示选项,其具体的说明可以用以下的比对实例说明
0 = pairwise,显示具体匹配信息(缺省)
1 = query-anchored showing identities,查询-比上区域,显示一致性
2 = query-anchored no identities,查询-比上区域,不显示一致性
3 = flat query-anchored, show identities,查询-比上区域的屏文形式,显示一致性
4 = flat query-anchored, no identities,查询-比上区域的屏文形式,不显示一致性
5 = query-anchored no identities and blunt ends,查询-比上区域,不显示一致性,无突然的结束
6 = flat query-anchored, no identities and blunt ends,查询-比上区域的屏文形式,不显示一致性
7 = XML Blast output,XML格式的输出
8 = tabular,TAB格式的输出
9 =tabular with comment lines,带注释行的TAB格式的输出
10 =ASN, text,文本方式的ASN格式输出
11 =ASN, binary [Integer] default = 0,二进制方式的ASN格式输出

-m 8 用法举例说明如下:
A_query    B_Sbjct    97.61    585    3    3    309    886    94498    95078    0.0    1017
A_query    B_Sbjct    100.00    303    0    0    913    1215    95092    95394    2e-172    601
A_query    B_Sbjct    100.00    209    0    0    1    209    94196    94404    3e-116    414
A_query    B_Sbjct    100.00    123    0    0    1234    1356    95413    95535    6e-65    244
A_query    B_Sbjct    100.00    41    0    0    210    250    94096    94136    5e-16    81.8
A_query    B_Sbjct    100.00    35    0    0    251    285    94440    94474    2e-12    69.9
A_query    B_Sbjct    100.00    29    0    0    885    913    95747    95775    7e-09    58.0
A_query    A_query    97.61    585    3    3    309    886    403    983    0.0    1017
A_query    A_query    100.00    303    0    0    913    1215    997    1299    2e-172    601
A_query    A_query    100.00    209    0    0    1    209    101    309    3e-116    414
A_query    A_query    100.00    123    0    0    1234    1356    1318    1440    6e-65    244
A_query    A_query    100.00    41    0    0    210    250    1    41    5e-16    81.8
A_query    A_query    100.00    35    0    0    251    285    345    379    2e-12    69.9
A_query    A_query    100.00    29    0    0    885    913    1652    1680    7e-09    58.0
结果12列
Query id,Subject id,% identity,alignment length,mismatches,gap openings,q. start,q. end,s. start,s. end,e-value,bit score

-------------------------------------------------------------------------------------------------------------

-o BLAST report Output File [File Out] Optional default = stdout,BLAST报告的输出文件[File Out] 默认为:stdout

-F Filter query sequence (DUST with blastn, SEG with others) [String] default = T
查询序列过滤,将那些 给出影响比对结果的低复杂度区域过滤掉。用blastn进行查询的序列用DUST程序过滤,其他的用SEG过滤 。对DUST和SEG的详细情况,用户可以自己查询资料。

-G Cost to open a gap (zero invokes default behavior) [Integer]   default = 0
空位开放罚分[Integer] (设为0则调用默认行为)   默认为0分

-E Cost to extend a gap (zero invokes default behavior) [Integer] default = 0
空位扩展罚分[Integer] (设为0则调用默认行为) 默认为0分

-T Produce HTML output [T/F] default = F
以网页形式打印

-X X dropoff value for gapped alignment (in bits) (zero invokes default behavior)
blastn 30, megablast 20, tblastx 0, all others 15 [Integer],default = 0

-I Show GI's in deflines [T/F]   default = F
提示行显示GI number 默认不显示

-q Penalty for a nucleotide mismatch (blastn only) [Integer] default = -3
核酸序列基对不匹配所罚分数(blastn only) [Integer] 默认罚3分

-r Reward for a nucleotide match (blastn only) [Integer] default = 1
核苷酸序列基对匹配所加分数(blastn only) [Integer] 默认加1分

-g Perfom gapped alignment (not available with tblastx) [T/F] default = T
是否执行带缺口的比对(not available with tblastx) 默认为是 

-a Number of processors to use [Integer] default = 1
使用处理器的数目[Integer] 默认为单机

-B Number of concatenated queries, for blastn and tblastn [Integer] Optional default = 0
需要联配查询的序列数目 for blastn and tblastn [Integer] 默认为单序列

-M Matrix [String],default = BLOSUM62 打分矩阵,默认BLOSUM62

-W Word size, default if zero (blastn 11, megablast 28, all others 3) [Integer] default = 0
所开窗口

-w Frame shift penalty (OOF algorithm for blastx) [Integer] default = 0
窗口罚分

 

4.-v参数和-b参数:
这两个参数都是限制输出结果的数量的。
-v (integer):规定输出中每一个query的比对列表最多显示subject个数(即"Sequences producing significant alignments:"后面列出的subjects数目),缺省为500条。
-b (integer):规定输出中每个query最多显示与多少条subject的比对条形图(即每条query的结果中">"的个数),缺省为250条。
如果同时使用"-m 8"参数,则输出结果中的subjects数量和"-b"参数规定的数量一致。
在database数据中能和query比上的subjects过多的时候,这两个参数就能够帮助我们把其中比对结果最好的一部分挑出来,屏蔽掉相对差的结果。当然有些时候我们是不希望屏蔽掉这些结果的,比如在某个大基因组的Contig数据集中统计一条转座子的重复次数,就需要把"-v"和"-b"参数定的足够大以显示所有结果。
5.-T参数:
-T (T/F)参数用于决定是否输出html格式的比对结果,缺省值为"F"。选择"-T T"就会输出html格式的比对结果。如果在建库过程中选择了"-o T",并且database数据中的序列是以gi号命名的,那么在html结果中以gi号命名的相应序列会自动链接到NCBI的数据库上。如图3-14:

图3-16 html格式的blast结果
6.-M参数:
做有关蛋白的比对时,需要用"-M"参数指定取代矩阵,比如BLOSUM45、BLOSUM62、BLOSUM80等,缺省值为BLOSUM62。这三个矩阵都可以在blast安装目录的data目录下找到。BLOSUM矩阵后面的数字代表比对结果允许的最低相似度百分比,我们可以根据不同的精度需求选择不同的取代矩阵。BLOSUM62的内容如下:
#  Matrix made by matblas from blosum62.iij
#  * column uses minimum score
#  BLOSUM Clustered Scoring Matrix in 1/2 Bit Units
#  Blocks Database = /data/blocks_5.0/blocks.dat
#  Cluster Percentage: >= 62
#  Entropy =   0.6979, Expected =  -0.5209
A  R  N  D  C  Q  E  G  H  I  L  K  M  F  P  S  T  W  Y  V  B  Z  X  *
A  4 -1 -2 -2  0 -1 -1  0 -2 -1 -1 -1 -1 -2 -1  1  0 -3 -2  0 -2 -1  0 -4
R -1  5  0 -2 -3  1  0 -2  0 -3 -2  2 -1 -3 -2 -1 -1 -3 -2 -3 -1  0 -1 -4
N -2  0  6  1 -3  0  0  0  1 -3 -3  0 -2 -3 -2  1  0 -4 -2 -3  3  0 -1 -4
D -2 -2  1  6 -3  0  2 -1 -1 -3 -4 -1 -3 -3 -1  0 -1 -4 -3 -3  4  1 -1 -4
C  0 -3 -3 -3  9 -3 -4 -3 -3 -1 -1 -3 -1 -2 -3 -1 -1 -2 -2 -1 -3 -3 -2 -4
Q -1  1  0  0 -3  5  2 -2  0 -3 -2  1  0 -3 -1  0 -1 -2 -1 -2  0  3 -1 -4
E -1  0  0  2 -4  2  5 -2  0 -3 -3  1 -2 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4
G  0 -2  0 -1 -3 -2 -2  6 -2 -4 -4 -2 -3 -3 -2  0 -2 -2 -3 -3 -1 -2 -1 -4
H -2  0  1 -1 -3  0  0 -2  8 -3 -3 -1 -2 -1 -2 -1 -2 -2  2 -3  0  0 -1 -4
I -1 -3 -3 -3 -1 -3 -3 -4 -3  4  2 -3  1  0 -3 -2 -1 -3 -1  3 -3 -3 -1 -4
L -1 -2 -3 -4 -1 -2 -3 -4 -3  2  4 -2  2  0 -3 -2 -1 -2 -1  1 -4 -3 -1 -4
K -1  2  0 -1 -3  1  1 -2 -1 -3 -2  5 -1 -3 -1  0 -1 -3 -2 -2  0  1 -1 -4
M -1 -1 -2 -3 -1  0 -2 -3 -2  1  2 -1  5  0 -2 -1 -1 -1 -1  1 -3 -1 -1 -4
F -2 -3 -3 -3 -2 -3 -3 -3 -1  0  0 -3  0  6 -4 -2 -2  1  3 -1 -3 -3 -1 -4
P -1 -2 -2 -1 -3 -1 -1 -2 -2 -3 -3 -1 -2 -4  7 -1 -1 -4 -3 -2 -2 -1 -2 -4
S  1 -1  1  0 -1  0  0  0 -1 -2 -2  0 -1 -2 -1  4  1 -3 -2 -2  0  0  0 -4
T  0 -1  0 -1 -1 -1 -1 -2 -2 -1 -1 -1 -1 -2 -1  1  5 -2 -2  0 -1 -1  0 -4
W -3 -3 -4 -4 -2 -2 -3 -2 -2 -3 -2 -3 -1  1 -4 -3 -2 11  2 -3 -4 -3 -2 -4
Y -2 -2 -2 -3 -2 -1 -2 -3  2 -1 -1 -2 -1  3 -3 -2 -2  2  7 -1 -3 -2 -1 -4
V  0 -3 -3 -3 -1 -2 -2 -3 -3  3  1 -2  1 -1 -2 -2  0 -3 -1  4 -3 -2 -1 -4
B -2 -1  3  4 -3  0  1 -1  0 -3 -4  0 -3 -3 -2  0 -1 -4 -3 -3  4  1 -1 -4
Z -1  0  0  1 -3  3  4 -2  0 -3 -3  1 -1 -3 -1  0 -1 -3 -2 -2  1  4 -1 -4
X  0 -1 -1 -1 -2 -1 -1 -1 -1 -1 -1 -1 -1 -1 -2  0  0 -2 -1 -1 -1 -1 -1 -4
* -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4 -4  1

7.-W参数:
-W(integer):指定做比对时的“字”的长度。缺省值是0(代表blastn的搜索字长为11,megablast是28,其他是3)。这个参数多数时候不用调整,但是需要做短序列的比对时,可能要适当调短字长,来增加比对的敏感度。
以上为blastall 的常用参数,对于一些不常用的参数,可以查找blast的参数表,此参数表可以通过直接运行blastall得到。