Closed bsedio closed 2 months ago
Hey, to ensure that the pw and username do not end up in some logfile SIRIUS is expanding the environment variable by itself. so instead of expanding the variable within you shell script and providing the content of the variable to SIRIUS, just provide the environment variables name to SIRIUS.
So, instead of sirius login --password-env=${PASSENV} --user-env=${USERENV}
you have to use sirius login --password-env=PASSENV --user-env=USERENV
Hello Böcker Lab/Sirius Developers,
First, thank you for all of your amazing work. You have revolutionized metabolomics.
I am trying to run Sirius on the Frontera supercomputer at the Texas Advanced Computing Center (TACC), but the primary obstacle seems to be the login. We have tried to include the login in command line and have also tried to login interactively prior to launching jobs.
Command line: We have included the following code without a "slurm" file that launches a job, but it doesn't seem to succeed in logging us in:
PASSENV="password"
USERENV="sediob@utexas.edu"
sirius login --password-env=${PASSENV} --user-env=${USERENV}
We have also used the interactive option as follows:
Steps to log in to sirius:
1) Start an interactive job on a compute node:
idev
2) after the job starts, type:
module load tacc-apptainer
apptainer exec docker://wjallen/sirius:5.7.3 sirius login -u sediob@utexas.edu -p
3) It will prompt you to enter a password, so type:
password
4) Confirm that you successfully logged in using this command
apptainer exec docker://wjallen/sirius:5.7.3 sirius login --show
#
5) Launch your job using
#
sbatch siriusjob.slurm
# #
This method succeeds in logging us in, and saves a login token on Frontera.. But the token expires is about 27 hours, so if the job waits in the queue for longer than that, Sirius is no longer logged in when the job begins to run.
Ideally, it would be best if the command-line login option would work, as the login would occur as part of the job.
Below is an example slurm file (which assumes the user has logged in interactively):
!/bin/bash
SBATCH -J launcher-example # job name
SBATCH -o output.o%j # output file name (%j expands to SLURM jobID)
SBATCH -e output.e%j # error file name (%j expands to SLURM jobID)
SBATCH -N 1 # number of nodes requested
SBATCH -n 10 # total number of tasks to run in parallel
SBATCH -p development # queue (partition)
SBATCH -t 00:10:00 # run time (hh:mm:ss)
SBATCH -A DEB22002 # Allocation name to charge job against
SBATCH --mail-type=all # Send email at begin and end of job
SBATCH --mail-user=sediob@utexas.edu
This line puts this version of sirius in your path
export PATH=/work2/06619/sediob/sirius-5.7.3/bin:$PATH
module load tacc-apptainer SIRIUS_CTR="apptainer exec docker://wjallen/sirius:5.7.3"
Copy inputs to scratch
RUNDIR="$SCRATCH/SiriusInputsTemp/" mkdir -p ${RUNDIR} cp -r inputs ${RUNDIR}
Write the list of tasks to run into a file
rm -f list_of_tasks for FILENAME in $( ls inputs ) do FILEPREFIX=$(basename $FILENAME .mgf) echo "$SIRIUS_CTR sirius --cores=8 --input=${RUNDIR}/inputs/${FILENAME} --output=${RUNDIR}/${FILEPREFIX} config --IsotopeSettings.filter=true --FormulaSearchDB=none --Timeout.secondsPerTree=0 --FormulaSettings.enforced=HCNOPS --Timeout.secondsPerInstance=0 --AdductSettings.detectable=[[M+K]+,[M+H3N+H]+,[M+Na]+,[M-H4O2+H]+,[M-H2O+H]+,[M+H]+] --UseHeuristic.mzToUseHeuristicOnly=650 --AlgorithmProfile=orbitrap --IsotopeMs2Settings=IGNORE --MS2MassDeviation.allowedMassDeviation=5.0ppm --NumberOfCandidatesPerIon=1 --UseHeuristic.mzToUseHeuristic=300 --FormulaSettings.detectable=B,Cl,Br,Se --NumberOfCandidates=10 --ZodiacNumberOfConsideredCandidatesAt300Mz=10 --ZodiacRunInTwoSteps=true --ZodiacEdgeFilterThresholds.minLocalConnections=10 --ZodiacEdgeFilterThresholds.thresholdFilter=0.95 --ZodiacEpochs.burnInPeriod=2000 --ZodiacEpochs.numberOfMarkovChains=10 --ZodiacNumberOfConsideredCandidatesAt800Mz=50 --ZodiacEpochs.iterations=20000 --AdductSettings.enforced=, --AdductSettings.fallback=[[M+K]+,[M+Na]+,[M+H]+] --FormulaResultThreshold=true --InjectElGordoCompounds=true --StructureSearchDB=BIO,GNPS,KEGG,KEGGMINE,UNDP,PLANTCYC,PUBCHEM,PUBMED --RecomputeResults=false formula -p orbitrap fingerprint structure compound-classes write-summaries --output ${RUNDIR}/${FILEPREFIX}" >> list_of_tasks done
These lines configure and run launcher
module load launcher export LAUNCHER_JOB_FILE=list_of_tasks ${LAUNCHER_DIR}/paramrun
Copy results back to work
rsync -av ${RUNDIR} ./ --exclude inputs
Thank you for any help regarding our issues logging in, Brian