diff --git a/codes/indication.pl b/codes/indication.pl index 4c0e841..4552644 100755 --- a/codes/indication.pl +++ b/codes/indication.pl @@ -5,26 +5,18 @@ use warnings; die "useage:perl $0 output_dir cancer_type project" unless @ARGV == 3; my ($output_dir, $cancer_type, $project) = @ARGV; +my $len = length($cancer_type); + +if ($len < 4) { + die "cancer_type 非ST开头且4位长度"; +} + my $database_path = defined $ENV{'DATABASE'} ? $ENV{'DATABASE'} : "/dataseq/jmdna/codes/reportbase"; print "Indication药物注释使用路径:$database_path\n"; open OUT, ">$output_dir/mutation/indication.txt"; print OUT "基因\t检测内容\t检测情况\t肿瘤类型\n"; -##本癌种FDA/NMPA/NCCN批准基因检测 -=pod -##疾病翻译信息 -open DIS,"/dataseq/jmdna/codes/reportbase/cancer_type.txt"; -my (%dis,%dis2); -; -while(){ - chomp; - my @line=split(/\t/); - $dis{lc$line[0]}=$line[1]; - push @{$dis2{$line[3]}},$line[0]; - push @{$dis2{$line[4]}},$line[0]; -} -=cut open DIS, "$database_path/oncotree.cancertype.20230801.txt"; ; @@ -33,18 +25,20 @@ while () { chomp; my @line = split(/\t/); $dis{lc $line[2]} = $line[3]; - # $dis{lc $line[4]} = $line[5]; push @{$dis2{$line[0]}}, lc $line[2]; - # push @{$dis2{$line[0]}}, lc $line[4]; push @id, $line[0]; } + foreach my $ID ($cancer_type) { my @family; - my @ids = split("", $ID); - for (my $i = 1; $i < @ids; $i = $i + 2) { - push @family, join("", @ids[0 .. $i]); - } - push @family, (grep {/^$ID/} @id); + # my @ids = split("", $ID); + # for (my $i = 1; $i < @ids; $i = $i + 2) { + # push @family, join("", @ids[0 .. $i]); + # } + # 取前 4位 再加上ST + my $match_id = substr($cancer_type, 0, 4); + push @family, (grep {/^$match_id/} @id); + push @family, "ST"; foreach my $t (@family) { push @{$dis2{$ID}}, @{$dis2{$t}}; }