科学网

 找回密码
  注册

tag 标签: array

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[转载]Illumina的SNP芯片原理
chinapubmed 2019-11-7 08:30
(转自 陈巍学基因) 在高通量SNP检测的市场上,Illumina的生物芯片有着巨大优势。新近很火的美国“23 and ME公司”,就是用的Illumina的Human Omni Express生物芯片来做SNP检测的。 Illumina的SNP生物芯片的优势在于: 第1,它的检测通量很大,一次可以检测几十万到几百万个SNP位点 第2,它的检测准确性很高,它的准确性可以达到99.9%以上 第3,它的检测的费用相对低廉,大约一个90万位点的芯片(每个样本的)检测费用在一、两千人民币 Illumina的生物芯片系统,主要是由:芯片、扫描仪、和分析软件组成。目前它主要的扫描仪有HiScan和iScan两款。另外,NextSeq 550型(测序仪)也可以扫描部分类型的芯片。它的分析软件,主要是《Genome Studio》。 我们今天讲解的重点,是Illumina的SNP芯片的工作原理。 Illumina的生物芯片,由2部分组成:第1是玻璃基片,第2是微珠。 这个玻璃基片,它的大小和一张普通的载玻片差不多大小,它起到的作用,就是给微珠做容器。 在这个玻璃基片上,通过光蚀刻的方法,蚀刻出许多个排列整齐的小孔。每个小孔的尺寸都在微米级,这些小孔是未来容纳微珠的地方。小孔的大小与微珠正好相匹配,一个小孔正好容纳一个微珠。微珠是芯片的核心部分,微珠的体积很小,只有微米级。每个微珠的表面,都各偶联了一种序列的DNA片段。每个微珠上,有几十万个片段,而一个珠子上的片段,都是同一种序列。这些DNA片段的长度是73个碱基,而这73个碱基又分成2个功能区域。 靠近珠子的这一端的23个碱基的序列,被称为Address序列,它也是DNA片段的5'端。它是标识微珠的标签序列。标签序列,通过碱基的排列组合,得到许多可能,每种序列,就是相应微珠的身份证号码(ID号)。 DNA片段上离珠子远的那一端的50个碱基,也就是3'端的序列,被称作Probe序列,它的作用,是与目标DNA进行互补杂交。一种Address序列,就对应了一种probe序列。它们之间有着一一对应的关系。 在Illumina生产芯片的过程当中,是把要做芯片的几十万种微珠,按设定的比例进行混合好,撒到玻璃基片上。微珠随机地落入基片的小孔当中,然后,通过检测芯片上每个小孔当中的微珠上的Address序列,就可以知道,这个小孔当中是哪种微珠。 又因为Address序列和Probe序列有着一一对应的关系,这样,也就知道了每个小孔当中,有哪种Probe。反过来说,也就知道了每种Probe分布在哪几个小孔中了。 所以,Illumina公司出厂的每一张芯片,都要跟一个“.dmap”文件。这个.dmap文件,标注了每一张芯片上,每一个微孔当中,分别是哪种微珠。用户做完芯片实验,得到扫描数据后,要从Illumina的网站上下载这张芯片的对应dmap文件,然后才能解读这张芯片。在一张芯片的一个反应(样本位)当中,每种珠子平均有约15颗或更多。 说完了Address序列的功能,接着我们来说Probe序列的功能。Illumina的生物芯片扫描仪,是扫描2种(荧光)颜色的:红色和绿色。而碱基有4种:A、C、G、T,要用2种荧光颜色,在一次实验当中,就区分出四种碱基,就需要一些巧妙的设计。在Illumina的SNP芯片Probe设计上,先把要检测的位点,分成2种情况。 第一种情况是比较简单的,我们先举例来说明。如果一个SNP位点的野生型是“G”,突变型是“A”,那么就设计一个探针。这个探针的3'端的最末一个碱基,就挨着这个SNP位点。在 实验过程当中,目标片段通过互补杂交,结合到这个探针上,然后,加入四种带标记的双脱氧核苷酸。其中A、T两种核苷酸是用DNP(二硝基苯)来进行标记的。C、G两种碱基是用生物素来标记的。同时,加入聚合酶,聚合酶就会在探针的3’末端,加上一个双脱氧核苷酸,并同时捎带连上一个标记物。 接着加入绿色荧光标记的链霉亲合素,红色荧光标记的抗DNP的抗体。绿色荧光标记的链霉亲合素与生物素特异地结合,让带生物素的C、G碱基显出绿色。红色荧光标记的抗DNP的抗体与DNP结合,让带DNP的A、T碱基显出红色。 并且进一步加入生物素标记的抗链霉亲合素的抗体、和DNP标记的,抗异种抗体FC端的抗体。加入这两种抗体的作用,是使荧光信号得到进一步的级联放大。 抗体结合完了之后,经过清洗,把游离的抗体都给洗掉。在扫描仪下进行扫描。 如果发出的光是绿光,就说明这个SNP结合的位点,是个“G”碱基的纯合子。如果发出的是红光,就说明这个SNP位点是个“A”碱基的纯合子。如果既有红光、又有绿光,而且两种颜色的光的光强差不多,就说明这个SNP位点是一个“A”和“G”的杂合子。 说明了上面的道理,那么,A-C、A-G、T-C、T-G,这四种SNP情况都可以理解了。因为它们长出来的碱基,最后都会被染成不同的颜色,所以,可以被轻松地区分。 那么,接下来,你就会想,对于A:T,或者C:G型的SNP位点,该如何来区分。因为“A:T”会有同样的红色荧光,“C:G”也会有同样的绿色荧光。 好,接着我们就来说,这第二种情况的SNP位点的区分方案。 刚才我们说了,第一种SNP位点的区分方案,是把探针设计到紧挨着SNP位点,但留出SNP位点,让下一个延长的碱基,按照互补原则,根据SNP位点的碱基来生长。 那么,这第二种情况的SNP,在设计探针的时候,最后一个碱基,是盖在SNP位点上的。而且是设计2种探针,如果SNP位点是“A”和“T”,那么探针也设计“A”和“T”。并且分别盖在SNP位点上面。 这2种探针,在与目标DNA片段结合的时候,如果最后一个碱基是互补的,那么接下来的延伸反应就会发生,新的带标签的双脱氧核苷酸就会被加到探针链上。再接下来,就会被荧光抗体染色,在激光扫描的过程当中,就会发光。 反之,如果最后一个碱基是不互补的,那么接下来的延伸反应,就不会发生。当然,也就不会有标签加到探针链上,再接下来,荧光抗体也就不会将之染色。在后面的激光扫描当中,就不会发光。 激光扫描的结果,如果末尾是A碱基的探针发光,而末尾是T碱基的探针不发光,那么说明目标SNP位点上是一个“T”的纯合子;反之,则是“A”的纯合子;如果A和T的探针都发光,而且发光强度差不多,那说明SNP位点上是一个“A”和“T”的杂合子。 理解了Illumina的SNP芯片的工作原理,也就理解了它为什么准确率比较高。因为它是通过“红”或“绿”,和“有”或“无”,来区分一个SNP位点到底是哪种碱基的。 实验流程 Pubmed中的illumina + SNP芯片结果
个人分类: 生物信息|612 次阅读|0 个评论
[转载]Differences among a list, array and nump.array in python
gll89 2017-4-30 02:45
1.The array module is kind of one of those things that you probably don't have a need for if you don't know why you would use it (and take note that I'm not trying to say that in a condescending manner!). Most of the time, the array module is used to interface with C code. To give you a more direct answer to your question about performance: Arrays are more efficient than lists for some uses. If you need to allocate an array that you KNOW will not change, then arrays can be faster and use less memory. GvR has an optimization anecdote in which the array module comes out to be the winner (long read, but worth it).On the other hand, part of the reason why lists eat up more memory than arrays is because python will allocate a few extra elements when all allocated elements get used. This means that appending items to lists is faster. So if you plan on adding items, a list is the way to go . From: http://stackoverflow.com/questions/176011/python-list-vs-array-when-to-use#178590 If you're going to perform arithmetic functions to your lists, you should really be using arrays instead. Additionally, arrays will store your data more compactly and efficiently, so if you're storing a large amount of data, you may consider using arrays as wel l. From: http://pythoncentral.io/the-difference-between-a-list-and-an-array/ Summray: For element appending, a list is more efficient; For storing a large amount of data with the certain length, and arrary will be faster and less memory. Additionaly, array is suitable for number calculation 2. The differences between the aray module and Numpy array: If all you're doing is creating arrays of simple data types and doing I/O, the array module will do just fine. On the other hand, you want to do any kind of numerical calculations, the array module doesn't provide any help with that. NumPy (and SciPy ) give you a wide variety of operations between arrays and special functions that are useful not only for scientific work but for things like advanced image manipulation or in general anything where you need to perform efficient calculations with large amounts of data. Numpy is also much more flexible, e.g. it supports arrays of any type of Python objects,
个人分类: Python|937 次阅读|0 个评论
Matlab: access data in cell array
haibaraxx 2017-1-6 19:05
There are two ways to refer to the elements of a cell array: Enclose indices in smooth parentheses, () , to refer to sets of cells —for example, to define a subset of the array; Enclose indices in curly braces, {} , to refer to the text, numbers, or other data within individual cells . Curly braces are used in cell array assignment statements. C= { 'one', 'two', 'three'; 1, 2, 3 } ; % C 2X3 cell C= 'one' 'two' 'three' C ( 1,2 ) ans= 'two' % ans 1X1 cell C { 2,1 } ans= 1 % ans is a number C { 1,2 } ans= 'two' % ans str
个人分类: Matlab|2160 次阅读|0 个评论
组合使用PostgreSQL的ARRAY和JSONB数据类型(PG JSON系列3)
hillpig 2016-10-14 13:09
上篇博客 演示了 JSON/JSONB如何做增删改查(PG JSON系列2) ,这回演示一下Array和JSONB如何组合来使用。我们的问题是: 设计一个典型场景,来演示对Array和JSONB很好的组合来使用? 先上两张图,以展示我们的应用场景: 这是“看照片,认校友”的H5页面,用于 分享在微信朋友圈, 大家也可以用手机打开这个链接看看: http://www.yingziedu.com/facelink/publish/index_city.html?activityid=18 二维码扫一扫打开如下: 若用PC浏览器打开的时候,按F12,然后仿真一下手机,左划一下就会出现第二张认照片的页面。 我们在设计数据库的时候,希望: 一次活动包含多张照片,每张照片下面列出照片中所有人的个人信息(姓名/手机号码等),并可以按行来修改 我们可以这么来设计数据库,如下图: SQL代码如下: -- Table: TPActivity -- 照片识别活动表(把照片识别看作一次活动,一次活动可能同时识别多张照片) DROP TABLE IF EXISTS TPActivity CASCADE; CREATE TABLE TPActivity ( id bigint DEFAULT nextval('jsontest_uuid_seq') PRIMARY KEY,-- 活动id,全局唯一性,用于外键关联 title character varying(128) NOT NULL,-- 活动名称,如“计算所喊你回家了” pics bigint ARRAY -- 照片id数组 )WITH ( OIDS=FALSE ); -- Table: TPIC -- 照片表 DROP TABLE IF EXISTS TPIC CASCADE; CREATE TABLE TPIC ( id bigint DEFAULT nextval('jsontest_uuid_seq') PRIMARY KEY,-- 活动id,全局唯一性,用于外键关联 picUrl character varying(256) DEFAULT NULL,-- 照片 persons jsonb NOT NULL -- 照片里的人名、电话等,格式为: )WITH ( OIDS=FALSE ); 测试数据: -- Table: TPActivity -- 照片识别活动表(把照片识别看作一次活动,一次活动可能同时识别多张照片) insert into TPActivity values(18,'28级4班的你,还记得他/她吗?','{109, 110}'); -- Table: TPIC -- 照片表 insert into TPIC values(109,'/img/userupload/XZZX-90-1.2.png', ' '); insert into TPIC values(110,'/img/userupload/XZZX-90-2.2.png', ' '); 其中 TPActivity中的pics设计成数组, TPIC中的 persons 设计成jsonb。 这么设计的好处是把数据库设计简化、清爽了许多,坏处是不再使用外键。所以这种设计,需要对应用场景做一个权衡,就我们这个“看照片、认校友”的应用中,对数组的操作只有insert之后的访问,不再需要update,故我们认为这种设计最高效。 然后我们可以通过如下SQL语句一下取出来所有的和活动相关的图片: WITH allPicsInOneActivity AS (select a.title,b.id,b.picurl,b.persons from TPActivity a, TPIC b where a.id =18 and b.id = any ( a.pics) ) select jsonb_pretty(to_jsonb(row_to_json(b.*))) from (SELECT array_to_json(array(select row_to_json(allPicsInOneActivity.*) from allPicsInOneActivity),false) as activityallpics) b 返回结果为: { activityallpics: }, { id: 110, title: 28级4班的你,还记得他/她吗?, picurl: /img/userupload/XZZX-90-2.2.png, persons: } ] } 是不是感觉很简洁? 总结:在有些外键不是需要做很多检查操作的情况下,数据库设计中组合使用ARRAY和JSONB可以变得更简洁。 码字码了半天,手指头都麻了,如果觉得对您还有用的话,赞助一下辛苦费吧:
个人分类: postgresql|7220 次阅读|0 个评论
Matlab: size and length of an array
热度 1 haibaraxx 2016-8-22 21:48
X=1; Y= ; Z= ; E= 1 row, 1 column sz_Y=size(Y); - 1 3 % 1 row, 3 column sz_Z=size(Z); - 3 2 % 3 row, 2 column sz_Z=size(E); - 0 0 % % length returns a scalar describing the largest dimension of an array. len_X=length(X); - 1 len_Y=length(Y); - 3 % For vectors, the length is simply the number of the elements. len_Z=length(Z); - 3 % For arrays with more dimensions, length(Z) is max(size(Z)) .
个人分类: Matlab|2311 次阅读|2 个评论
FORTRAN学习笔记(5): FORTRAN数组类型和存储结构
peluo 2014-3-16 16:01
FORTRAN中的数组声明可以有如下几种类型:Explicit-shape Array, Assumed-shape Array, Assumed-size Array, and Deferred-size Array Explicit-shape array: An explicit-shape array is declared with explicit values for the bounds in each dimension of the array(显式指定数组各维的上下界) . http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/GUID-1071BCFF-5A84-4CA9-B296-CB1BD5571777.htm#GUID-1071BCFF-5A84-4CA9-B296-CB1BD5571777 Both automatic array and adjustable array are explicit-shape arrays. Automatic Array: an automatic array is an explicit shape array that is a local variable. Automaticarrays are only allowed in function and subroutine subprograms, and are declared in the specification part of the subprogram. At least one bound of an automatic array must be a nonconstant specification expression. The bounds are determined when the subprogram is called. (自动数组是子程序的局地变量,在子程序内部声明,数组维数中至少一维由子程序的参数传递获得,其他维可在子程序中指定) Adjustable Array: a n adjustable array is an explicit shape array that is a dummy argument to a subprogram . At least one bound of an adjustable array must be a nonconstant specification expression. The bounds are determined when the subprogram is called. (局地可调数组是子程序的传递参数之一,同时可调数组维数中至少一维由子程序参数传递获得) Assumed-shape array : a n assumed-shape array is a dummy argument array that assumes the shape of its associated actual argument array(假定形状数组通常在子程序内部声明,指定维数/rank,但不指定维的大小 ) . http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/GUID-70941978-B44B-46CE-9156-67A02F23768E.htm#GUID-70941978-B44B-46CE-9156-67A02F23768E Assumed-size array : a n assumed-size array is a dummy argument array that assumes the size (only) of its associated actual argument array; the rank and extents can differ for the actual and dummy arrays(假定大小数组通常在子程序中声明,可以指定1维或多维的大小). http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/GUID-E094C9ED-8A70-4220-AA83-CBF957F7223C.htm#GUID-E094C9ED-8A70-4220-AA83-CBF957F7223C Deferred-shape array : a deferred-shape array is an array pointer or an allocatable array(递延形状数组指数组指针或可分配数组,数组的维数和各维大小在指针赋值时或使用allocate语句时获得). http://software.intel.com/sites/products/documentation/doclib/stdxe/2013/composerxe/compiler/fortran-mac/GUID-885E4216-44C6-47B5-84D7-9F40CBF0008E.htm#GUID-885E4216-44C6-47B5-84D7-9F40CBF0008E 不同类型数组的存储结构不一样,比如Local Adjustable Array是stack array(栈型数组),而Deferred-shape array就是heap array (堆型数组)。stack的大小具有平台依赖性,因此程序中出现较大的局部数组时,可能会出现“segmentation fault”(即所谓的栈溢出,stack overflow),此时要么人为增加系统栈大小,要么将数组存储结构更改为堆结构。同时,两种数据结构在存取效率等多方面具有显著差异。 可参考: http://metman.info/blog/2013/08/12/fortransheng-ming-shu-zu-guo-da-wen-ti-jie-jue-ban-fa/ http://metman.info/blog/2013/05/31/segmentation-faultchan-sheng-gen-ben-yuan-yin/ http://bbs.csdn.net/topics/390147637
个人分类: Fortran|8390 次阅读|0 个评论
Fortran 90: a simple example of array pointer
zhoufcumt 2013-10-29 13:40
PROGRAM test IMPLICIT NONE INTEGER(kind=4), DIMENSION(:), POINTER :: a LOGICAL :: allocat INTEGER(kind=4) :: n = 10 allocat = .FALSE. IF (ASSOCIATED(a)) THEN IF (SIZE(a) /= n) THEN DEALLOCATE(a) allocat = .TRUE. END IF ELSE allocat = .TRUE. END IF WRITE(*,*) 'Size of a: ', SIZE(a) IF (allocat) THEN ALLOCATE(a(n)) END IF WRITE(*,*) 'Size of a: ', SIZE(a) DEALLOCATE(a) WRITE(*,*) 'Size of a: ', SIZE(a) END PROGRAM test
个人分类: Fortran|2623 次阅读|0 个评论
Perl中数组&哈希的使用
jiewencai 2012-10-4 13:57
一、数组 1.创建 a.普通数组的创建:@array = qw /a b c/; @ array= ( "a","b","c" ) ; @array=(1,2,3); b.匿名数组的创建: $ array_ref = ; $array_ref= ; 数组的引用的创建:$array_ref = /@array; c.使用slice方法创建:@array = @array_all ; @array=(split /\s+/ ,$scalar) ; 2.使用 a. $array , $array ; @array;# 哎,科学网的编辑器有问题,此处array前少了"$"符号。下文的黑体所在行的字 符都无法正确显示,请注意辨别。 b.$array_ref- ; ${ $array_ref } ;#使用单个元素. @{$array_ref};#使用整个数组. c.@array ;#使用数组中索引值为1、5、0、7的元素,并按该顺序返回. 注意区别 @ arrray= ( ... ) 和 $ array_ref= ; 二、哈希 1.创建 a.普通哈希的创建:$hash{a}="abc"; $hash{b}="def"; % hash= ( a="abc",b="def" ) ; b.匿名哈希的创建: $ hash_ref = { a="abc",b="def" } ; 哈希的引用的创建:$hash_ref=/%hash; c.使用slice方法创建:@pleyers = qw/barney fred dino/; @bowling_scores=(195,205,30); @score { @players } =@{bowling_scores}; #此处的@score{@players}等价于( $score{barney},$score{fred},$score{dino});即同时对%score 这个哈希的三个元素赋值; 注意区别 % hash= ( ... ) ; $ hash_ref= { ... } ; 2.使用 a.$hash{a}; %hash b.$hash_ref-{a}; ${$hash_ref}{a};#使用单个元素; %{$hash_ref};#使用整个哈希; c.@score { @players}=@{bowling_scores } ;#看作($score{barney} , $score{fred} , $score{dino}); 参考资料:1. perl---(数组和哈希)引用 2. perl 中散列数组的使用 3.《perl语言入门》的“array slice”、“hash slice”;
个人分类: Perl|9919 次阅读|0 个评论
JS数组常用方法学习总结
chengdong166 2012-8-15 07:14
1. 栈方法和队列方法 var array = new Array(); var ele = array.pop(); if(!ele) { alert("返回尾部的数据类型为" + typeof ele); } //push:将接收到的参数按从左到右的顺序依次添加到数组的尾部,返回更新后的数组长度 var countNum = array.push("zhansan", "lisi"); alert(countNum);//2 alert(array);//zhansan,lisi //pop:删除并返回尾部元素,更新数组的长度 var lastEle = array.pop(); alert(lastEle);//lisi alert(array);//zhangsan //unshift:将接收到的参数按照从右到左的顺序依次添加到数组的首部,返回更新后的数组长度 var len = array.unshift("zhaowu","wangliu"); alert(len);//3 alert(array);//zhouwu,wangliu,zhangsan //shift:删除并返回数组首部元素,更新数组的长度 var firstEle = array.shift(); alert(firstEle);//zhaowu alert(array);//wangliu,zhangsan 2. 重排序方法 var orgVal = ; // sort():将数组中的元素按ASCII字符(都看作是一个字符串)进行升序排列 orgVal.sort(); alert(orgVal);// 0,1,10,20,5 //sort(sortFunction)接收一个比较函数的参数,以便用户按照自己的排序方式排序 function compareTo(val1, val2) { if (val1 val2) { return 1;//将第一个参数放到第二个参数之后, 返回正值 } else if (val1 val2) { return -1;//返回负值 } else { return 0;//返回零 } } // 实现数组元素的升序排列 orgVal.sort(compareTo); alert(orgVal);// 0,1,5,10,20 //降序排列(先升序,后反转) orgVal.reverse(); alert(orgVal);// 20, 10, 5, 1, 0 3. concat( )操作方法 var array = ; //concat():创建并返回当前数组的一个副本 var array2 = array.concat(); alert(array2); //concat(args):如果参数不是一个或者多个数组,创建当前数组的一个副本,然后将参数依次追加到数组尾部并返回 var array3 = array.concat("gray","green"); alert(array3); //concat(args):如果参数是一个或者多个数组,创建当前数组的一个副本,然后将数组中的元素依次追加到数组尾部并返回 var array4 = array.concat( ); alert(array4); //依次将参数按照从左到右的顺序添加到尾部 var array5 = array.concat("orange", ); alert(array5);//black,red,orange,gray,green 4. slice()操作方法 基于当前数组的一项或者多项创建并返回数组,例如:var orgVal = ; orgVal.slice(num1); 当num1=2时, 返回 ; orgVal.slice(num1, num2); 当num1=2,num2=4时,返回 ; 当num1 num2时,返回null 5. splice()操作方法 (1) 删除操作:splice(sIndex, len):其中sIndex为起始位置, len为截取的数组长度,例如: var removed = array.splice(1,3); alert(removed);// alert(array);// 显然, 有删除项时,返回由这些删除项构成的新数组。(原数组保留未删除的部分) (2) 插入操作:splice(rIndex, 0 , args...):其中rIndex为要插入的位置,args为要替换的元素,例如: removed = array.splice(1, 0, "yellow"); if (0 == removed.length) { alert("这是一个空的数组对象"); } alert(array);// 由上例可见, 无删除项时,返回一个空对象数组。向数组中插入一个以及多个元素,数组里面中rIndex位置上及其后面位置上的元素依次向后移动。 (3) 替换操作:splice(sIndex, len, args...):首先删除sIndex位置及其以后的len个元素,然后将args从sIndex位置开始逐个执行插入操作,例如: removed = array.splice(1, 2, "orange"); alert(array);// alert(removed);// 6. indexOf()和lastIndexOf() 返回要查找的元素在数组中的位置(从0开始),不存在则返回-1。
个人分类: JS学习|6675 次阅读|0 个评论
纳米阵列,纳米花样,Nano Pattern, Array
热度 4 SKYang2011 2011-7-4 16:17
纳米阵列,纳米花样,Nano Pattern, Array
纳米尺度的材料有广泛的应用。在器件领域,如何实现大规模有序的阵列合成是一个首先需要克服的问题。传统的微加工技术在阵列合成上十分有效。然而,耗时,耗能,耗财。利用二维胶体晶体模板作为掩膜的技术,已经发展成为一个低廉,易行的技术来合成蜂窝状的纳米结构阵列。这个领域的领军人物,他叫Van Duye. 但是,这个方法的缺点在于这列的结构不易控制。近期,我们利用二维胶体晶体模板作为初始模板,然后利用二氧化硅溶胶复形,制备了碗阵列。然后利用这些规则排列的碗作为独立的反应容器,结合dewetting的技术,成功实现了具有六角对称的纳米颗粒阵列。阵列结构高度,精确可控。更加重要的是,这个方法能够简单的合成具有特定元素比的合金颗粒,如金银合金。而且,纳米颗粒的尺寸能够被预先准确的计算。这个方法的原始想法来源于自然界。我们知道水落到荷叶上会收缩成小水滴,同时流向最低处。那么,如果把一层金属薄膜热蒸度到规则的碗阵列上,然后加热让金融化,金会不会模拟水在荷叶上的行为呢? 我们通过试验发现,的确如此。在每个碗的底部都可以发现一个金的纳米颗粒!此发现拓宽了纳米阵列合成的方法,为下一步的光学敏感器件研究做了良好的铺垫。其核心结果发表在材料领域杂志,先进功能材料上(adv. funct. mater, 2011, 21, 2446/ http://onlinelibrary.wiley.com/doi/10.1002/adfm.201002387/abstract ).
12067 次阅读|3 个评论
[转载]Halbach array
whq2008 2010-12-19 22:41
Halbach array From Wikipedia, the free encyclopedia Printable Version Cite this Page Ask a question Tweet this A Halbach array, showing the orientation of each piece's magnetic field. This array would give a strong field underneath, while the field above would cancel. A Halbach array is a special arrangement of permanent magnets that augments the magnetic field on one side of the array while cancelling the field to near zero on the other side. In the diagram, the magnetic field is enhanced on the bottom side and cancelled on the top side (a one-sided flux ). The rotating pattern of permanent magnets (on the front face; on the left, up, right, down) can be continued indefinitely and have the same effect. The effect of this arrangement is roughly similar to many horseshoe magnets placed adjacent to each other, with similar poles touching. The effect was discovered by Mallinson in 1973, and these 'one-sided flux' structures were initially described by him as a 'curiosity', although he recognised at the time the potential for significant improvements in magnetic tape technology. In the 1980s, the late Klaus Halbach, a physicist at Lawrence Livermore National Laboratory , invented the Halbach array to focus accelerator particle beams. Contents 1 Flat Halbach arrays 1.1 Magnetization 1.2 Applications 2 Halbach cylinder 2.1 Uniform fields 2.2 Varying the field 3 Halbach spheres 4 See also 5 References 6 External links // Flat Halbach arrays Magnetization Although this magnetic flux distribution seems somewhat counter-intuitive to those familiar with, for example, bar magnets or solenoids , the reason for this flux distribution can be intuitively visualised using Mallinson's original diagram (note this uses the negative y-component, unlike the diagram in Mallinson's paper). The diagram shows the field from a strip of ferromagnetic material with alternating magnetization in the y direction (top left) and in the x direction (top right). Note that the field above the plane is in the same direction for both structures, but the field below the plane is in opposite directions. The effect of superimposing both of these structures is shown in the figure at the bottom: The magnetic field around an infinite halbach array of cube magnets The crucial point is that the flux will cancel below the plane and reinforce itself above the plane . In fact, any magnetization pattern where the components of magnetization are out of phase with each other will result in a one-sided flux. The mathematical transform which shifts the phase of all components of some function by is called a Hilbert transform ; the components of the magnetization vector can therefore be any Hilbert transform pair (the simplest of which is simply , as shown in the diagram above). The advantages of one sided flux distributions are twofold: The field is twice as large on the side on which the flux is confined (in the idealised case). No stray field is produced (in the ideal, infinite length case) on the opposite side. This helps with field confinement, usually a problem in the design of magnetic structures. Halbach arrays can be rolled into a cylindrical shape, known as a Halbach cylinder . The field on the non cancelling side of a continuously varying infinite array is of the form: F ( x , y ) = F 0 e i k x e k y Where: is the field in the form is the magnitude of the field at the surface of the array is the spatial wavenumber , (i.e., the spatial frequency) Applications Although one-sided flux distributions may seem somewhat abstract, they have a surprising number of applications ranging from the humble refrigerator magnet through industrial applications such as the brushless AC motor and magnetic coupling, to high-tech applications such as wiggler magnets used in particle accelerators and free electron lasers . This device is also a key component of the Inductrack maglev system. The Halbach arrays repel buried loops of wire after they have been accelerated to speed, lifting the train. One-sided flux theory could also explain the lack of magnetic field on celestial bodies, such as the moon and Mars, due to the cooling process after the formation of such bodies freezing in , a spherical internal one-sided flux distribution, giving rise to zero field external to the planet. The simplest example of a one sided flux magnet is a refrigerator magnet. These are usually composed of powdered ferrite in a binder such as plastic or rubber. The extruded magnet is exposed to a rotating field giving the ferrite particles in the magnetic compound a magnetization resulting in a one-sided flux distribution. This distribution increases the holding force of the magnet when placed on a permeable surface, compared to the holding force from, say, a uniform magnetization of the magnetic compound. Fridge magnet flux distribution Scaling up this design and adding a top sheet gives a wiggler magnet, used in synchrotrons and free electron lasers . Wiggler magnets wiggle or oscillate an electron beam perpendicular to the magnetic field. As the electrons are undergoing acceleration they radiate electromagnetic energy and these photons can be trapped between two parallel mirrors that form a resonant cavity similar to that of a conventional laser. The design shown above is usually known as a Halbach wiggler. The magnetization vectors in the magnetized sheets rotate in the opposite senses to each other; above, the top sheet's magnetization vector rotates clockwise and the bottom sheet's magnetization vector rotates counter-clockwise. This design is chosen so that the x-components of the magnetic fields from the sheets cancel and the y-components reinforce so that the field is given by where k is the wavenumber of the magnetic sheet given by the spacing between magnetic blocks with the same magnetization vector. Halbach cylinder A Halbach cylinder is a magnetized cylinder composed of ferromagnetic material producing (in the idealised case) an intense magnetic field confined entirely within the cylinder with zero field outside. The cylinders can also be magnetized such that the magnetic field is entirely outside the cylinder, with zero field inside. Several magnetization distributions are shown below: The direction of magnetization within the ferromagnetic material is given by where M r is the ferromagnetic remanence (T/m). A choice of + k gives an internal magnetic field and - k gives an external magnetic field. Ideally, these structures would be created from an infinite length cylinder of magnetic material with the direction of magnetization continuously varying. The magnetic flux produced by this ideal design would be perfectly uniform and be entirely confined to the bore of the cylinder. Of course, the ideal case of infinite length is not realisable and in practice the finite length of the cylinders produces end effects which introduce non-uniformities in the field within the bore. The difficulty of manufacturing a cylinder with a continuously varying magnetization also usually leads to the design being broken into segments. These cylindrical structures are used in devices such as brushless AC motors, magnetic couplings and high field cylinders. Both brushless motors and coupling devices use multipole field arrangements: Brushless motors typically use cylindrical designs in which all the flux is confined to the centre of the bore (such as k = 4 above, a six pole rotor) with the AC coils also contained within the bore. Such self-shielding motors designs are more efficient and produce higher torque than conventional motor designs. Magnetic coupling devices transmit torque through magnetically transparent barriers (that is the barrier is non-magnetic or is magnetic but is not affected by an applied magnetic field), for instance between sealed containers or pressurised vessels. The optimal torque couplings consists of a pair of coaxially nested cylinders with opposite + k and - k flux magnetization patterns, as - k magnetization patterns produce fields entirely external to the cylinder. In the lowest energy state, the outer flux of the inner cylinder exactly matches the internal flux of the outer cylinder. Rotating one cylinder relative to the other from this state results in a restoring torque. Uniform fields Uniform field inside Halbach cylinder For the special case of k = 2 , the field inside the bore is uniform, and is given by: where the inner and outer cylinder radii are R o and R i , respectively. H is in the y direction. This is the simplest form of the Halbach cylinder, and it can be seen that if the ratio of outer to inner radii is greater than e the flux inside the bore actually exceeds the remanence of the magnetic material used to create the cylinder. This cylindrical design is only one class of design which produces a uniform field inside a cavity within an array of permanent magnets. Other classes of design include wedge designs, proposed by Abele and Jensen in which wedges of magnetized material are arranged to provide uniform field within cavities inside the design as shown below. The direction of magnetization of the wedges in (A) can be calculated using a set of rules given by Abele, and allows for great freedom in the shape of the cavity. Another class of design is the magnetic mangle (B), proposed by Coey and Cugat, in which uniformly magnetized rods are arranged such that their magnetization matches that of a Halbach cylinder, as shown for a six rod design. This design greatly increases access to the region of uniform field, at the expense of the volume of uniform field being smaller than in the cylindrical designs (although this area can be made larger by increasing the number of component rods). Rotating the rods relative to each other results in many possibilities including a dynamically variable field and various dipolar configurations. It can be seen that the designs shown in A and B are closely related to the k = 2 Halbach cylinder. Other very simple designs for a uniform field include separated magnets with soft iron return paths, as shown in figure (C). If any Halbach cylinder is cut and unrolled flat, the resulting structure is a Halbach array. Varying the field Halbach cylinders give a static field. However cylinders can be nested, and by rotating one cylinder relative to the other, cancellation of the field and adjustment of the direction can be achieved. Halbach spheres The magnetic field in the centre of a halbach sphere can be particularly intense If the two dimensional magnetic distribution patterns of the Halbach cylinder are extended to three dimensions, the result is the Halbach sphere. These designs have an extremely uniform field within the interior of the design, as they are not affected by the 'end effects' prevalent in the finite length cylinder design. The magnitude of the uniform field for a sphere also increases to 4/3 the amount for the ideal cylindrical design with the same inner and outer radii. However, being spherical, access to the region of uniform field is usually restricted to a narrow hole at the top and bottom of the design. The equation for the field in a Halbach sphere is: Higher fields are possible by optimising the spherical design to take account of the fact that it is composed of point dipoles (and not line dipoles). This results in the stretching of the sphere to an elliptical shape and having a non-uniform distribution of magnetization over the component parts of the sphere. Using this method, as well as soft pole pieces within the design, 4.5 T in a working volume of 20mm 3 was achieved by Bloch et al. in 1998 and this was increased further to 5 T in 2000, although over a smaller working area of 0.05mm . As hard materials are temperature dependent, refrigeration of the entire magnet array can increase the field within the working area further as shown by Kumada et al. This group also reported development of a 5.16 T Halbach dipole cylinder in 2003. See also Supermagnet Permanent magnet Strong focusing Inductrack uses Halbach arrays to generate strong fields for maglev References ^ J.C. Mallinson, One-Sided Fluxes A Magnetic Curiosity? , IEEE Transactions on Magnetics , 9 , 678-682, 1973, doi:10.1109/TMAG.1973.1067714 ^ Magnetically levitated train takes flight ^ ^ J.C.Mallinson, H.Shute and D. Wilton, One-Sided Fluxes in Planar, Cylindrical and Spherical Magnetized Structures IEEE Transactions on Magnetics,36, 2,Mar 2000, doi:10.1109/20.825805 ^ Tip Magazine: Magnets, Markets, and Magic Cylinders The Industrial Physicist by Michael Coey and Denis Weaire ^ K. Halbach, Nuclear Instruments and Methods, 169 , 1, (1980), doi:10.1016/0029-554X(80)90094-4 J. M. D. Coey and T.R. N Mhochin, Permanent Magnets, High Magnetic Fields: Science and Technology, Volume 1 , ed. F. Herlach and N. Miura, World Scientific Publishing, p25 - 47 (2003) O. Cugat and F. Bloch, 4-Tesla Permanent Magnetic Flux Source, Proc. 15th International Workshop on Rare Earth Magnets and Their Applications , published by MAT INFO, Dresden 1998, p807 (1998) External links Skytran technology Passive levitation of a shaft Build a Halbach array Electric model aircraft motor Copyright Information This article is distributed under the Creative Commons Attribution/Share-Alike License . For information on the contributors, please see the original Wikipedia article .
个人分类: 未分类|5626 次阅读|0 个评论
Tiling array
ljxue 2010-6-3 21:41
Uses of Tiling Arrays Target Application mRNA gene expression changes transcript validation/discovery DNA sequencing; genotyping DNA CGH: copy number changes ChIP-enriched DNA Protein binding sites transcription factor binding sites DNA methylation sites histone modification sites (Ru-Fang Yeh, Fall 2007, BMI 209 - Statistical Methods in Bioinformatics: Case Studies) Some tools for tiling array: CisGenome An integrated tool for tiling array, ChIP-seq, genome and cis-regulatory element analysis http://biogibbs.stanford.edu/~jihk/CisGenome/index.htm Tutorial of CisGenome http://biogibbs.stanford.edu/~jihk/CisGenome/index_files/tutorial.htm Files of two types are required, bpmap file and cel file(affymetrix). They are used for intensitynormalization. Then the data are intergrated with genome annotation to retrieve the DNA sequences. Packages in R/Bioconductor tilingArray Transcript mapping with high-density oligonucleotide tiling arrays http://bioconductor.org/packages/2.6/bioc/html/tilingArray.html rMAT R implementation from MAT program to normalize and analyze tiling arrays and ChIP-chip data. http://bioconductor.org/packages/2.6/bioc/html/rMAT.html AffyTiling Easy extraction of individual probes in Affymetrix tiling arrays http://bioconductor.org/packages/2.6/bioc/html/AffyTiling.html BayesPeak Bayesian Analysis of ChIP-seq Data http://bioconductor.org/packages/2.6/bioc/html/BayesPeak.html ChIPpeakAnno Batch annotation of the peaks identified from either ChIP-seq or ChIP-chip experiments. http://bioconductor.org/packages/2.6/bioc/html/ChIPpeakAnno.html Starr Simple tiling array analysis of Affymetrix ChIP-chip data http://bioconductor.org/packages/2.6/bioc/html/Starr.html
个人分类: Bioinformatics|6223 次阅读|0 个评论
高通量DNA测序技术在生物学研究的应用
toptip 2009-10-21 11:14
导读:有很多生物学工作者尽管知道高通量技术的大概原理,但是却以为它仅仅是更快而已。其实高通量DNA测序技术不仅仅是替换传统的测序技术,它有三大优点是毛细管测序法所不具备的。首先它把平行处理的思想用到极致,可以在几百万个点上同时阅读测序,所以它是快速高通量的技术,这一点是大家所熟知的;另外它实质上是单分子DNA的测序技术,通过单分子DNA结合在某个点上进行扩增测序,所以它可以测一个DNA的mixture(混合);最后由于在一个mixture中某种DNA的丰度反应在它能在多少点上结合并被测序,也就是说被测序的次数反应了DNA的丰度,这个技术还有非常完美的定量功能。 高通量DNA测序技术已经在如下领域掀起了革命。 测基因组的: 1.re-annotationofthegenome。测序难免有错误,通过反复的深度测序,可以将这种错误降低到很小。另外通过反复测cDNAlibrary,纠正了以前splicing位点的错误。 大规模地,便宜地,快速地测物种的序列,比如果蝇的subspecies的序列,对于理解进化非常有必要。 2.疾病相关基因以及突变的hotspot的发现。以前的测序可以通过设计很多已知基因的引物,对来自病人的很多sample的平行测序,可以发现它们突变的位点集中在哪里,然后通过其它功能实验(比如酶活变化,致癌能力)来确证。现在的测序技术可以coverwholeexon。比如收集某个病症的1000个sample,通过对这些sample平行测序,有可能denovo地发现新的致病基因突变。同理,从phenotype到genotype(比如狗的个体大小,最简单的是单基因导致的),理论上如果收集足够的样本,就可以用统计去除个体差异的背景,分离到这个genotype。 3.甲基化的pattern。通过亚硫酸氢钠处理后甲基化的胞嘧啶C不变,而普通胞嘧啶变成U的原理,可以定量地看在genome上DNA甲基化的pattern。 测cDNA的: 1.现有的技术已经基本上取代了ChIP-chip。以前array的chip,在定量方面有很大的缺陷,原来差异在100倍的,反应在信号的上的差异可能只有30倍,信号饱和。现在的技术是通过hit目的片段的次数来定量的,也就是表达量越高,基因越大,被测序的次数也越多。这种定量比chip要准确很多。 2.完全并且更好地取代array。比如细胞分化过程,应激反应过程中基因表达的变化。可以通过cDNA库的测序,更加定量地,可重复地记录这个过程。有些物种的array没有商业化,如果自己设计定制array成本很高。而深度测序技术无需自己定制array就可以直接进行。在这种情况下,现在的测序技术成本已经比array要低了。 总之,高通量DNA测序技术不仅只是来测基因组,它还可以作为readout。这个就是技术促进生物学研究的很好的例子。以前不敢想的,现在有办法做了。 另外提一句:深度测序技术的应用会越来越广泛,它会产生海量数据。以后纯粹靠生化或者分子生物学技术的实验室将会很难生存,这就是我认为以后每个学生物的学生都必须掌握生物信息学,统计学的重要原因。
个人分类: 科普集锦|16267 次阅读|8 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-16 19:29

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部