#!/bin/bash - # # This script will start Artemis on a UNIX system. # QUIET=no PRG=$0 usage () { echo "SYNOPSIS" echo " Artemis: Genome Browser and Annotation Tool" echo "USAGE" echo " $0 [options] <SEQUENCE_FILE> [+FEATURE_FILE ...]" echo "OPTIONS" echo " SEQUENCE_FILE An EMBL, GenBank, FASTA, or GFF3 file" echo " FEATURE_FILE An Artemis TAB file, or GFF file" echo echo " -options FILE Read a text file of options from FILE" echo " -chado Connect to a Chado database (using PGHOST, PGPORT, PGDATABASE, PGUSER environment variables)" echo echo " -Dblack_belt_mode=? Keep warning messages to a minimum [true,false]" echo " -Doffset=XXX Open viewer at base position XXX [integer >= 1]" echo " -Duserplot=FILE[,FILE2] Open one or more userplots" echo " -Dloguserplot=FILE[,FILE2] Open one or more userplots, take log(data)" echo " -Dbam=FILE[,FILE2,...] Open one or more BAM, CRAM, VCF or BCF files" echo " -DbamClone=n Open all BAM, CRAM, VCF or BCF files in multiple (n > 1) panels" echo " -Dbam[1,2,..]=FILE[,FILE2,..] Open BAM, CRAM, VCF or BCF files in separate panels" echo " -Dshow_snps Show SNP marks in BamView" echo " -Dshow_snp_plot Open SNP plot in BamView" echo " -Dshow_cov_plot Open coverage plot in BamView" echo " -Dshow_forward_lines=? Hide/show forward frame lines [true,false]" echo " -Dshow_reverse_lines=? Hide/show reverse frame lines [true,false]" echo " -Dchado=\"h:p/d?u\" Get Artemis to open this CHADO database" echo " -Dread_only Open CHADO database read-only" echo "EXAMPLES" echo " % art AJ006275.embl" echo " % art contigs.fa +annotation.gff +islands.tab" echo " % art -Dblack_belt_mode=true -Dbam=ecoli_hiseq.bam E_coli_K12.gbk" echo " % art -Duserplot=repeatmap.plot,geecee.plot Plasmid.gff3" echo "HOMEPAGE" echo " http://www.sanger.ac.uk/science/tools/artemis" echo exit 1 } add_proxy_properties() { if [[ "$http_proxy" = "" ]] then http_proxy=$HTTP_PROXY fi if [[ "$http_proxy" = "" ]] then http_proxy=$HTTP_proxy fi if [[ "$http_proxy" != "" ]] then APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -DproxySet=true "`echo $http_proxy | sed 's/http:\/\/\(.*\):\(.*\)/ -Dhttp.proxyHost=\1 -Dhttp.proxyPort=\2/'` fi } # # Resolve links - $0 may be a link # while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '.*/.*' > /dev/null; then PRG="$link" else PRG="`dirname $PRG`/$link" fi done # Special Sanger override on chado PGUSER if [[ "$ARTEMIS_SANGER_DBUSER" != "" ]] then export PGUSER=$ARTEMIS_SANGER_DBUSER fi # # Parse arguments. # APPLICATION_PROPERTIES="-Djdbc.drivers=org.postgresql.Driver -Dartemis.environment=UNIX $SANGER_ARTEMIS_OPTIONS" while test $# != 0 do case $1 in -options) APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Dextra_options=$2"; shift ;; -chado) APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Dchado=$PGHOST:$PGPORT/$PGDATABASE?$PGUSER -Dibatis" ;; -D*) APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES $1" ;; -quiet) QUIET=yes ; APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Drun_quietly=true" ;; -help) usage ;; --help) usage ;; -h) usage ;; *) break ;; esac shift done APPLICATION_HOME=`dirname "$PRG"` JAR_NAME=artemis.jar JAR_FILE_DEFAULT=$APPLICATION_HOME/target/jars/$JAR_NAME JAR_FILE_INSTALLED=$APPLICATION_HOME/dist/$JAR_NAME # # Use a custom Java version if necessary # if [[ "$ARTEMIS_JAVA_JRE" = "" ]] then JAVA=`which java` else JAVA_HOME=$ARTEMIS_JAVA_JRE JAVA=$ARTEMIS_JAVA_JRE/bin/java fi # # Allow URLs to work from behind firewalls. # add_proxy_properties # # "-mx2g" sets the maximum amount of memory to use. # This may need to be increased when dealing with large files # if [[ "$ARTEMIS_JVM_FLAGS" = "" ]] then FLAGS="-mx2g -ms100m -noverify" else FLAGS="$ARTEMIS_JVM_FLAGS -noverify" fi # # Temporary flags to avoid Java 9+ reflection warnings being written to the terminal. # Should not be necessary when Ibatis is replaced. # FLAGS="$FLAGS --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" PLATTMP=`uname` if [[ "$PLATTMP" = "Darwin" ]] then APPLICATION_PROPERTIES="$APPLICATION_PROPERTIES -Dapple.laf.useScreenMenuBar=true -Xdock:name=Artemis" fi if [[ "$QUIET" = "no" ]] then echo "Starting Artemis with arguments: $FLAGS $APPLICATION_PROPERTIES $*" fi $JAVA $FLAGS $APPLICATION_PROPERTIES -cp "$APPLICATION_HOME:$JAR_FILE_DEFAULT:$JAR_FILE_INSTALLED" uk.ac.sanger.artemis.components.ArtemisMain $* result=$? exit $result