Описание тега d-gray-man
Вот скрипт на Perl, который делает то, что вы хотите. Это создает массив хэшируется (индексируется строку, состоящую из "gene_id связи с этим"), содержащий массив отсчетов ТПМ.
Как только он закончил чтение всех файлов, он выводит каждый элемент из хэш-массива. Обратите внимание, скрипт не требует ровно 6 элементов, не ограничивается <= 6 - это будет работать для любого количества элементов ТРМ.
Если некоторые gene_id имеют 6 элементов ТРМ массива, а остальные 1 или 5 или 1000 элементов, каждый gene_id будут напечатаны с указанием точного количества ТМП элементов обнаружено, что gene_id/связи с этим. Ниже вы можете добавить дополнительный код, чтобы рассматривать это как ошибку, а не характеристика.
Вход может быть предоставлена на stdin и/или, давая ему имена файлов для обработки в командной строке.
#! /usr/Бен/Perl с
мой %проб = () ;
в то время как(<>) {
гусеничка;
с/^\С*|и\S*$//г;
далее, если (м/^Gene_ID|^$/);
мой ($gene_id, $связи с этим, фонд,фонд,фонд,фонд,фонд,Фонд, $ТПМ) = раскол;
$ТПМ = 0, если (определение($ТПМ));
пуш @{ $образцов{"$gene_id $связи с этим"} }, $ТПМ;
}
еогеасп мой $Key ( ключи %проб ) {
мой ($gene_id, $связи с этим) = сплит(/\х+/, ключ$);
печать "$gene_id\Т$связи с этим\т", то Join("\Т", @{ $образцов{"$gene_id $связи с этим"} }), "\п";
}
Вывод скрипта табуляцией. Если вы предпочитаете что-то другое, редактировать, печатать
строки в скрипте и заменить все \т
ы с выбранным разделителем.
Если вы хотите произвести сообщение об ошибке и завершить работу, если там не ровно 6 ТПМ элементы напечатаны для каждого gene_id, добавьте следующий код сразу после моего ($gene_id, $связи с этим) = Сплит (/и\S+/,$ключ)
линии:
мой $кол-во = скаляр @{ $образцов{"$gene_id $связи с этим"} };
если ($счет != 6) { умереть "предупреждение: $gene_id $связи с этим имеет $элемент графа(ов)\п"};
Пример Вывода:
Я сделал 6 копий образец данные, которые вы ввели, называется sample.txt
для sample6.txt
. Спас на Perl
скрипт выше sample.pl
, сделал его исполняемым с помощью команды chmod +х sample.pl
и побежал он:
$ ./образец sample.pl *.тхт
ENSMUSG00000104123 Gm37483 0 0 0 0 0 0
ENSMUSG00000102175 Gm6119 0.008621 0.008621 0.008621 0.008621 0.008621 0.008621
ENSMUSG00000102735 Gm7369 0 0 0 0 0 0
ENSMUSG00000025900 РП1 0 0 0 0 0 0