我正在尝试聚类蛋白质dna相互作用数据集,并使用来自R包gplots的heatmap.2绘制热图.以下是生成这些图形的完整过程:在我的案例中,使用一些相关性生成距离矩阵.
library(RColorBrewer);
library(gplots);
args <- commandArgs(TRUE);
matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);
mtscaled <- as.matrix(scale(matrix_a))
pdf("result.pdf", pointsize = 15, width = 18, height = 18)
result <- heatmap.2(mtscaled, Colv=T,Rowv=T, scale='none',symm = T, col = brewer.pal(9,"Reds"))
dev.off()
Run Code Online (Sandbox Code Playgroud)
通过执行以下操作,我可以使用正常的热图功能来完成此操作:
result <- heatmap(mtscaled, Colv=T,Rowv=T, scale='none',symm = T)
Run Code Online (Sandbox Code Playgroud)
但是,当我对Heatmap.2使用相同的设置时,群集在对角线上也不会对齐.我附加了2张图像,第一张图片使用热图,第二张图片使用热图.我使用了RColorBrewer包中的Reds颜色来帮助更好地显示我正在拍摄的内容.我通常只使用默认的热图功能,但我需要heatmap.2提供的颜色变化.
以下是用于生成热图的数据集的列表,在将其转换为距离矩阵后: DataSet


我有两张酵母板图片:
许可:

XGAL:

图像应该在相同的位置和大致相同的大小.我试图使用其中一个图像生成网格,然后将该网格应用于另一个图像.通过观察允许板上的菌落来制作网格,该板上应该有1536个菌落.问题在于,用于拍摄图像的相机会上下移动一点,并且由于另一个板不在完全相同的位置,图像也可能会稍微移位.
这意味着当我使用许可板在板上生成网格时xgal,网格会移动.有谁知道我可以弥补这一点的方式?我正在使用带有gd模块的perl.任何建议将不胜感激.谢谢
嗨,我有一个简单的脚本,它接受一个文件,并在其上运行另一个Perl脚本.该脚本对当前文件夹中的每个图片文件执行此操作.这是在一台配备2个四核Xeon处理器,16GB内存,运行RedHat Linux的机器上运行的.
第一个脚本work.pl基本上调用magicplate.pl传递一些参数和magicplate.pl文件的名称来处理.Magic Plate需要大约一分钟来处理每个图像.因为work.pl正在执行相同的功能超过100次,并且因为系统有多个处理器和核心,所以我正在考虑将任务拆分,以便它可以并行运行多次.如有必要,我可以将图像分割到不同的文件夹.任何帮助都会很棒.谢谢
这是我到目前为止:
use strict;
use warnings;
my @initialImages = <*>;
foreach my $file (@initialImages) {
if($file =~ /.png/){
print "processing $file...\n";
my @tmp=split(/\./,$file);
my $name="";
for(my $i=0;$i<(@tmp-1);$i++) {
if($name eq "") { $name = $tmp[$i]; } else { $name=$name.".".$tmp[$i];}
}
my $exten=$tmp[(@tmp-1)];
my $orig=$name.".".$exten;
system("perl magicPlate.pl -i ".$orig." -min 4 -max 160 -d 1");
}
}
Run Code Online (Sandbox Code Playgroud) 
我正在尝试使用由蛋白质dna相互作用组成的数据集,对数据进行聚类并生成热图,该热图显示结果数据,使得数据看起来与在对角线上排列的聚类聚集在一起.我能够对数据进行聚类并生成该数据的树形图,但是当我使用R中的热图函数生成数据的热图时,聚类不可见.如果你看前两个图像,一个是我能够生成的树形图,第二个是我能够生成的热图,第三个是集群热图的一个例子,它显示了我对结果的期望粗略地看.从比较第二和第三张图像可以看出,很明显第三张图像中有簇,而第二张图像中没有簇. 
这是我的数据集的链接:http: //pastebin.com/wQ9tYmjy
我能够聚集数据并在R中生成一个好的:
args <- commandArgs(TRUE);
matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);
location <- args[2];
matrix_d <- dist(matrix_a);
hc <- hclust(matrix_d,"average");
mypng <- function(filename = "mydefault.png") {
png(filename)
}
options(device = "mypng")
plot(hc);
我也可以生成热图也可以:
matrix_a <- read.table("Arda_list.txt.binary.matrix.txt", sep='\t', header=T, row.names=1);
mtscaled <- as.matrix(scale(matrix_a))
heatmap(mtscaled, Colv=F, scale='none')
我试着按照以下帖子:http: //digitheadslabnotebook.blogspot.com/2011/06/drawing-heatmaps-in-r.html by Christopher Bare,但我遗漏了一些东西.任何想法,将不胜感激.我附上了我得到的热图的图像,以及树形图.图3取自Christopher Bare的帖子.谢谢
r cluster-analysis hierarchical-clustering dendrogram heatmap
嗨,我是bash编程的新手,需要一些帮助.我正在构建一个用于图像处理的管道.我希望能够将png图像放在一个文件夹中并将它们传递给clusterImage.pl一旦完成,我想将输出的文件传递给seperateObjects.pl,输出的文件具有相同的名称但具有kmeansOutput. all.matrix附在最后.以下是我到目前为止所做的,但它不起作用.任何帮助将不胜感激.谢谢
#!/bin/bash
#This script will take in an image and a matrix file.
#The output will be an image and a matrix file.
list=`ls *.png`
for i in $list
do
$file="./$list"
$image_array = $list
echo $file
#Cheching to see if the file exists.
for((j=0;j<=i;j++))
do
if [ -e image_array[j] ]; then
echo $file
echo "Begining processing"
#Take in an image and create a matrix from it.
perl clusterImage.pl SampleImage.png
#Take in a matrix and draw a picture showing the …Run Code Online (Sandbox Code Playgroud) 大家好,我从酵母菌落板的图像中得到一些强度值.我需要能够从强度值中找到峰值.下面是一个示例图像,显示绘制时值的外观.
一些值的示例
5.7 5.3 8.2 16.5 34.2 58.8 **75.4** 75 65.9 62.6 58.6 66.4 71.4 53.5 40.5 26.8 14.2 8.6 5.9 7.7 14.9 30.5 49.9 69.1 **75.3** 69.8 58.8 57.2 56.3 67.1 69 45.1 27.6 13.4 8 5
这些值在75.4和75.3处显示两个峰值,您可以看到值增加然后减少.变化并不总是一样的.
强度值图
http://lh4.ggpht.com/_aEDyS6ECO8s/THKTLgDPhaI/AAAAAAAAAio/HQW7Ut-HBhA/s400/peaks.png来自研究我正在考虑做的事情之一是存储每个组,即哈希值中的山,然后查找组中的最大值.如果我看到的问题是如何确定每个组的边界.
这是我到目前为止的代码的链接:http: //paste-it.net/public/y485822/
以下是完整数据集的链接:http: //paste-it.net/public/ub121b4/
我在Perl中编写代码.任何帮助将不胜感激.谢谢
我目前正在尝试将32 x 48的矩阵文件传递给Perl中的多维数组.我能够访问所有值,但访问特定值时遇到问题.任何帮助将不胜感激.我已经设置了数据集的链接以及我下面的代码.
以下是数据集的链接:http: //paste-it.net/public/x1d5301/
这就是我现在的代码.
#!/usr/bin/perl
open FILE, "testset.txt" or die $!;
my @lines = <FILE>;
my $size = scalar @lines;
my @matrix = (1 .. 32);
my $i = 0;
my $j = 0;
my @micro;
foreach ($matrix)
{
foreach ($lines)
{
push @{ $micro[$matrix]}, $lines;
}
}
Run Code Online (Sandbox Code Playgroud) 当矩阵包含 NA 时,我试图找到 r 矩阵中每一行的最大值。
我尝试使用“qlcMatrix”包中的函数 rowMax(),但它不能处理 NA(如果该行包含至少一个 NA 值,它会返回“NA”)。
我正在尝试创建一个使用有理数字并对它们执行运算符重载的类.我在程序的一部分,即输入流上遇到问题.
例如,我应该以"12/8"格式输入,它应该将12存储到变量a中,然后将8存储到变量b中.
这是我的代码:
istream& operator>>( istream& In, Rational& Item )
{
char division_sign;
int a,b;
In >> a >> division_sign;
if (division_sign != '/' || !In.good())
{
In.setstate( ios::failbit );
}
else
{
In >> b;
if (b != 0 || !In.good())
{
return Item.numerator_ = a, Item.denominator_ = b;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我收到的错误:
In function 'std::istream& operator>>(std::istream&, Rational&)':
131: error: invalid initialization of reference of type 'std::istream&' from expression of type 'int'
Run Code Online (Sandbox Code Playgroud)
Line 131是return声明