-4

いくつかのデータを含むテキスト ファイルがあります。私は優れたプログラマーではないので、問題を解決できません。テキストファイルは次のようなものです。

00000001 ggccgccggcggtatcatggcgacccggaacccccctccccaag 00000044
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44121210 ggccgccggcggtatcatggcgacccggaacccccctccccaag 44121167

00000045 actatgaaagtgatgatgactcttacgaagtgttggatttaactgagtat 00000094
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44120443 actatgaaagtgatgatgactcttacgaagtgttggatttaactgagtat 44120394

00000095 gccagaagacaccactggtggaatcgagtgtttggccacagttccggacc 00000144
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44120393 gccagaagacaccactggtggaatcgagtgtttggccacagttccggacc 44120344

00000145 tatggtagaaaaatactcagtggccacccagattgtaatgggtggagtga 00000194
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44120343 tatggtagaaaaatactcagtggccacccagattgtaatgggtggagtga 44120294

00000195 gtggctg 00000201
<<<<<<<< ||||||| <<<<<<<<
44120293 gtggctg 44120287

00000202 gtgtgcaggatttttgttccagaaagttggaaaacttgcagcaactgcag 00000251
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44116963 gtgtgcaggatttttgttccagaaagttggaaaacttgcagcaactgcag 44116914

00000252 taggtggtggctttcttcttcttcag 00000277
<<<<<<<< |||||||||||||||||||||||||| <<<<<<<<
44116913 taggtggtggctttcttcttcttcag 44116888

00000278 atcgccagtcacagtggctatgtgcagatcgactggaagagagttgaaaa 00000327
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44113328 atcgccagtcacagtggctatgtgcagatcgactggaagagagttgaaaa 44113279

00000328 agatgtaaacaaagcaaaaagacagattaagaaacgagcaaataaggcag 00000377
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44113278 agatgtaaacaaagcaaaaagacagattaagaaacgagcaaataaggcag 44113229

00000378 cacctgaaatcaacaacataattgaagaa 00000406
<<<<<<<< ||||||||||||||||||||||||||||| <<<<<<<<
44113228 cacctgaaatcaacaacataattgaagaa 44113200

00000407 gcaacagaatttgtcaaacagaacattgtcatatccagtggatttgtggg 00000456
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44111361 gcaacagaatttgtcaaacagaacattgtcatatccagtggatttgtggg 44111312

00000457 aggctttttgctaggccttgcatcttaaggatatgaatgatctatcccag 00000506
<<<<<<<< |||||||||||||||||||||||||||||||||||||||||||||||||| <<<<<<<<
44111311 aggctttttgctaggccttgcatcttaaggatatgaatgatctatcccag 44111262

これはブラット出力ファイルです。

私が欲しいのは、対応する値を配置して、下の行の値を次のように上の行の値に割り当てることです。

00000001- 44121210
00000002- 44121211
00000003- 44121212
00000004- 44121213
-
-
-
00000506- 44111262.
4

4 に答える 4

0

データ ファイル (name input.blat) と次のスクリプトを指定します。

unblat.pl

#!/usr/bin/env perl
use strict;
use warnings;

while (<>)
{
    chomp;
    next if m/^$/;
    my $line1 = $_;
    my $junk  = <>;
    my $line2 = <>;
    next unless $junk =~ m/^[<]+ [|]+ [<]+$/;
    $line1 =~ s/ .*//;
    $line2 =~ s/ .*//;
    printf "%.8d - %.8d\n", $line1, $line2;
}

出力

$ perl unblat.pl input.blat
00000001 - 44121210
00000045 - 44120443
00000095 - 44120393
00000145 - 44120343
00000195 - 44120293
00000202 - 44116963
00000252 - 44116913
00000278 - 44113328
00000328 - 44113278
00000378 - 44113228
00000407 - 44111361
00000457 - 44111311
$

それがあなたの望むものではない場合、与えられたデータから何が正しい出力であるかを私たちに推測させるのではなく、与えられたデータからあなたが望むものを示さなければなりません。

于 2013-07-27T19:05:40.927 に答える