svn commit: r484077 - in head/biology/canu: . files

Jason W. Bacon jwb at FreeBSD.org
Sun Nov 4 14:29:05 UTC 2018


Author: jwb
Date: Sun Nov  4 14:29:02 2018
New Revision: 484077
URL: https://svnweb.freebsd.org/changeset/ports/484077

Log:
  biology/canu: Upgrade to 1.8, add experimental SLURM integration
  
  Solves build issue with gcc8.
  
  PR:             232930
  Reported by:    gerald
  Approved by:    jrm (mentor, implicit)

Added:
  head/biology/canu/files/patch-pipelines_canu_Defaults.pm   (contents, props changed)
Modified:
  head/biology/canu/Makefile
  head/biology/canu/distinfo
  head/biology/canu/files/patch-pipelines_canu_Execution.pm
  head/biology/canu/pkg-plist

Modified: head/biology/canu/Makefile
==============================================================================
--- head/biology/canu/Makefile	Sun Nov  4 14:27:06 2018	(r484076)
+++ head/biology/canu/Makefile	Sun Nov  4 14:29:02 2018	(r484077)
@@ -2,8 +2,7 @@
 
 PORTNAME=		canu
 DISTVERSIONPREFIX=	v
-DISTVERSION=		1.7
-PORTREVISION=	2
+DISTVERSION=		1.8
 CATEGORIES=		biology java perl5
 
 MAINTAINER=	jwb at FreeBSD.org
@@ -21,9 +20,10 @@ RUN_DEPENDS=	gnuplot:math/gnuplot
 
 USES=		compiler:openmp gmake perl5
 USE_JAVA=	yes
+USE_GITHUB=	yes
+
 JAVA_RUN=	yes
 JAVA_VERSION=	1.8+
-USE_GITHUB=	yes
 GH_ACCOUNT=	marbl
 
 WRKSRC_SUBDIR=	src
@@ -44,12 +44,12 @@ post-patch:
 
 # Upstream does not want to use lib/perl5/site_perl
 post-build:
-	${MKDIR} ${WRKSRC}${PREFIX}/FreeBSD-${ARCH}/lib/perl5
+	@${MKDIR} ${WRKSRC}${PREFIX}/FreeBSD-${ARCH}/lib/perl5
 	${MV} ${WRKSRC}${PREFIX}/FreeBSD-${ARCH}/lib/site_perl \
 		${WRKSRC}${PREFIX}/FreeBSD-${ARCH}/lib/perl5
 
 do-install:
-	${MKDIR} ${STAGEDIR}${PREFIX}
+	@${MKDIR} ${STAGEDIR}${PREFIX}
 	(cd ${WRKSRC}${PREFIX}/FreeBSD-${ARCH} && \
 		${COPYTREE_BIN} bin ${STAGEDIR}${PREFIX})
 	# STRIP_CMD fails without this on 11.1 under poudriere

Modified: head/biology/canu/distinfo
==============================================================================
--- head/biology/canu/distinfo	Sun Nov  4 14:27:06 2018	(r484076)
+++ head/biology/canu/distinfo	Sun Nov  4 14:29:02 2018	(r484077)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1524325169
-SHA256 (marbl-canu-v1.7_GH0.tar.gz) = c5be54b0ad20729093413e7e722a19637d32e966dc8ecd2b579ba3e4958d378a
-SIZE (marbl-canu-v1.7_GH0.tar.gz) = 2533016
+TIMESTAMP = 1540317173
+SHA256 (marbl-canu-v1.8_GH0.tar.gz) = 30ecfe574166f54f79606038830f68927cf0efab33bdc3c6e43fd1448fa0b2e4
+SIZE (marbl-canu-v1.8_GH0.tar.gz) = 2465314

Added: head/biology/canu/files/patch-pipelines_canu_Defaults.pm
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/biology/canu/files/patch-pipelines_canu_Defaults.pm	Sun Nov  4 14:29:02 2018	(r484077)
@@ -0,0 +1,19 @@
+--- pipelines/canu/Defaults.pm.orig	2018-06-19 17:20:30 UTC
++++ pipelines/canu/Defaults.pm
+@@ -812,6 +812,16 @@ sub setDefaults () {
+     setDefault("gridEngineArraySubmitID",             undef, "Grid engine configuration, not documented");
+     setDefault("gridEngineJobID",                     undef, "Grid engine configuration, not documented");
+ 
++    #####  Slurm-specific parameters for controlling the number of
++    #####  cores / tasks dispatched per step or globally (WIP)
++
++    setDefault( 'slurmCormhapCoreLimit', undef, 'Maximum number of cores allocated for MHAP pre-computing and alignment within the correction phase' );
++    setDefault( 'slurmOvbCoreLimit', undef, 'Maximum number of single-core tasks dispatched for the ovlStore bucketizing step within the trimming phase' );
++    setDefault( 'slurmOvsCoreLimit', undef, 'Maximum number of single-core tasks dispatched for the ovlStore sorting step within the trimming phase' );
++    setDefault( 'slurmRedCoreLimit', undef, 'Maximum number of cores allocated for read error detection within the unitigging phase' );
++    setDefault( 'slurmArrayTaskLimit', undef, 'Maximum number of tasks permitted for each step throughout assembly' );
++    setDefault( 'slurmArrayCoreLimit', undef, 'Maximum number of cores allocated for each step throughout assembly' );
++
+     #####  Grid Engine Pipeline
+ 
+     setDefault("useGrid", 1, "If 'true', enable grid-based execution; if 'false', run all jobs on the local machine; if 'remote', create jobs for grid execution but do not submit; default 'true'");

Modified: head/biology/canu/files/patch-pipelines_canu_Execution.pm
==============================================================================
--- head/biology/canu/files/patch-pipelines_canu_Execution.pm	Sun Nov  4 14:27:06 2018	(r484076)
+++ head/biology/canu/files/patch-pipelines_canu_Execution.pm	Sun Nov  4 14:29:02 2018	(r484077)
@@ -1,8 +1,6 @@
-$NetBSD$
-
---- pipelines/canu/Execution.pm.orig	2017-04-17 19:32:38 UTC
+--- pipelines/canu/Execution.pm.orig	2018-06-18 02:42:11 UTC
 +++ pipelines/canu/Execution.pm
-@@ -293,10 +293,6 @@ sub skipStage ($$@) {
+@@ -303,10 +303,6 @@ sub skipStage ($$@) {
  sub getInstallDirectory () {
      my $installDir = $FindBin::RealBin;
  
@@ -12,4 +10,69 @@ $NetBSD$
 -
      return($installDir);
  }
+ 
+@@ -694,8 +690,8 @@ sub submitScript ($$) {
+ 
+ 
+ 
+-sub buildGridArray ($$$$) {
+-    my ($name, $bgn, $end, $opt) = @_;
++sub buildGridArray (@) {
++    my ( $name, $bgn, $end, $opt, $thr ) = @_;
+     my  $off = 0;
+ 
+     #  In some grids (SGE)   this is the maximum size of an array job.
+@@ -725,8 +721,42 @@ sub buildGridArray ($$$$) {
+         $off = "-F \"$off\"";
+     }
+ 
+-    $opt =~ s/ARRAY_NAME/$name/g;        #  Replace ARRAY_NAME with 'job name'
+-    $opt =~ s/ARRAY_JOBS/$bgn-$end/g;    #  Replace ARRAY_JOBS with 'bgn-end'
++    if( $opt =~ m/(ARRAY_NAME)/ )
++    {
++	$opt =~ s/$1/$name/; # Replace ARRAY_NAME with 'job name'
++    }
++    elsif( $opt =~ m/(ARRAY_JOBS)/ )
++    {
++	$opt =~ s/$1/$bgn-$end/; # Replace ARRAY_JOBS with 'bgn-end'
++
++	if( lc( getGlobal( 'gridEngine' ) ) eq 'slurm' && $end > 1 )
++	{
++	    if( $name =~ m/^cormhap_/i && defined getGlobal( 'slurmCormhapCoreLimit' ) )
++	    {
++		$opt .= '%' . int( getGlobal( 'slurmCormhapCoreLimit' ) / $thr );
++	    }
++	    elsif( $name =~ m/^ovb_/i && defined getGlobal( 'slurmOvbCoreLimit' ) )
++	    {
++		$opt .= '%' . getGlobal( 'slurmOvbCoreLimit' );
++	    }
++	    elsif( $name =~ m/^ovs_/i && defined getGlobal( 'slurmOvsCoreLimit' ) )
++	    {
++		$opt .= '%' . getGlobal( 'slurmOvsCoreLimit' );
++	    }
++	    elsif( $name =~ m/^red_/i && defined getGlobal( 'slurmRedCoreLimit' ) )
++	    {
++		$opt .= '%' . int( getGlobal( 'slurmRedCoreLimit' ) / $thr );
++	    }
++	    elsif( defined getGlobal( 'slurmArrayTaskLimit' ) )
++	    {
++		$opt .= '%' . getGlobal( 'slurmArrayTaskLimit' );
++	    }
++	    elsif( defined getGlobal( 'slurmArrayCoreLimit' ) )
++	    {
++		$opt .= '%' . int( getGlobal( 'slurmArrayCoreLimit' ) / $thr );
++	    }
++	}
++    }
+ 
+     return($opt, $off);
+ }
+@@ -870,7 +900,7 @@ sub buildGridJob ($$$$$$$$$) {
+     my $jobNameT               = makeUniqueJobName($jobType, $asm);
+ 
+     my ($jobName,  $jobOff)    = buildGridArray($jobNameT, $bgnJob, $endJob, getGlobal("gridEngineArrayName"));
+-    my ($arrayOpt, $arrayOff)  = buildGridArray($jobNameT, $bgnJob, $endJob, getGlobal("gridEngineArrayOption"));
++    my ( $arrayOpt, $arrayOff ) = buildGridArray( $jobNameT, $bgnJob, $endJob, getGlobal( "gridEngineArrayOption" ), $thr );
+ 
+     my $outputOption           = buildOutputOption($path, $script);
  

Modified: head/biology/canu/pkg-plist
==============================================================================
--- head/biology/canu/pkg-plist	Sun Nov  4 14:27:06 2018	(r484076)
+++ head/biology/canu/pkg-plist	Sun Nov  4 14:29:02 2018	(r484077)
@@ -4,14 +4,9 @@ bin/bogus
 bin/canu
 bin/canu.defaults
 bin/correctOverlaps
-bin/createFalconSenseInputs
 bin/dumpBlob
 bin/edalign
-bin/erateEstimate
 bin/errorEstimate
-bin/estimate-mer-threshold
-bin/existDB
-bin/falcon_sense
 bin/falconsense
 bin/fastqAnalyze
 bin/fastqSample
@@ -21,21 +16,16 @@ bin/filterCorrectionLayouts
 bin/filterCorrectionOverlaps
 bin/findErrors
 bin/findErrors-Dump
-bin/gatekeeperCreate
-bin/gatekeeperDumpFASTQ
-bin/gatekeeperDumpMetaData
-bin/gatekeeperPartition
 bin/generateCorrectionLayouts
-bin/leaff
 bin/loadCorrectedReads
+bin/loadErates
 bin/loadTrimmedReads
-bin/maskMers
-bin/merTrim
 bin/meryl
 bin/mhapConvert
 bin/mmapConvert
 bin/ovStoreBucketizer
 bin/ovStoreBuild
+bin/ovStoreConfig
 bin/ovStoreDump
 bin/ovStoreIndexer
 bin/ovStoreSorter
@@ -45,14 +35,15 @@ bin/overlapImport
 bin/overlapInCore
 bin/overlapInCorePartition
 bin/overlapPair
-bin/positionDB
 bin/prefixEditDistance-matchLimitGenerate
 bin/readConsensus
 bin/sequence
-bin/simple
-bin/simple-dump
 bin/splitHaplotype
 bin/splitReads
+bin/sqStoreCreate
+bin/sqStoreCreatePartition
+bin/sqStoreDumpFASTQ
+bin/sqStoreDumpMetaData
 bin/tgStoreCompress
 bin/tgStoreCoverageStat
 bin/tgStoreDump
@@ -60,17 +51,14 @@ bin/tgStoreFilter
 bin/tgStoreLoad
 bin/tgTigDisplay
 bin/trimReads
-bin/trioCanu
 bin/utgcns
+bin/wtdbgConvert
 lib/libcanu.a
-lib/libleaff.a
 %%SITE_PERL%%/canu/Configure.pm
 %%SITE_PERL%%/canu/Consensus.pm
 %%SITE_PERL%%/canu/CorrectReads.pm
 %%SITE_PERL%%/canu/Defaults.pm
-%%SITE_PERL%%/canu/ErrorEstimate.pm
 %%SITE_PERL%%/canu/Execution.pm
-%%SITE_PERL%%/canu/Gatekeeper.pm
 %%SITE_PERL%%/canu/Grid.pm
 %%SITE_PERL%%/canu/Grid_Cloud.pm
 %%SITE_PERL%%/canu/Grid_DNANexus.pm
@@ -88,5 +76,6 @@ lib/libleaff.a
 %%SITE_PERL%%/canu/OverlapMhap.pm
 %%SITE_PERL%%/canu/OverlapStore.pm
 %%SITE_PERL%%/canu/Report.pm
+%%SITE_PERL%%/canu/SequenceStore.pm
 %%SITE_PERL%%/canu/Unitig.pm
 %%JAVAJARDIR%%/mhap-2.1.3.jar


More information about the svn-ports-all mailing list