这个问题是许多学习生物信息学和DNA数据分析的新手都在努力解决的问题:。
假设我有20个表具有相同的列标题。每个表代表一个病人样本,每一行代表一个在该样本中发生突变的位点(站点)。每一个位点都是由染色体数目和碱基号两列组成的唯一标识。1和43535,1和33456,1和3454353)。有几个列给出了每个突变的不同特征,包括一个名为基因的列,它给出了该位点上的基因。多个位点可以在一个基因中发生突变--这意味着基因列可以在一个表中多次具有相同的值。
我想要同时查询所有这些表,比如。我从基因列输入一个值,并希望输出基因列中存在基因名称的所有表(样本)的名称,以及每个样本的整个行(最好),以便在一个输出页上比较该基因在多个样本中的突变特征。
我还想输入一个数字,比如说4,并希望输出至少在20个病人中有4个发生突变的基因列表(至少在20个表中的4个表中,名字出现在基因列中的基因列表)。
做这件事的“最简单的方法”是什么?假设除了这两个问题之外,我还想提出更灵活的查询,那么“最佳方式”是什么呢?
我是一个MD,没有任何特定的软件专业知识,但我愿意投入必要的时间来建立这个查询系统。几行代码都不能阻止我..。
数据:
Func Gene ExonicFunc Chr Start End Ref Obs
exonic ACTRT2 nonsynonymous SNV 1 2939346 2939346 G A
exonic EIF4G3 nonsynonymous SNV 1 21226201 21226201 G A
exonic CSMD2 nonsynonymous SNV 1 34123714 34123714 C T这仅仅是列的三分之一。移除多个列以适应这里的页面大小.
谢谢。
发布于 2012-06-25 17:57:23
如果您所拥有的是一堆Excel文件,则可以将它们全部导入到同一个表中,其中包含一个用于病人id的不同列。没有必要为此创建20个不同的表--事实上,这是个坏主意。
完成之后,转到Access的查询设计、SQL视图并使用以下查询:
若要创建返回输入基因名称的所有字段的查询,请执行以下操作:
select *
from gene_data
where gene = [GeneName]若要创建返回在4个以上样本中发生突变的基因名称的查询,请执行以下操作:
select gene
from
(select gene, sample_id
from gene_data
group by gene, sample_id) g
group by gene
having count(sample_id) > 4在此之后,更改为设计视图--您将看到如何使用GUI创建类似的查询。
发布于 2012-06-25 17:27:11
创建一个联合的视图,该视图将所有表放在一起。您可能应该添加关于哪个表ti来自于哪个表的其他信息:
create view allpatients as
select 'a' as whichtable, t.*
from tableA t
union all
select 'b' as whichtable, t.*
from tableB t
...您可能会发现,通过与所有患者一起创建一个表来“实例化”视图更容易。只要有一个通过组合20个表重新创建表的存储过程即可。
或者,您可以发现您有大型的单个表(数百万行)。在这种情况下,您将希望将每个原始表视为一个分区。
https://stackoverflow.com/questions/11194101
复制相似问题