diff SampleDEGseqMerge.pl @ 23:cad6a1dfb174 draft

Uploaded
author big-tiandm
date Wed, 05 Nov 2014 21:11:49 -0500
parents 07745c0958dd
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SampleDEGseqMerge.pl	Wed Nov 05 21:11:49 2014 -0500
@@ -0,0 +1,94 @@
+#!/usr/bin/perl -w
+#Filename:
+#Author: Tian Dongmei
+#Email: chentt@big.ac.cn
+#Date: 2014-05-21
+#Modified:
+#Description: merged deg file and total information
+my $version=1.00;
+
+use strict;
+use Getopt::Long;
+
+my %opts;
+GetOptions(\%opts,"i:s@","mark:s@","f:s","o=s","n=s","h");
+if (!(defined $opts{o} ) || defined $opts{h}) { #necessary arguments
+&usage;
+}
+
+my @filein=@{$opts{'i'}};
+my @mark=@{$opts{'mark'}};
+my $fileout=$opts{'o'};
+my $number=$opts{'n'};
+
+my %hash;
+open IN,"<$filein[0]"; #input file  
+
+while (my $aline=<IN>) {
+	chomp $aline;
+	next if($aline=~/^\"/);
+	my @temp=split/\t/,$aline;
+	$hash{$temp[0]}=$temp[4]."\t".$temp[6]."\t".$temp[7]."\t".$temp[-1];
+}
+close IN;
+
+for (my $i=1;$i<=$#filein;$i++) {
+	open IN,"<$filein[$i]"; #input file  
+
+	while (my $aline=<IN>) {
+		chomp $aline;
+		next if($aline=~/^\"/);
+		my @temp=split/\t/,$aline;
+		if (!(defined $hash{$temp[0]})) {
+			print "Not find $temp[0]in sample one!\n";
+			next;
+		}
+		$hash{$temp[0]} .="\t".$temp[4]."\t".$temp[6]."\t".$temp[7]."\t".$temp[-1];
+	}
+	close IN;
+}
+
+open OUT,">$fileout"; #output file  
+my $deg_title;
+foreach (@mark) {
+	$deg_title.="log2(Fold_change)\tp_value\tq_value\t".$_."\t";
+}
+$deg_title=~s/\s+$//;
+my %function;
+my $title;
+open F,"<$opts{f}";
+while (my $aline=<F>) {
+	chomp $aline;
+	if($aline=~/^\#/){
+		my $title=$aline;
+		my @title=split/\t/,$aline;
+		$title[2+$number].="\t".$deg_title;
+		$title=join"\t",@title;
+		print OUT "$title\n";
+		next;
+	}
+	my @temp=split/\t/,$aline;
+	$temp[2+$number].="\t".$hash{$temp[0]};
+	my $temp=join"\t",@temp;
+	print OUT "$temp\n";
+
+}
+close F;
+close OUT;
+
+sub usage{
+print <<"USAGE";
+Version $version
+Usage:
+$0 -i -o -mark -f
+options:
+-i input file # -i output_score.txt -i output_score.txt -i output_score.txt
+-mark  sample name  # -mark sam1_VS_sam2 -mark sam1_VS_sam3 -mark sam2_VS_sam3
+-f cluster file
+-n sample number
+-o output file
+-h help
+USAGE
+exit(1);
+}
+