47 lines
1 KiB
Perl
Executable file
47 lines
1 KiB
Perl
Executable file
#!/usr/local/bin/polymake --script
|
|
|
|
### Outputs minimal triangulations into sorted directories
|
|
|
|
use application "topaz";
|
|
use strict;
|
|
use warnings;
|
|
use DBI;
|
|
use File::Copy;
|
|
|
|
my $dbh = DBI->connect("dbi:Pg:dbname=researchdata_test", '', '', {AutoCommit => 0});
|
|
my $types = $dbh->prepare("SELECT DISTINCT(type) FROM complexes;"); ## select the types
|
|
|
|
|
|
|
|
my $paths = $dbh->prepare("SELECT signature,vertices,path FROM minimal_triangulations WHERE signature IN (SELECT signature FROM complexes WHERE type = (?));");
|
|
|
|
|
|
my $outdir = "minimal_triangulations";
|
|
if (! -d $outdir ) {
|
|
mkdir $outdir
|
|
}
|
|
|
|
$types->execute;
|
|
while (my @data = $types->fetchrow_array) {
|
|
my $type = shift @data;
|
|
if (not $type eq "") {
|
|
print "$type\n";
|
|
$paths->execute($type);
|
|
if (! -d "$outdir/$type" ) {
|
|
mkdir "$outdir/$type";
|
|
}
|
|
while (my @p = $paths->fetchrow_array) {
|
|
my $sig = shift @p;
|
|
my $vert = shift @p;
|
|
if (! -d "$outdir/$type/$vert" ) {
|
|
mkdir "$outdir/$type/$vert";
|
|
}
|
|
my $path = shift @p;
|
|
copy($path,"$outdir/$type/$vert/$sig.poly");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
$dbh->commit;
|
|
|