gpt4 book ai didi

perl - 如何使用 Perl 将此输出转换为此表格格式?

转载 作者:行者123 更新时间:2023-12-04 05:26:24 27 4
gpt4 key购买 nike

我有这个输出数据:

10dvex1_miRNA_ce.out.data|3331
10dvex1_misc_RNA_ce.out.data|0
10dvex1_rRNA_ce.out.data|60
10dvex1_snoRNA_ce.out.data|895
10dvex1_snRNA_ce.out.data|2127
11dvex1_miRNA_ce.out.data|3367
11dvex1_misc_RNA_ce.out.data|0
11dvex1_rRNA_ce.out.data|54
11dvex1_snoRNA_ce.out.data|839
11dvex1_snRNA_ce.out.data|1770
12dvex1_miRNA_ce.out.data|3321
12dvex1_misc_RNA_ce.out.data|0
12dvex1_rRNA_ce.out.data|50
12dvex1_snoRNA_ce.out.data|854
12dvex1_snRNA_ce.out.data|1821

我想以这种格式转换此输出,如表格:
`Fragment \t miRNA \t misc_RNA \t rRNA \t snRNA \t snoRNA`
10 \t 3331 \t 0 \t 60 \t 2127 \ 895 \n
11 \t 3367 \t 0 \t 54 \t 1770 \t 839 \n
12 \t 3321 \t 0 \t 50 \t 1821 \t 854 \n

我需要使用这张表作为 R 的输入。一些想法?我用这个脚本尝试使用 perl,但结果并不好:
#!/usr/bin/perl

use warnings;
use strict;

open(MYINPUTFILE, $ARGV[0]); # open for input
my @lines = <MYINPUTFILE>; # read file into list
print "Frag"."\t"."miRNA"."\t"."misc_RNA"."\t"."rRNA"."\t"."snRNA"."\t"."snoRNA"."\n";
foreach my $lines (@lines){
my $pattern = $lines;
$pattern =~ s/(.*)dvex\d_(.*)_(.*)\|(.*)/$1 $2 $4/g;
print $1."\t".$4;
}
close(MYINPUTFILE);
exit;

结果:
Frag    miRNA   misc_RNA    rRNA    snRNA   snoRNA
10 333110 010 6010 89510 212711 336711 011 5411 83911 177012 332112 012 5012

是不是这个想法。

最佳答案

此代码有效。当片段编号改变时它会换行。它假定数据的顺序始终与标题的顺序一致。

open(MYINPUTFILE, $ARGV[0]); # open for input
my @lines = <MYINPUTFILE>; # read file into list
print "Frag"."\t"."miRNA"."\t"."misc_RNA"."\t"."rRNA"."\t"."snRNA"."\t"."snoRNA";
my $frag = '';
foreach my $line (@lines){
if ( $line =~ /^(\d+)dvex.*\|(\d+)/ ) {
my $fr = $1;
if ( $fr ne $frag ) {
print "\n$fr";
$frag = $fr;
}
print "\t".$2;
}
}
print "\n";
close(MYINPUTFILE);
exit;

输出看起来像:
Frag    miRNA   misc_RNA        rRNA    snRNA   snoRNA
10 3331 0 60 895 2127
11 3367 0 54 839 1770
12 3321 0 50 854 1821

关于perl - 如何使用 Perl 将此输出转换为此表格格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13171037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com