Mercurial > repos > ucsb-phylogenetics > osiris_phylogenetics
view phyloconversion/tnt2phytab.pl @ 0:5b9a38ec4a39 draft default tip
First commit of old repositories
author | osiris_phylogenetics <ucsb_phylogenetics@lifesci.ucsb.edu> |
---|---|
date | Tue, 11 Mar 2014 12:19:13 -0700 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/perl use strict; my $file = $ARGV[0]; # read file with genes open FILE, $file or die "ERROR: Cannot open file $file\n"; my $firstline=0; my $datatype; my $taxa; while (<FILE>) { my $currentinput = "$_"; if($firstline==0){ if($currentinput =~ m/nstates/){ my @splitlines=split(' ',$currentinput); $splitlines[2] =~ s/\;//; if($splitlines[2] == 2){ $datatype = "binary"; }elsif($splitlines[2] > 2){ $datatype = "multi"; } }else{ die "ERROR: file does not begin with nstates line. Must be TNT file exported from MorphoBank.org"; } } if($firstline==1){ if($currentinput =~ m/xread/){ }else{ die "ERROR: file does not contain xread line. Must be TNT file exported from MorphoBank.org"; } } if($firstline==2){ if($currentinput =~ m/Morpho/){ }else{ die "ERROR: file does not contain Morphobank Comment line. Must be TNT file exported from MorphoBank.org"; } } if($firstline==3){ if($currentinput =~ m/\d/){ my @splitlines=split(' ',$currentinput); $taxa = $splitlines[1]."\n"; }else{ die "ERROR: file does not contain number of taxa. Must be TNT file exported from MorphoBank.org"; } } if($firstline==4){ if($currentinput =~ m/\d/){ die "ERROR: file does not contain empty line after taxa numbers . Must be TNT file exported from MorphoBank.org"; }else{ } } if(($firstline>4)&&($firstline<(3+2+$taxa))){ my @splitlines=split(' ',$currentinput); print $splitlines[0]."\t".$datatype."\t".$splitlines[0]."_".$datatype."\t".$splitlines[1]."\n"; } $firstline++; }