[med-svn] [unc-fish] 06/12: Patch taken from ngopt at http://code.google.com/p/ngopt/source/browse/#svn%2Ftrunk%2FFISH%2Fsrc Without this patch the original code segfaults with the sample data set. However, the code is not only fixing a code problem but also does some other change of functionality - so the test data can not be reproduced with this patch.
Andreas Tille
tille at debian.org
Fri Dec 29 21:41:58 UTC 2017
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository unc-fish.
commit e69fc801aee14101958ed3251604101e33ef5b87
Author: Andreas Tille <tille at debian.org>
Date: Fri Feb 14 13:47:41 2014 +0000
Patch taken from ngopt at
http://code.google.com/p/ngopt/source/browse/#svn%2Ftrunk%2FFISH%2Fsrc
Without this patch the original code segfaults with the sample data set.
However, the code is not only fixing a code problem but also does some other
change of functionality - so the test data can not be reproduced with this
patch.
---
debian/patches/ngopt.patch | 227 +++++++++++++++++++++++++++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 228 insertions(+)
diff --git a/debian/patches/ngopt.patch b/debian/patches/ngopt.patch
new file mode 100644
index 0000000..f4cf8d4
--- /dev/null
+++ b/debian/patches/ngopt.patch
@@ -0,0 +1,227 @@
+Author: Andreas Tille <tille at debian.org>
+Last-Changed: Fri, 14 Feb 2014 09:23:04 +0100
+Description: Patch taken from ngopt at
+ http://code.google.com/p/ngopt/source/browse/#svn%2Ftrunk%2FFISH%2Fsrc
+ Without this patch the original code segfaults with the sample data set.
+ However, the code is not only fixing a code problem but also does some other
+ change of functionality - so the test data can not be reproduced with this
+ patch.
+
+--- a/src/blocks.h
++++ b/src/blocks.h
+@@ -69,6 +69,8 @@ if(PRINT_BLOCK)
+ int tempdist=0;
+ ofstream p2b;
+ p2b.open(Block_File.c_str(),ios::out);
++/* Lets make the output easier to parse.
++ * Get rid of this stuff first.
+ p2b<<get_time_stamp()<<"";
+ p2b<<"FISH v1.0\n";
+ p2b<<"FISH is copyright (c)2003, University of North Carolina at Chapel Hill\n";
+@@ -79,15 +81,17 @@ if(PRINT_BLOCK)
+ p2b<<"\ttotal_features = "<<Total_Features<<"\n\ttotal_cells = "<<Total_Cells<<"\n";
+ p2b<<"\th = "<<prob<<"\n\td_T = "<<Thresh_Dist<<"\n\tMin_Block_Size = "<<Min_Block_Size;
+ p2b<<"\n\tblock_prob = "<<BLOCK_PROB<<"\n\ttotal_blocks = "<<block_list.size()<<"\n\n\n";
+-
++*/
++ // make the output tab-delimited
++ p2b<<"contig1\tcontig2\tblock\tpoint\tdist\tmarkers\torientation"<<endl;
+ for(i=0;i<block_list.size();i++)
+ {
+
+ dataj=block_list[i].block.begin();
+- p2b<<"-block "<<i<<endl;
+- p2b<<setw(10)<<"points"<<setw(10)<<"contig1"<<setw(10)<<"contig2"<<endl;
+- p2b<<setw(9)<<block_list[i].block.size()<<setw(9)<<MATCHES[*dataj].contig1<<setw(9)<<MATCHES[*dataj].contig2<<"\n\n";
+- p2b<<"\tpoint\tdist\tmarkers\torientation"<<endl;
++ // p2b<<"-block "<<i<<endl;
++ // p2b<<setw(10)<<"points"<<setw(10)<<"contig1"<<setw(10)<<"contig2"<<endl;
++ // p2b<<setw(9)<<block_list[i].block.size()<<setw(9)<<MATCHES[*dataj].contig1<<setw(9)<<MATCHES[*dataj].contig2<<"\n\n";
++ // p2b<<"block\tpoint\tdist\tmarkers\torientation"<<endl;
+
+ tempy=MATCHES[*dataj].feat.y;
+ tempx=MATCHES[*dataj].feat.x;
+@@ -96,35 +100,44 @@ if(PRINT_BLOCK)
+ {
+ tempdist=(MATCHES[*dataj].feat.y-tempy)+abs(MATCHES[*dataj].feat.x-tempx);
+
+- p2b<<"\t"<<*dataj<<"\t"<<tempdist<<"\t{";
+-
+- for(j=0;j<f2g[MATCHES[*dataj].feat.y].gene_list.size();j++)
+- p2b<<f2g[MATCHES[*dataj].feat.y].gene_list[j]<<" ";
++ p2b<<MATCHES[*dataj].contig1<<"\t"<<MATCHES[*dataj].contig2<<"\t"<<i<<"\t"<<*dataj<<"\t"<<tempdist<<"\t";
+
+- p2b<<"}{";
++ for(j=0;j<f2g[MATCHES[*dataj].feat.y].gene_list.size();j++){
++ p2b<<f2g[MATCHES[*dataj].feat.y].gene_list[j];
++ if (j < f2g[MATCHES[*dataj].feat.y].gene_list.size() - 1)
++ p2b <<",";
++ }
++ p2b<<"\t";
++ // p2b<<"}{";
++
++ for(j=0;j<f2g[MATCHES[*dataj].feat.x].gene_list.size();j++){
++ p2b<<f2g[MATCHES[*dataj].feat.x].gene_list[j];
++ if (j < f2g[MATCHES[*dataj].feat.x].gene_list.size() - 1)
++ p2b << ",";
++ }
+
+- for(j=0;j<f2g[MATCHES[*dataj].feat.x].gene_list.size();j++)
+- p2b<<f2g[MATCHES[*dataj].feat.x].gene_list[j]<<" ";
++ p2b<<"\t"<<MATCHES[*dataj].feat.direction<<"\n";
++// p2b<<"}\t"<<MATCHES[*dataj].feat.direction<<"\n";
+
+- p2b<<"}\t"<<MATCHES[*dataj].feat.direction<<"\n";
+ tempx=MATCHES[*dataj].feat.x;
+ tempy=MATCHES[*dataj].feat.y;
+
+ }
+
+
+- p2b<<"\n\n";
++ //p2b<<"\n\n";
+
+ }
+
+-
++/*
+ p2b<<"-by contig\n";
+ p2b<<setw(10)<<"contig1"<<setw(10)<<"contig2"<<setw(10)<<"blocks\n";
+ for(i=0;i<sub_grid.size();i++)
+ p2b<<setw(9)<<sub_grid[i].contig1<<setw(9)<<sub_grid[i].contig2<<setw(9)<<sub_grid[i].blocks<<endl;
+-
+- p2b<<"\n-by size\n";
+- p2b<<setw(10)<<"points"<<setw(10)<<"obs"<<setw(10)<<"exp"<<setw(25)<<"p\n";
++*/
++// p2b<<"\n-by size\n";
++ p2b<<"-by size\n";
++ p2b<<"points"<<setw(10)<<"obs"<<setw(10)<<"exp"<<setw(25)<<"p\n";
+ for(l=0;l<FREQ.size();l++)
+ {
+ if(FREQ[l]>0)
+@@ -132,7 +145,8 @@ if(PRINT_BLOCK)
+ p_u=pow(n*prob,l)*prob;
+ pvalue=1-exp(-1*Total_Cells*p_u);
+ expected_blocks=Total_Cells*p_u;
+- p2b<<setw(9)<<l+1<<setw(9)<<FREQ[l]<<setw(15)<<scientific<<setprecision(2)<<expected_blocks<<setw(25)<<scientific<<pvalue<<"\n";
++// p2b<<setw(9)<<l+1<<setw(9)<<FREQ[l]<<setw(15)<<scientific<<setprecision(2)<<expected_blocks<<setw(25)<<scientific<<pvalue<<"\n";
++ p2b<<l+1<<"\t"<<FREQ[l]<<"\t"<<scientific<<setprecision(2)<<expected_blocks<<"\t"<<scientific<<pvalue<<"\n";
+ }
+ }
+
+--- a/src/fish.cpp
++++ b/src/fish.cpp
+@@ -39,7 +39,7 @@ string Block_File_S;
+ bool MAX_SCORE=true;
+ int TOP_HITS=5;
+ int Max_Distance=10;
+-int Min_Score=200;
++int Min_Score=13;
+ double Threshold=0.05;
+ int Min_Block_Size=3;
+ float BLOCK_PROB=.001;
+--- a/src/readfile.h
++++ b/src/readfile.h
+@@ -240,7 +240,7 @@ GENE_LIST::iterator chk_pos2;
+ if(temp_map.size()>0)
+ {
+ sub_grid[sub_grid.size()-1].ext=true;
+- image_maps.insert(make_pair(contig1+contig2,temp_map));
++ image_maps.insert(make_pair(contig1+"&"+contig2,temp_map));
+ }
+
+ temp_map.clear();
+@@ -327,7 +327,7 @@ GENE_LIST::iterator chk_pos2;
+ if(image_maps.size()>0)
+ {
+
+- pos1=image_maps.find(contig1+contig2);
++ pos1=image_maps.find(contig1+"&"+contig2);
+
+ if(pos1==image_maps.end())
+ {
+@@ -339,16 +339,16 @@ GENE_LIST::iterator chk_pos2;
+ {
+ inserted++;
+ mapexists=true;
+- tempscore=(image_maps[contig1+contig2][contig1+key_y+'&'+contig2+key_x]);
++ tempscore=(image_maps[contig1+"&"+contig2][contig1+key_y+'&'+contig2+key_x]);
+
+ if(MAX_SCORE==true)
+- image_maps[contig1+contig2][contig1+key_y+'&'+contig2+key_x]=(MAX(tempscore,score));
++ image_maps[contig1+"&"+contig2][contig1+key_y+'&'+contig2+key_x]=(MAX(tempscore,score));
+ else
+ {
+ if(tempscore==0)
+- image_maps[contig1+contig2][contig1+key_y+'&'+contig2+key_x]=(score);
++ image_maps[contig1+"&"+contig2][contig1+key_y+'&'+contig2+key_x]=(score);
+ else
+- image_maps[contig1+contig2][contig1+key_y+'&'+contig2+key_x]=(AVG(tempscore,score));
++ image_maps[contig1+"&"+contig2][contig1+key_y+'&'+contig2+key_x]=(AVG(tempscore,score));
+ }
+
+ }
+@@ -365,7 +365,7 @@ GENE_LIST::iterator chk_pos2;
+ }
+
+ if(mapexists==false)
+- image_maps.insert(make_pair(contig1+contig2,temp_map));
++ image_maps.insert(make_pair(contig1+"&"+contig2,temp_map));
+
+ temp_map.clear();
+
+@@ -400,7 +400,7 @@ GENE_LIST::iterator chk_pos2;
+ {
+ contig1=i2s(sub_grid[k].contig1);
+ contig2=i2s(sub_grid[k].contig2);
+- contigs=contig1+contig2;
++ contigs=contig1+"&"+contig2;
+ for(pos2=image_maps[contigs].begin();pos2!=image_maps[contigs].end();++pos2)
+ {
+ //cout<<"The firs key "<<pos2->first;
+@@ -433,7 +433,7 @@ if(GENE.size()==0 ||GENE.size()<=2)
+
+
+
+-image_maps.~map();
++//image_maps.~map();
+
+ INV_GENE.clear();
+ INV_GENE=GENE;
+--- a/src/usage.h
++++ b/src/usage.h
+@@ -23,7 +23,6 @@ void process_arguments(int argc, char* a
+ check(i,argv,argc);
+ Block_File=argv[++i];
+ PRINT_BLOCK=true;
+-
+ }
+
+ else if(temp=="-B")
+@@ -43,7 +42,7 @@ void process_arguments(int argc, char* a
+ }
+
+ else if(temp=="-off")
+- Max_Distance=0;
++ Max_Distance=-1;
+
+ else if(temp=="-q")
+ QUIET_MODE=true;
+@@ -144,7 +143,7 @@ void process_arguments(int argc, char* a
+ i++;
+
+ }
+-
++ Max_Distance=-1;
+ }
+
+ void check(int j, char* argv[],int argc)
+@@ -167,7 +166,7 @@ void usage(void)
+ {
+ cerr<<"usage: fish [-f Control_File |control.txt]\n";
+ cerr<<"\t[-b Block_File] [-g Grid_File] [-C Contig_File]\n";
+- cerr<<"\t[-D Max_Distance |10] [-S Min_Score |200] [-T Threshold |.05]\n";
++ cerr<<"\t[-D Max_Distance |10] [-S Min_Score |13] [-T Threshold |.05]\n";
+ cerr<<"\t[-m Min_Block_Size |3] [-off Turn off Detandemize] [-h help]\n";
+ cerr<<"\t[-H Top_Hits |5] [-A Average_Score Selection | Max_Score]\n";
+ cerr<<"\t[-p BLOCK_PROB |.001] [-B Block_File_Simple][-q QUIET_MODE]\n";
diff --git a/debian/patches/series b/debian/patches/series
index 1d3db58..7ff9430 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1 +1,2 @@
fix_makefile.patch
+ngopt.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/unc-fish.git
More information about the debian-med-commit
mailing list