Mercurial > repos > dereeper > sniplay
diff MDSplot/MDSbasedOnIBSmatrix.pl.org @ 1:420b57c3c185 draft
Uploaded
author | dereeper |
---|---|
date | Fri, 10 Jul 2015 04:39:30 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MDSplot/MDSbasedOnIBSmatrix.pl.org Fri Jul 10 04:39:30 2015 -0400 @@ -0,0 +1,77 @@ +#!/usr/bin/perl + +use strict; +use Switch; +use Getopt::Long; +use Bio::SeqIO; + +my $PLINK_EXE= "/apps/www/sniplay.cirad.fr/tools/plink/plink-1.07-x86_64/plink"; + +my $usage = qq~Usage:$0 <args> [<opts>] +where <args> are: + -i, --in <input> + -o, --out <output> +~; +$usage .= "\n"; + +my ($in,$out); + + +GetOptions( + "in=s" => \$in, + "out=s" => \$out +); + +die $usage + if ( !$in || !$out); + + +my $plink_command = $PLINK_EXE . " --file $in --noweb --cluster --matrix --mds-plot 2 --out $out >>$in.plink.log 2>&1"; +system($plink_command); + +my $awk_cmd = "awk \{\'print \$1\'\} $in.ped"; +my $inds = `$awk_cmd`; +my @individuals = split("\n",$inds); + + +open(my $OUT,">$out.mds_plot.txt"); +my $go = 0; +open(my $O,"$out.mds"); +while(<$O>) +{ + if ($go) + { + my $line = $_; + $line =~s/\n//g; + $line =~s/\r//g; + my @i = split(/\s+/,$line); + my $ind = $i[1]; + print $OUT "$ind ".$i[4]." ".$i[5]."\n"; + } + if (/C1/){$go = 1;} +} +close($O); +close($OUT); + + +my $j = 0; +open(my $IBS,">$out.ibs_matrix.txt"); +print $IBS "Individuals " . join("\t",@individuals)."\n"; +open(my $O2,"$out.mibs"); +while(<$O2>) +{ + my $line = $_; + $line =~s/\n//g; + $line =~s/\r//g; + my @i = split(/\s+/,$line); + print $IBS $individuals[$j]. " ". join("\t",@i)."\n"; + $j++; +} +close($O2); +close($IBS); + + + + + +