[med-svn] [Git][med-team/rna-star][master] 3 commits: New upstream version 2.6.0b+dfsg
Sascha Steinbiss
gitlab at salsa.debian.org
Mon May 7 14:14:07 BST 2018
Sascha Steinbiss pushed to branch master at Debian Med / rna-star
Commits:
2421a62d by Sascha Steinbiss at 2018-05-07T15:08:52+02:00
New upstream version 2.6.0b+dfsg
- - - - -
bd1d8c76 by Sascha Steinbiss at 2018-05-07T15:08:53+02:00
Update upstream source from tag 'upstream/2.6.0b+dfsg'
Update to upstream version '2.6.0b+dfsg'
with Debian dir bcfed05863ebef2d286b705da7977e012d8ba133
- - - - -
6188b6b3 by Sascha Steinbiss at 2018-05-07T15:13:44+02:00
new upstream release
- - - - -
9 changed files:
- CHANGES.md
- debian/changelog
- source/Parameters.cpp
- source/ReadAlign_chimericDetectionOldOutput.cpp
- source/ReadAlign_peOverlapMergeMap.cpp
- source/VERSION
- source/Variation.cpp
- source/Variation.h
- source/parametersDefault.xxd
Changes:
=====================================
CHANGES.md
=====================================
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,9 @@
+STAR 2.6.0b 2018/05/02
+======================
+
+* Fixed bugs introduced in 2.6.0a. Please see CHANGES and RELEASEnotes from 2.5.0a.
+
+
STAR 2.6.0a 2018/04/23
======================
=====================================
debian/changelog
=====================================
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+rna-star (2.6.0b+dfsg-1) unstable; urgency=medium
+
+ * New upstream release.
+
+ -- Sascha Steinbiss <satta at debian.org> Mon, 07 May 2018 15:09:13 +0200
+
rna-star (2.6.0a+dfsg-1) unstable; urgency=medium
[ Sascha Steinbiss ]
=====================================
source/Parameters.cpp
=====================================
--- a/source/Parameters.cpp
+++ b/source/Parameters.cpp
@@ -887,7 +887,14 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --varVCFfile /path/to/file.vcf\n";
exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
-
+
+
+ if (wasp.yes && outSAMtype.at(0)!="BAM") {
+ ostringstream errOut;
+ errOut <<"EXITING because of FATAL INPUT ERROR: --waspOutputMode requires output to BAM file\n";
+ errOut <<"SOLUTION: re-run STAR with --waspOutputMode ... and --outSAMtype BAM ... \n";
+ exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
+ };
//outSAMattributes
outSAMattrPresent.NH=false;//TODO re-write as class with constructor?
@@ -1050,7 +1057,7 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
};
-
+
if (pCh.out.bam && !outBAMunsorted && !outBAMcoord) {
ostringstream errOut;
errOut <<"EXITING because of fatal PARAMETERS error: --chimOutType WithinBAM requires BAM output\n";
@@ -1058,6 +1065,24 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
+ if (pCh.multimapNmax>0 && (pCh.out.bam || pCh.out.samOld)) {
+ ostringstream errOut;
+ errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax > 0 (new chimeric detection) presently only works with --chimOutType Junctions\n";
+ errOut <<"SOLUTION: re-run with --chimOutType Junctions\n";
+ exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
+ };
+
+ if (peOverlap.NbasesMin > 0) {
+ if (pCh.multimapNmax == 0 && (pCh.out.junctions || pCh.out.samOld)) {
+ ostringstream errOut;
+ errOut <<"EXITING because of fatal PARAMETERS error: --chimMultimapNmax 0 (default old chimeric detection) and --peOverlapNbasesMin > 0 (merging ovelrapping mates) presently only works with --chimOutType WithinBAM\n";
+ errOut <<"SOLUTION: re-run with --chimOutType WithinBAM\n";
+ exitWithError(errOut.str(), std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
+ };
+ };
+
+
+
if (pCh.out.bam && !outSAMattrPresent.NM) {
outSAMattrOrder.push_back(ATTR_NM);
inOut->logMain << "WARNING --chimOutType=WithinBAM, therefore STAR will output NM attribute" <<endl;
@@ -1217,8 +1242,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
if (pGe.gLoad!="NoSharedMemory") {
ostringstream errOut;
- errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with pGe.gLoad<<"<<pGe.gLoad<<"\n";
- errOut << "SOLUTION: re-run STAR with --genomeLoad NoSharedMemory ; this is the only compatible option at the moment.s\n";
+ errOut << "EXITING because of fatal PARAMETERS error: 2-pass method is not compatible with --genomeLoad "<<pGe.gLoad<<"\n";
+ errOut << "SOLUTION: re-run STAR with --genomeLoad NoSharedMemory ; this is the only option compatible with --twopassMode Basic .\n";
exitWithError(errOut.str(),std::cerr, inOut->logMain, EXIT_CODE_PARAMETER, *this);
};
twoPass.yes=true;
@@ -1359,6 +1384,8 @@ void Parameters::inputParameters (int argInN, char* argIn[]) {//input parameters
//peOverlap
if (peOverlap.NbasesMin>0) {
peOverlap.yes=true;
+ } else {
+ peOverlap.yes=false;
};
////////////////////////////////////////////////
=====================================
source/ReadAlign_chimericDetectionOldOutput.cpp
=====================================
--- a/source/ReadAlign_chimericDetectionOldOutput.cpp
+++ b/source/ReadAlign_chimericDetectionOldOutput.cpp
@@ -78,7 +78,7 @@ void ReadAlign::chimericDetectionOldOutput() {
};
- bamN+=alignBAM(trChim[itr], 1, 0, mapGen.chrStart[trChim[itr].Chr], mateChr, mateStart-mapGen.chrStart[mateChr], mateStrand, \
+ bamN+=alignBAM(trChim[itr], 1, 0, mapGen.chrStart[trChim[itr].Chr], mateChr, mateStart-mapGen.chrStart[(mateChr<mapGen.nChrReal ? mateChr : 0)], mateStrand, \
alignType, NULL, P.outSAMattrOrder, outBAMoneAlign+bamN, outBAMoneAlignNbytes+bamN);
bamBytesTotal+=outBAMoneAlignNbytes[0]+outBAMoneAlignNbytes[1];//outBAMoneAlignNbytes[1] = 0 if SE is recorded
};
@@ -110,39 +110,43 @@ void ReadAlign::chimericDetectionOldOutput() {
};
};
-
- for (uint iTr=0;iTr<chimN;iTr++)
- {//write all chimeric pieces to Chimeric.out.sam/junction
- if (P.readNmates==2) {//PE: need mate info
- uint iex=0;
- if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons-1][EX_iFrag] )
- {//the other segment has 2 mates, need to find the opposite mate
- for (;iex<trChim[1-iTr].nExons;iex++) {
- if (trChim[1-iTr].exons[iex][EX_iFrag]!=trChim[iTr].exons[0][EX_iFrag]) {
- break;
+ if (P.pCh.out.samOld) {
+ for (uint iTr=0;iTr<chimN;iTr++)
+ {//write all chimeric pieces to Chimeric.out.sam/junction
+ if (P.readNmates==2) {//PE: need mate info
+ uint iex=0;
+ if ( trChim[1-iTr].exons[0][EX_iFrag] != trChim[1-iTr].exons[trChim[1-iTr].nExons-1][EX_iFrag] )
+ {//the other segment has 2 mates, need to find the opposite mate
+ for (;iex<trChim[1-iTr].nExons;iex++) {
+ if (trChim[1-iTr].exons[iex][EX_iFrag]!=trChim[iTr].exons[0][EX_iFrag]) {
+ break;
+ };
};
};
- };
- uint mateChr=trChim[1-iTr].Chr;
- uint mateStart=trChim[1-iTr].exons[iex][EX_G];
- char mateStrand=(char) (trChim[1-iTr].Str!=trChim[1-iTr].exons[iex][EX_iFrag]);
+ uint mateChr=trChim[1-iTr].Chr;
+ uint mateStart=trChim[1-iTr].exons[iex][EX_G];
+ char mateStrand=(char) (trChim[1-iTr].Str!=trChim[1-iTr].exons[iex][EX_iFrag]);
- outputTranscriptSAM(trChim[iTr], chimN, iTr, mateChr, mateStart, mateStrand, -1, NULL, &chunkOutChimSAM);
- } else
- {
- outputTranscriptSAM(trChim[iTr], chimN, iTr, -1, -1, -1, -1, NULL, &chunkOutChimSAM);
+ outputTranscriptSAM(trChim[iTr], chimN, iTr, mateChr, mateStart, mateStrand, -1, NULL, &chunkOutChimSAM);
+ } else
+ {
+ outputTranscriptSAM(trChim[iTr], chimN, iTr, -1, -1, -1, -1, NULL, &chunkOutChimSAM);
+ };
};
};
- //junction + SAMp
- *chunkOutChimJunction << mapGen.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \
- <<"\t"<< mapGen.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \
- <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \
- <<"\t"<< trChim[0].exons[0][EX_G] - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \
- <<"\t"<< trChim[1].exons[0][EX_G] - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]);
- if (P.outSAMattrPresent.RG)
- *chunkOutChimJunction <<"\t"<< P.outSAMattrRG.at(readFilesIndex);
- *chunkOutChimJunction <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate
+
+ if (P.pCh.out.junctions) {
+ //junction + SAMp
+ *chunkOutChimJunction << mapGen.chrName[trChim[0].Chr] <<"\t"<< chimJ0 - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< (trChim[0].Str==0 ? "+":"-") \
+ <<"\t"<< mapGen.chrName[trChim[1].Chr] <<"\t"<< chimJ1 - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< (trChim[1].Str==0 ? "+":"-") \
+ <<"\t"<< chimMotif <<"\t"<< chimRepeat0 <<"\t"<< chimRepeat1 <<"\t"<< readName+1 \
+ <<"\t"<< trChim[0].exons[0][EX_G] - mapGen.chrStart[trChim[0].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[0]) \
+ <<"\t"<< trChim[1].exons[0][EX_G] - mapGen.chrStart[trChim[1].Chr]+1 <<"\t"<< outputTranscriptCIGARp(trChim[1]);
+ if (P.outSAMattrPresent.RG)
+ *chunkOutChimJunction <<"\t"<< P.outSAMattrRG.at(readFilesIndex);
+ *chunkOutChimJunction <<"\n"; //<<"\t"<< trChim[0].exons[0][EX_iFrag]+1 --- no need for that, since trChim[0] is always on the first mate
+ };
return;
};
\ No newline at end of file
=====================================
source/ReadAlign_peOverlapMergeMap.cpp
=====================================
--- a/source/ReadAlign_peOverlapMergeMap.cpp
+++ b/source/ReadAlign_peOverlapMergeMap.cpp
@@ -3,9 +3,9 @@
void ReadAlign::peOverlapMergeMap() {
- peOv.yes=false;
-
+
if (!P.peOverlap.yes || P.readNmates!=2 ) {//no peOverlap
+ peOv.yes=false;
return;
};
@@ -18,10 +18,9 @@ void ReadAlign::peOverlapMergeMap() {
peMergeRA->peMergeMates();
peOv=peMergeRA->peOv;
-
-
if (peOv.nOv==0) {//check if mates can be merged, if not - return
//cout <<"\n-1\n";
+ peOv.yes=false;
return;
};
@@ -74,6 +73,8 @@ void ReadAlign::peOverlapMergeMap() {
if (peScore<=trBest->maxScore || chimRecord) {
peOv.yes=true;
+ } else {
+ peOv.yes=false;
};
return;
@@ -202,12 +203,13 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig
exons[nExons][EX_iFrag]=(imate==0 ? t.Str : 1-t.Str);
exons[nExons][EX_sjA]=t.exons[iex][EX_sjA];
- canonSJ[nExons]=t.canonSJ[iex];
- sjAnnot[nExons]=t.sjAnnot[iex];
- sjStr[nExons]=t.sjStr[iex];
- shiftSJ[nExons][0]=t.shiftSJ[iex][0];
- shiftSJ[nExons][1]=t.shiftSJ[iex][1];
-
+ if (nExons>0 && iex>0) {
+ canonSJ[nExons-1]=t.canonSJ[iex-1];
+ sjAnnot[nExons-1]=t.sjAnnot[iex-1];
+ sjStr[nExons-1]=t.sjStr[iex-1];
+ shiftSJ[nExons-1][0]=t.shiftSJ[iex-1][0];
+ shiftSJ[nExons-1][1]=t.shiftSJ[iex-1][1];
+ };
//record these exons for mate2
if (t.exons[iex][EX_R]>=mSta[imate]) {//exon left is inside the mate
exons[nExons][EX_G]=t.exons[iex][EX_G];
@@ -227,8 +229,11 @@ void Transcript::peOverlapSEtoPE(uint* mateStart, Transcript &t) {//convert alig
++nExons;
};
canonSJ[nExons-1]=-3; //marks "junction" between mates
- };
-
+ sjAnnot[nExons-1]=0;
+ sjStr[nExons-1]=0;
+ shiftSJ[nExons-1][0]=0;
+ shiftSJ[nExons-1][1]=0;
+ };
//copy scalar variables
for (uint ii=0;ii<3;ii++) {
=====================================
source/VERSION
=====================================
--- a/source/VERSION
+++ b/source/VERSION
@@ -1 +1 @@
-#define STAR_VERSION "STAR_2.6.0a"
+#define STAR_VERSION "STAR_2.6.0b"
=====================================
source/Variation.cpp
=====================================
--- a/source/Variation.cpp
+++ b/source/Variation.cpp
@@ -12,8 +12,9 @@ Variation::Variation (Parameters &Pin, vector <uint> &chrStartIn, map <string,ui
yes=true;
- varOutFileName=P.outFileNamePrefix+"Variation.out";
- varOutStream.open(varOutFileName);
+ //not used yet
+ //varOutFileName=P.outFileNamePrefix+"Variation.out";
+ //varOutStream.open(varOutFileName);
vcfFile=P.var.vcfFile;
loadVCF(vcfFile);
=====================================
source/Variation.h
=====================================
--- a/source/Variation.h
+++ b/source/Variation.h
@@ -42,8 +42,8 @@ public:
private:
string vcfFile;
- string varOutFileName;
- ofstream varOutStream;//output file for variations
+ //string varOutFileName;
+ //ofstream varOutStream;//output file for variations
vector <uint> &chrStart; //this needs to be replaced with a structure that contains basic genome variables
map <string,uint> &chrNameIndex;
=====================================
source/parametersDefault.xxd
=====================================
The diff for this file was not included because it is too large.
View it on GitLab: https://salsa.debian.org/med-team/rna-star/compare/58bcf9d3f20545e416d52e58bfaa66922754ab84...6188b6b307645af2c9d5ecf239d0a06749264345
---
View it on GitLab: https://salsa.debian.org/med-team/rna-star/compare/58bcf9d3f20545e416d52e58bfaa66922754ab84...6188b6b307645af2c9d5ecf239d0a06749264345
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20180507/908a023a/attachment-0001.html>
More information about the debian-med-commit
mailing list