<?xml version="1.0" encoding="UTF-8"?>
<!--

    dsh-bio-tools  Command line tools.
    Copyright (c) 2013-2026 held jointly by the individual authors.

    This library is free software; you can redistribute it and/or modify it
    under the terms of the GNU Lesser General Public License as published
    by the Free Software Foundation; either version 3 of the License, or (at
    your option) any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
    License for more details.

    You should have received a copy of the GNU Lesser General Public License
    along with this library;  if not, write to the Free Software Foundation,
    Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.

    > http://www.fsf.org/licensing/licenses/lgpl.html
    > http://www.opensource.org/licenses/lgpl-license.php

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <packaging>jar</packaging>
  <parent>
    <groupId>org.dishevelled</groupId>
    <artifactId>dsh-bio</artifactId>
    <version>4.0</version>
  </parent>
  <artifactId>dsh-bio-tools</artifactId>
  <name>dsh-bio-tools</name>
  <description>Command line tools.</description>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-align</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-alignment</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-assembly</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-feature</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-protein</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-range</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-read</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dishevelled</groupId>
        <artifactId>dsh-bio-variant</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.github.davidmoten</groupId>
      <artifactId>rtree</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>google-cloud-nio</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-csv</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math3</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.biojava</groupId>
      <artifactId>alignment</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.biojava</groupId>
      <artifactId>core</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.biojava</groupId>
      <artifactId>sequencing</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-commandline</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-compress</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-align</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-alignment</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-assembly</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-feature</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-protein</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-range</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-read</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.dishevelled</groupId>
      <artifactId>dsh-bio-variant</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.duckdb</groupId>
      <artifactId>duckdb_jdbc</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>software.amazon.nio.s3</groupId>
      <artifactId>aws-java-nio-spi-for-s3</artifactId>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>templating-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>filter-src</id>
            <goals>
              <goal>filter-sources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>pl.project13.maven</groupId>
        <artifactId>git-commit-id-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>revision</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- note:  order matters here, since all use package execution -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <configuration>
          <extraJvmArguments>--enable-native-access=ALL-UNNAMED</extraJvmArguments>
          <repositoryLayout>flat</repositoryLayout>
          <repositoryName>lib</repositoryName>
          <programs>
            <program>
              <id>dsh-bin-fastq-quality-scores</id>
              <mainClass>org.dishevelled.bio.tools.BinFastqQualityScores</mainClass>
            </program>
            <program>
              <id>dsh-compress-bed</id>
              <mainClass>org.dishevelled.bio.tools.CompressBed</mainClass>
            </program>
            <program>
              <id>dsh-compress-fasta</id>
              <mainClass>org.dishevelled.bio.tools.CompressFasta</mainClass>
            </program>
            <program>
              <id>dsh-compress-fastq</id>
              <mainClass>org.dishevelled.bio.tools.CompressFastq</mainClass>
            </program>
            <program>
              <id>dsh-compress-gaf</id>
              <mainClass>org.dishevelled.bio.tools.CompressGaf</mainClass>
            </program>
            <program>
              <id>dsh-compress-gfa1</id>
              <mainClass>org.dishevelled.bio.tools.CompressGfa1</mainClass>
            </program>
            <program>
              <id>dsh-compress-gfa2</id>
              <mainClass>org.dishevelled.bio.tools.CompressGfa2</mainClass>
            </program>
            <program>
              <id>dsh-compress-gff3</id>
              <mainClass>org.dishevelled.bio.tools.CompressGff3</mainClass>
            </program>
            <program>
              <id>dsh-compress-vcf</id>
              <mainClass>org.dishevelled.bio.tools.CompressVcf</mainClass>
            </program>
            <program>
              <id>dsh-compress-paf</id>
              <mainClass>org.dishevelled.bio.tools.CompressPaf</mainClass>
            </program>
            <program>
              <id>dsh-compress-rgfa</id>
              <mainClass>org.dishevelled.bio.tools.CompressRgfa</mainClass>
            </program>
            <program>
              <id>dsh-compress-sam</id>
              <mainClass>org.dishevelled.bio.tools.CompressSam</mainClass>
            </program>
            <program>
              <id>dsh-count-fastq</id>
              <mainClass>org.dishevelled.bio.tools.CountFastq</mainClass>
            </program>
            <program>
              <id>dsh-create-sequence-dictionary</id>
              <mainClass>org.dishevelled.bio.tools.CreateSequenceDictionary</mainClass>
            </program>
            <program>
              <id>dsh-disinterleave-fastq</id>
              <mainClass>org.dishevelled.bio.tools.DisinterleaveFastq</mainClass>
            </program>
            <program>
              <id>dsh-downsample-fastq</id>
              <mainClass>org.dishevelled.bio.tools.DownsampleFastq</mainClass>
            </program>
            <program>
              <id>dsh-downsample-interleaved-fastq</id>
              <mainClass>org.dishevelled.bio.tools.DownsampleInterleavedFastq</mainClass>
            </program>
            <program>
              <id>dsh-export-segments</id>
              <mainClass>org.dishevelled.bio.tools.ExportSegments</mainClass>
            </program>
            <program>
              <id>dsh-extract-fasta-kmers</id>
              <mainClass>org.dishevelled.bio.tools.ExtractFastaKmers</mainClass>
            </program>
            <program>
              <id>dsh-extract-fasta-kmers-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.ExtractFastaKmersToParquet</mainClass>
            </program>
            <program>
              <id>dsh-extract-fasta-kmers-to-partitioned-parquet</id>
              <mainClass>org.dishevelled.bio.tools.ExtractFastaKmersToPartitionedParquet</mainClass>
            </program>
            <program>
              <id>dsh-extract-fastq</id>
              <mainClass>org.dishevelled.bio.tools.ExtractFastq</mainClass>
            </program>
            <program>
              <id>dsh-extract-fastq-by-length</id>
              <mainClass>org.dishevelled.bio.tools.ExtractFastqByLength</mainClass>
            </program>
            <program>
              <id>dsh-extract-uniprot-features</id>
              <mainClass>org.dishevelled.bio.tools.ExtractUniprotFeatures</mainClass>
            </program>
            <program>
              <id>dsh-extract-uniprot-features-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.ExtractUniprotFeaturesToParquet</mainClass>
            </program>
            <program>
              <id>dsh-extract-uniprot-features-to-partitioned-parquet</id>
              <mainClass>org.dishevelled.bio.tools.ExtractUniprotFeaturesToPartitionedParquet</mainClass>
            </program>
            <program>
              <id>dsh-extract-uniprot-sequences</id>
              <mainClass>org.dishevelled.bio.tools.ExtractUniprotSequences</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-fastq</id>
              <mainClass>org.dishevelled.bio.tools.FastaToFastq</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-pangenome</id>
              <mainClass>org.dishevelled.bio.tools.FastaToPangenome</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-pangenome-tree</id>
              <mainClass>org.dishevelled.bio.tools.FastaToPangenomeTree</mainClass>
            </program>
            <program>
              <id>dsh-fasta-index-to-pangenome</id>
              <mainClass>org.dishevelled.bio.tools.FastaIndexToPangenome</mainClass>
            </program>
            <program>
              <id>dsh-fasta-index-to-pangenome-tree</id>
              <mainClass>org.dishevelled.bio.tools.FastaIndexToPangenomeTree</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.FastaToParquet</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-partitioned-parquet</id>
              <mainClass>org.dishevelled.bio.tools.FastaToPartitionedParquet</mainClass>
            </program>
            <program>
              <id>dsh-fasta-to-text</id>
              <mainClass>org.dishevelled.bio.tools.FastaToText</mainClass>
            </program>
            <program>
              <id>dsh-fastq-description</id>
              <mainClass>org.dishevelled.bio.tools.FastqDescription</mainClass>
            </program>
            <program>
              <id>dsh-fastq-sequence-length</id>
              <mainClass>org.dishevelled.bio.tools.FastqSequenceLength</mainClass>
            </program>
            <program>
              <id>dsh-fastq-to-bam</id>
              <mainClass>org.dishevelled.bio.tools.FastqToBam</mainClass>
            </program>
            <program>
              <id>dsh-fastq-to-fasta</id>
              <mainClass>org.dishevelled.bio.tools.FastqToFasta</mainClass>
            </program>
            <program>
              <id>dsh-fastq-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.FastqToParquet</mainClass>
            </program>
            <program>
              <id>dsh-fastq-to-partitioned-parquet</id>
              <mainClass>org.dishevelled.bio.tools.FastqToPartitionedParquet</mainClass>
            </program>
            <program>
              <id>dsh-fastq-to-text</id>
              <mainClass>org.dishevelled.bio.tools.FastqToText</mainClass>
            </program>
            <program>
              <id>dsh-filter-bed</id>
              <mainClass>org.dishevelled.bio.tools.FilterBed</mainClass>
            </program>
            <program>
              <id>dsh-filter-fasta</id>
              <mainClass>org.dishevelled.bio.tools.FilterFasta</mainClass>
            </program>
            <program>
              <id>dsh-filter-fastq</id>
              <mainClass>org.dishevelled.bio.tools.FilterFastq</mainClass>
            </program>
            <program>
              <id>dsh-filter-gaf</id>
              <mainClass>org.dishevelled.bio.tools.FilterGaf</mainClass>
            </program>
            <program>
              <id>dsh-filter-gfa1</id>
              <mainClass>org.dishevelled.bio.tools.FilterGfa1</mainClass>
            </program>
            <program>
              <id>dsh-filter-gfa2</id>
              <mainClass>org.dishevelled.bio.tools.FilterGfa2</mainClass>
            </program>
            <program>
              <id>dsh-filter-gff3</id>
              <mainClass>org.dishevelled.bio.tools.FilterGff3</mainClass>
            </program>
            <program>
              <id>dsh-filter-paf</id>
              <mainClass>org.dishevelled.bio.tools.FilterPaf</mainClass>
            </program>
            <program>
              <id>dsh-filter-rgfa</id>
              <mainClass>org.dishevelled.bio.tools.FilterRgfa</mainClass>
            </program>
            <program>
              <id>dsh-filter-sam</id>
              <mainClass>org.dishevelled.bio.tools.FilterSam</mainClass>
            </program>
            <program>
              <id>dsh-filter-vcf</id>
              <mainClass>org.dishevelled.bio.tools.FilterVcf</mainClass>
            </program>
            <program>
              <id>dsh-gfa1-to-gfa2</id>
              <mainClass>org.dishevelled.bio.tools.Gfa1ToGfa2</mainClass>
            </program>
            <program>
              <id>dsh-gff3-to-bed</id>
              <mainClass>org.dishevelled.bio.tools.Gff3ToBed</mainClass>
            </program>
            <program>
              <id>dsh-identify-gfa1</id>
              <mainClass>org.dishevelled.bio.tools.IdentifyGfa1</mainClass>
            </program>
            <program>
              <id>dsh-interleave-fastq</id>
              <mainClass>org.dishevelled.bio.tools.InterleaveFastq</mainClass>
            </program>
            <program>
              <id>dsh-interleaved-fastq-to-bam</id>
              <mainClass>org.dishevelled.bio.tools.InterleavedFastqToBam</mainClass>
            </program>
            <program>
              <id>dsh-links-to-cytoscape-edges</id>
              <mainClass>org.dishevelled.bio.tools.LinksToCytoscapeEdges</mainClass>
            </program>
            <program>
              <id>dsh-links-to-property-graph</id>
              <mainClass>org.dishevelled.bio.tools.LinksToPropertyGraph</mainClass>
            </program>
            <program>
              <id>dsh-list-filesystems</id>
              <mainClass>org.dishevelled.bio.tools.ListFilesystems</mainClass>
            </program>
            <program>
              <id>dsh-parquet-reads-to-fastq</id>
              <mainClass>org.dishevelled.bio.tools.ParquetReadsToFastq</mainClass>
            </program>
            <program>
              <id>dsh-parquet-sequences-to-fasta</id>
              <mainClass>org.dishevelled.bio.tools.ParquetSequencesToFasta</mainClass>
            </program>
            <program>
              <id>dsh-reassemble-paths</id>
              <mainClass>org.dishevelled.bio.tools.ReassemblePaths</mainClass>
            </program>
            <program>
              <id>dsh-remap-dbsnp</id>
              <mainClass>org.dishevelled.bio.tools.RemapDbSnp</mainClass>
            </program>
            <program>
              <id>dsh-remap-phase-set</id>
              <mainClass>org.dishevelled.bio.tools.RemapPhaseSet</mainClass>
            </program>
            <program>
              <id>dsh-rename-bed-references</id>
              <mainClass>org.dishevelled.bio.tools.RenameBedReferences</mainClass>
            </program>
            <program>
              <id>dsh-rename-gff3-references</id>
              <mainClass>org.dishevelled.bio.tools.RenameGff3References</mainClass>
            </program>
            <program>
              <id>dsh-rename-vcf-references</id>
              <mainClass>org.dishevelled.bio.tools.RenameVcfReferences</mainClass>
            </program>
            <program>
              <id>dsh-segments-to-cytoscape-nodes</id>
              <mainClass>org.dishevelled.bio.tools.SegmentsToCytoscapeNodes</mainClass>
            </program>
            <program>
              <id>dsh-segments-to-property-graph</id>
              <mainClass>org.dishevelled.bio.tools.SegmentsToPropertyGraph</mainClass>
            </program>
            <program>
              <id>dsh-split-bed</id>
              <mainClass>org.dishevelled.bio.tools.SplitBed</mainClass>
            </program>
            <program>
              <id>dsh-split-fasta</id>
              <mainClass>org.dishevelled.bio.tools.SplitFasta</mainClass>
            </program>
            <program>
              <id>dsh-split-fastq</id>
              <mainClass>org.dishevelled.bio.tools.SplitFastq</mainClass>
            </program>
            <program>
              <id>dsh-split-gaf</id>
              <mainClass>org.dishevelled.bio.tools.SplitGaf</mainClass>
            </program>
            <program>
              <id>dsh-split-gff3</id>
              <mainClass>org.dishevelled.bio.tools.SplitGff3</mainClass>
            </program>
            <program>
              <id>dsh-split-interleaved-fastq</id>
              <mainClass>org.dishevelled.bio.tools.SplitInterleavedFastq</mainClass>
            </program>
            <program>
              <id>dsh-split-paf</id>
              <mainClass>org.dishevelled.bio.tools.SplitPaf</mainClass>
            </program>
            <program>
              <id>dsh-split-sam</id>
              <mainClass>org.dishevelled.bio.tools.SplitSam</mainClass>
            </program>
            <program>
              <id>dsh-split-vcf</id>
              <mainClass>org.dishevelled.bio.tools.SplitVcf</mainClass>
            </program>
            <program>
              <id>dsh-summarize-uniprot-entries</id>
              <mainClass>org.dishevelled.bio.tools.SummarizeUniprotEntries</mainClass>
            </program>
            <program>
              <id>dsh-summarize-uniprot-entries-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.SummarizeUniprotEntriesToParquet</mainClass>
            </program>
            <program>
              <id>dsh-text-to-fasta</id>
              <mainClass>org.dishevelled.bio.tools.TextToFasta</mainClass>
            </program>
            <program>
              <id>dsh-text-to-fastq</id>
              <mainClass>org.dishevelled.bio.tools.TextToFastq</mainClass>
            </program>
            <program>
              <id>dsh-traversals-to-cytoscape-edges</id>
              <mainClass>org.dishevelled.bio.tools.TraversalsToCytoscapeEdges</mainClass>
            </program>
            <program>
              <id>dsh-traversals-to-property-graph</id>
              <mainClass>org.dishevelled.bio.tools.TraversalsToPropertyGraph</mainClass>
            </program>
            <program>
              <id>dsh-traverse-paths</id>
              <mainClass>org.dishevelled.bio.tools.TraversePaths</mainClass>
            </program>
            <program>
              <id>dsh-truncate-fasta</id>
              <mainClass>org.dishevelled.bio.tools.TruncateFasta</mainClass>
            </program>
            <program>
              <id>dsh-truncate-paths</id>
              <mainClass>org.dishevelled.bio.tools.TruncatePaths</mainClass>
            </program>
            <program>
              <id>dsh-variant-table-to-vcf</id>
              <mainClass>org.dishevelled.bio.tools.EnsemblVariantTableToVcf</mainClass>
            </program>
            <program>
              <id>dsh-vcf-header</id>
              <mainClass>org.dishevelled.bio.tools.VcfHeader</mainClass>
            </program>
            <program>
              <id>dsh-vcf-pedigree</id>
              <mainClass>org.dishevelled.bio.tools.VcfPedigree</mainClass>
            </program>
            <program>
              <id>dsh-vcf-samples</id>
              <mainClass>org.dishevelled.bio.tools.VcfSamples</mainClass>
            </program>
            <program>
              <id>dsh-vcf-to-parquet</id>
              <mainClass>org.dishevelled.bio.tools.VcfToParquet</mainClass>
            </program>
            <program>
              <id>dsh-vcf-to-partitioned-parquet</id>
              <mainClass>org.dishevelled.bio.tools.VcfToPartitionedParquet</mainClass>
            </program>
            <program>
              <id>dsh-bio</id>
              <mainClass>org.dishevelled.bio.tools.Tools</mainClass>
            </program>
          </programs>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>assemble</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
          </descriptors>
          <tarLongFileMode>posix</tarLongFileMode>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>timestamp-property</id>
            <goals>
              <goal>timestamp-property</goal>
            </goals>
            <configuration>
              <name>build-helper-maven-plugin.build.timestamp</name>
              <pattern>yyyy-MM-dd</pattern>
              <locale>en_US</locale>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
