我正在尝试从如下所示的文件中提取数据:
XLOC_000001 Schx 1 385 339.597 339.597 11.2848 - OK
XLOC_000001 Schx 0 620 671.378 671.378 20.8907 - OK
XLOC_000001 Schxdex 0 493 530.642 530.642 16.1373 - OK
XLOC_000001 Schxdex 1 384 368.611 368.611 12.5572 - OK
XLOC_000002 Schx 1 486 428.686 428.686 5.75646 - OK
XLOC_000002 Schx 0 503 544.683 544.683 7.25738 - OK
XLOC_000002 Schxdex 0 584 628.59 628.59 8.6694 - OK
XLOC_000002 Schxdex 1 497 477.083 477.083 6.52573 - OK
XLOC_000003 Schx 1 667 588.341 588.341 3.6527 - OK
XLOC_000003 Schx 0 578 625.898 625.898 4.10985 - OK
XLOC_000003 Schxdex 0 607 653.346 653.346 4.35889 - OK
XLOC_000003 Schxdex 1 521 500.121 500.121 3.24867 - OK
XLOC_000004 Schx 1 27 23.8159 23.8159 29.2102 - OK
XLOC_000004 Schx 0 27 29.2374 29.2374 224.533 - OK
第一列中的信息显示基因模型,第二列显示治疗组(Schx或Schxdex)。第3列显示每个处理组的技术重复(0或1)。那么,对于第一个基因模型:
model treatment rep value
XLOC_000001 Schx 1 11.2848
XLOC_000001 Schx 0 20.8907
XLOC_000001 Schxdex 0 16.1373
XLOC_000001 Schxdex 1 12.5572
我正在尝试对数据进行比较(我感兴趣的值在第7列)
1)在每个治疗组中:20.8907
与11.2848
和16.1373
与12.5572
和
2)在每个治疗组之间:20.8907
与。 12.5572
和11.2848
与16.1373
我写了一些代码,允许我为第一次比较执行相关性测试,但我无法弄清楚如何在第二次比较中执行相同操作。我正在过滤值($fpkm == 0
和$fpkm > 5000
)然后转换它们。我正在进行的测试不允许丢失数据,因此如果在一个比较点中存在0或(> 5000),则删除整个模型:
my %data;
while (<$in>){
chomp;
next unless /^XLOC/;
my @split = split;
$data{$split[0]}{$split[1]}{$split[2]} = $split[6];
}
open my $out, '>', 'output.csv';
print $out "fpkm1,fpkm2\n";
my (%rep_count, $log_trans_fpkm, %filter, $fpkm);
for my $xloc (sort keys %data){
for my $condition (keys $data{$xloc}){
for my $replicate (sort keys $data{$xloc}{$condition}){
$fpkm = $data{$xloc}{$condition}{$replicate};
next if $fpkm == 0;
$rep_count{$xloc}{$condition}++;
$filter{$xloc}{$condition}{$replicate} = $fpkm if $replicate == 0 and $rep_count{$xloc}{$condition} == 1 and $condition eq 'Schx';
$filter{$xloc}{$condition}{$replicate} = $fpkm if $replicate == 1 and $rep_count{$xloc}{$condition} == 2 and $condition eq 'Schx';
}
delete $filter{$xloc} if $fpkm == 0 or $fpkm > 5000;
}
}
for my $id (sort keys %filter){
for my $condition (keys $filter{$id}){
for my $replicate (sort keys $filter{$id}{$condition}){
my $fpkm = log2($filter{$id}{$condition}{$replicate});
print $out "$fpkm," if $replicate == 0 and $condition eq 'Schx';
print $out "$fpkm" if $replicate == 1 and $condition eq 'Schx';
}
print $out "\n";
}
}
有人能帮我提取数据进行第二次比较吗?
为了澄清我想在这个例子中提取的数据是:
XLOC_000001 Schx 0 20.8907
XLOC_000001 Schxdex 1 12.5572
XLOC_000002 Schx 0 7.25738
XLOC_000002 Schxdex 1 6.52573
XLOC_000003 Schx 0 4.10985
XLOC_000003 Schxdex 1 3.24867
格式如下:
20.8907 12.5572
7.25738 6.52573
4.10985 3.24867
答案 0 :(得分:1)
从您的问题来看,您不清楚选择包含在提取物中的特定值的标准是什么。 出现您希望在治疗类型为Schx时复制0,并在治疗类型为Schxdex时复制1(从您的示例输出)。如果还有其他逻辑,那对我来说是不明显的。
稍微修改您的脚本:
public void methodInFragmentB(yourParameters){
//do whatever you want to do with the data.....
}
<强>输出强>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:gravity="center"
android:text="What are you interested in?" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:gravity="center"
android:padding="5px"
android:weightSum="4" >
<ImageButton
android:id="@+id/imageButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/icon" />
<ImageButton
android:id="@+id/imageButton2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/icon" />
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/icon" />
<ImageButton
android:id="@+id/imageButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_weight="1"
android:background="@drawable/icon" />
</LinearLayout>
</LinearLayout>