Skip to content
Commits on Source (3)
STAR 2.6.1b 2018/09/06
======================
* Fixed a problem with --outSAMfilter KeepOnlyAddedReferences option.
* Fixed a problem with output of an empty sorted BAM.
STAR 2.6.1a 2018/08/14
======================
......
rna-star (2.6.1b+dfsg-1) unstable; urgency=medium
* New upstream version.
* Bump Standards-Version.
-- Steffen Moeller <moeller@debian.org> Tue, 18 Sep 2018 18:53:06 +0200
rna-star (2.6.1a+dfsg-1) unstable; urgency=medium
* New upstream release.
......
......@@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 11),
libhts-dev,
vim-common,
zlib1g-dev
Standards-Version: 4.1.4
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/med-team/rna-star
Vcs-Git: https://salsa.debian.org/med-team/rna-star.git
Homepage: https://github.com/alexdobin/STAR/
......
......@@ -127,7 +127,7 @@ void BAMoutput::coordBins() {//define genomic starts for bins
if (P.runThreadN>1) pthread_mutex_lock(&g_threadChunks.mutexBAMsortBins);
if (P.outBAMsortingBinStart[0]!=0) {//it's set to 0 only after the bin sizes are determined
//extract coordinates and sort
uint *startPos = new uint [binTotalN[0]];//array of aligns start positions
uint *startPos = new uint [binTotalN[0]+1];//array of aligns start positions
for (uint ib=0,ia=0;ia<binTotalN[0];ia++) {
uint32 *bamIn32=(uint32*) (binStart[0]+ib);
startPos[ia] =( ((uint) bamIn32[1]) << 32) | ( (uint)bamIn32[2] );
......
......@@ -336,10 +336,10 @@ void Genome::genomeLoad(){//allocate and load Genome
else if (pGe.gLoad=="NoSharedMemory") // simply allocate memory, do not use shared memory
{
genomeInsertL=0;
genomeInsertChrIndFirst=nChrReal;
if (pGe.gFastaFiles.at(0)!="-")
{//will insert sequences in the genome, now estimate the extra size
uint oldlen=chrStart.back();//record the old length
genomeInsertChrIndFirst=nChrReal;
genomeInsertL=genomeScanFastaFiles(P, G, false, *this)-oldlen;
};
......
......@@ -737,6 +737,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
if ( (outSAMfilter.KeepOnlyAddedReferences || outSAMfilter.KeepAllAddedReferences) && pGe.gFastaFiles.at(0)=="-" ) {
ostringstream errOut;
errOut <<"EXITING because of FATAL INPUT ERROR: --outSAMfilter KeepOnlyAddedReferences OR KeepAllAddedReferences options can only be used if references are added on-the-fly with --genomeFastaFiles" <<"\n";
errOut <<"SOLUTION: use default --outSAMfilter None, OR add references with --genomeFataFiles\n";
exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
if (outMultimapperOrder.mode=="Old_2.4")
{
outMultimapperOrder.random=false;
......
......@@ -403,11 +403,20 @@ int main(int argInN, char* argIn[]) {
errOut <<"EXITING because of fatal ERROR: not enough memory for BAM sorting: \n";
errOut <<"SOLUTION: re-run STAR with at least --limitBAMsortRAM " <<maxMem+1000000000;
exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P);
} else if(maxMem==0) {
P.inOut->logMain << "WARNING: nothing to sort - no output alignments" <<endl;
BGZF *bgzfOut;
bgzfOut=bgzf_open(P.outBAMfileCoordName.c_str(),("w"+to_string((long long) P.outBAMcompression)).c_str());
if (bgzfOut==NULL) {
ostringstream errOut;
errOut <<"EXITING because of fatal ERROR: could not open output bam file: " << P.outBAMfileCoordName << "\n";
errOut <<"SOLUTION: check that the disk is not full, increase the max number of open files with Linux command ulimit -n before running STAR";
exitWithError(errOut.str(), std::cerr, P.inOut->logMain, EXIT_CODE_PARAMETER, P);
};
outBAMwriteHeader(bgzfOut,P.samHeaderSortedCoord,mainGenome.chrNameAll,mainGenome.chrLengthAll);
bgzf_close(bgzfOut);
} else {//sort
uint totalMem=0;
// P.inOut->logMain << "Started sorting BAM ..." <<endl;
#pragma omp parallel num_threads(P.outBAMsortingThreadNactual)
#pragma omp for schedule (dynamic,1)
for (uint32 ibin1=0; ibin1<nBins; ibin1++) {
......@@ -439,6 +448,7 @@ int main(int argInN, char* argIn[]) {
totalMem-=newMem;//"release" RAM
};
};
//concatenate all BAM files, using bam_cat
char **bamBinNames = new char* [nBins];
vector <string> bamBinNamesV;
......@@ -455,6 +465,7 @@ int main(int argInN, char* argIn[]) {
};
bam_cat(bamBinNamesV.size(), bamBinNames, 0, P.outBAMfileCoordName.c_str());
};
};
//wiggle output
if (P.outWigFlags.yes) {
*(P.inOut->logStdOut) << timeMonthDayTime() << " ..... started wiggle output\n" <<flush;
......
#define STAR_VERSION "STAR_2.6.1a"
#define STAR_VERSION "STAR_2.6.1b"