[GenABEL-dev] [Genabel-commits] r1943 - pkg/OmicABEL/src/reshuffle

L.C. Karssen lennart at karssen.org
Sun Apr 12 21:14:33 CEST 2015


Hi Sodbo,

Thanks for your bugfix! I've added some minor comments below.

On 12-04-15 08:54, noreply at r-forge.r-project.org wrote:
> Author: sharapovsodbo
> Date: 2015-04-12 08:54:30 +0200 (Sun, 12 Apr 2015)
> New Revision: 1943
> 
> Modified:
>    pkg/OmicABEL/src/reshuffle/Parameters.cpp
>    pkg/OmicABEL/src/reshuffle/main.cpp
>    pkg/OmicABEL/src/reshuffle/makefile
>    pkg/OmicABEL/src/reshuffle/reshuffle.cpp
> Log:
> Version 0.34
> 	fixed bug with "--chi" options fixed (before "--chi=0" or "--chi" extracted SNPs with chi>=1)
> 	fixed same bug with "--chi" "--dataslim" options fixed
> 	fixed bug with "--outfile" option (before "--outfile" didn't work if "--chi" was used)
> 	fixed bug with trait names output format
> 	minor changes
> 	
> 
> 
> Modified: pkg/OmicABEL/src/reshuffle/Parameters.cpp
> ===================================================================
> --- pkg/OmicABEL/src/reshuffle/Parameters.cpp	2015-03-31 13:05:51 UTC (rev 1942)
> +++ pkg/OmicABEL/src/reshuffle/Parameters.cpp	2015-04-12 06:54:30 UTC (rev 1943)
> @@ -136,7 +136,7 @@
>  			{"traits",optional_argument,NULL,'t'},
>  			{"snps",optional_argument,NULL,'s'},
>  			{"herit",optional_argument,NULL,'e'},
> -			{"chi",required_argument,NULL,'c'},
> +			{"chi",optional_argument,NULL,'c'},
>  			{"dataslim",no_argument,NULL,'l'},
>  			{"outfile",required_argument,NULL,'o'},
>  			{NULL,0,NULL,0}
> @@ -179,10 +179,12 @@
>  			}
>  			case 'c':{
>  				chi = Parameter(optarg,"chi");
> -				if (chi.numbersset.size()==0){
> -					cout<<"\nChi value is not a number. Please, set correct Chi value";

I would change "Chi" to "Chi^2" in the printed text (both here and
further down) if I were you in order to avoid any confusion (I assume
this is a Chi^2 cut-off value).

You may want to consider changing the option name from --chi to --chi2,
although I certainly understand it if you don't want to break existing
scripts. Up to you.


Thanks again for your contributions to the GenABEL project.


Lennart.

> +				//cout << "\n\nchi.numbersset = " << chi<<"\n\n";
> +				/*if (chi.numbersset.size()==0){
> +					cout<<"\nChi value is not a number. Please, set correct Chi value\n";
>  					exit(1);
> -				}
> +				}*/
> +				//cout <<"\nChi is yopta " << chi;
>  
>  				break;
>  			}
> @@ -193,6 +195,7 @@
>  			case 'o':{
>  				default_outfile = false;
>  				outfile=optarg;
> +				//cout << "\n\nOutfile name os yopta = " << outfile<<"\n\n";
>  				break;
>  			}
>  			}
> 
> Modified: pkg/OmicABEL/src/reshuffle/main.cpp
> ===================================================================
> --- pkg/OmicABEL/src/reshuffle/main.cpp	2015-03-31 13:05:51 UTC (rev 1942)
> +++ pkg/OmicABEL/src/reshuffle/main.cpp	2015-04-12 06:54:30 UTC (rev 1943)
> @@ -49,7 +49,7 @@
>  
>  		cout<<"\nStart reshuffeling";
>  		iout_file iout_F(Params);
> -		cout << "\nFinish iout_file read\t" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +		cout << "\nFinish iout_file read " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  
>  		if(Params.traits.use)
>  			Params.traits.setbynames(*(iout_F.labels.trait_names));
> @@ -59,7 +59,7 @@
>  			Params.herit.setbynames(*(iout_F.labels.trait_names));
>  		Reshuffle reshh(iout_F,Params);
>  		reshh.run();
> -		cout << "\nFinish reshuffling " << double(clock()) / CLOCKS_PER_SEC <<" sec";
> -	}
> +		cout << "\nFinish reshuffling " << double(clock()) / CLOCKS_PER_SEC <<" sec\n\n";
> +	}
>  	return (0);
>  }
> 
> Modified: pkg/OmicABEL/src/reshuffle/makefile
> ===================================================================
> --- pkg/OmicABEL/src/reshuffle/makefile	2015-03-31 13:05:51 UTC (rev 1942)
> +++ pkg/OmicABEL/src/reshuffle/makefile	2015-04-12 06:54:30 UTC (rev 1943)
> @@ -3,12 +3,8 @@
>  	g++ -O3 -Wall -c -fmessage-length=0 -o reshuffle_obj.o reshuffle.cpp
>  	g++ -O3 -Wall -c -fmessage-length=0 -o Parameters.o Parameters.cpp
>  	g++ -O3 -Wall -c -fmessage-length=0 -o main.o main.cpp
> -	g++ -o reshuffle "reshuffle_obj.o" "main.o" "iout_file.o" "Parameters.o
> +	g++ -o reshuffle reshuffle_obj.o main.o iout_file.o Parameters.o
>  	
>  clean:
>  
> -	del iout_file.o
> -	del reshuffle_obj.o
> -	del Parameters.o
> -	del main.o
> -	del reshuffle
> \ No newline at end of file
> +	rm -rf *.o reshuffle
> \ No newline at end of file
> 
> Modified: pkg/OmicABEL/src/reshuffle/reshuffle.cpp
> ===================================================================
> --- pkg/OmicABEL/src/reshuffle/reshuffle.cpp	2015-03-31 13:05:51 UTC (rev 1942)
> +++ pkg/OmicABEL/src/reshuffle/reshuffle.cpp	2015-04-12 06:54:30 UTC (rev 1943)
> @@ -25,7 +25,7 @@
>  	txt_datadims << "Number of traits\t" << (*p_iout_file).header.t << endl;
>  	txt_datadims << "Number of SNP\t" << (*p_iout_file).header.m << endl;
>  	txt_datadims << "Number of covariates\t" << ((*p_iout_file).header.p - 2);
> -	cout<<"\nEnd write data dimension\t"<< double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	cout<<"\nEnd write data dimension "<< double(clock()) / CLOCKS_PER_SEC <<" sec";
>  }
>  
>  void Reshuffle::write_snpnames(ofstream& txt_snpnames){
> @@ -36,8 +36,8 @@
>  		cout<<"\nWriting all SNP's names";
>  	}
>  	for(set<int>::iterator it= (*p_Parameters).snpnames.numbersset.begin();it!=(*p_Parameters).snpnames.numbersset.end();++it)
> -		txt_snpnames << "\nSNP #"<<(*it+1)<<"\t"<<(*(*p_iout_file).labels.snp_names)[*it];
> -	cout<<"\nEnd write SNP's names\t" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +		txt_snpnames << "\nSNP#"<<(*it+1)<<"\t"<<(*(*p_iout_file).labels.snp_names)[*it];
> +	cout<<"\nEnd write SNP's names " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  }
>  
>  void Reshuffle::write_traitnames(ofstream& txt_traitnames){
> @@ -48,13 +48,13 @@
>  		cout<<"\nWriting all trait's names";
>  	}
>  	for(std::set<int>::iterator it= (*p_Parameters).traitnames.numbersset.begin();it!=p_Parameters->traitnames.numbersset.end();++it)
> -		txt_traitnames<<"TRAIT #"<<(*it+1)<<"\t"<<(*(*p_iout_file).labels.trait_names)[*it];
> -	cout<<"\nEnd write trait's names\t" << double(clock()) / CLOCKS_PER_SEC <<" sec" << endl;
> +		txt_traitnames<<"\nTRAIT#"<<(*it+1)<<"\t"<<(*(*p_iout_file).labels.trait_names)[*it];
> +	cout<<"\nEnd write trait's names " << double(clock()) / CLOCKS_PER_SEC <<" sec" << endl;
>  }
>  
>  void Reshuffle::write_data(ifstream& out_file,ofstream& data){
>  	out_file.seekg(0, ios_base::beg);
> -	cout << "\nStart write data\t" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	cout << "\nStart write data " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  	data.precision(PRECISION_DOUBLE);
>  	data<<"SNP\t";
>  	data<<	"Trait\t";
> @@ -98,8 +98,13 @@
>  	out_file.seekg(0, ios_base::beg);
>  	double chi = 0;
>  	set<int>::iterator chi_val = (*p_Parameters).chi.numbersset.begin();
> -	double CheckChi = *chi_val+1;
> -	cout << "\nStart write chi data=" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	double CheckChi = 0;
> +	if((*p_Parameters).chi.numbersset.size()==0){
> +		CheckChi = 0;
> +	}else{
> +		CheckChi = *chi_val+1;
> +	}
> +	cout << "\nStart write chi data " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  	txt_chi.precision(PRECISION_DOUBLE);
>  	txt_chi << "SNP\t";
>  	txt_chi << "Trait\t";
> @@ -139,22 +144,27 @@
>  		ostr.clear();
>  	}
>  	delete buf;
> -	cout << "\nFinish write chi data\t" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	cout << "\nFinish write chi data " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  }
>  
>  void Reshuffle::write_slim_data(ifstream& out_file, ofstream& txt_slim){
> -	cout << "\nStart write slim data=" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	cout << "\nStart write slim data " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  	out_file.seekg(0, ios_base::beg);
>  	set<int> goodtraits;
>  	set<int> goodsnps;
>  	double chi = 0;
>  	if((*p_Parameters).chi.def_value||(!(*p_Parameters).chi.use)){
>  		cout << "\nERROR: " << "Chi value doesn't exist";
> -		cout << "\nPlease, set Chi value to get slim data";
> +		cout << "\nPlease, set Chi value to get slim data\n";
>  		exit(1);
>  	}
>  	set<int>::iterator chi_val = (*p_Parameters).chi.numbersset.begin();
> -	double CheckChi = *chi_val+1;
> +	double CheckChi = 0;
> +	if((*p_Parameters).chi.numbersset.size()==0){
> +		CheckChi = 0;
> +	}else{
> +		CheckChi = *chi_val+1;
> +	}
>  	double* buf = new double[per_trait_per_snp];
>  	for (set<int>::iterator trait= (*p_Parameters).traits.numbersset.begin();trait!=(*p_Parameters).traits.numbersset.end();trait++) {
>  		long long oldPos=0,pos = 0;
> @@ -211,7 +221,7 @@
>  		ostr.clear();
>  	}
>  	delete buf;
> -	cout <<"\nEnd write slim data\t" << double(clock()) / CLOCKS_PER_SEC <<" sec";
> +	cout <<"\nEnd write slim data " << double(clock()) / CLOCKS_PER_SEC <<" sec";
>  }
>  
>  int Reshuffle::est_shift(int counter){
> @@ -256,7 +266,7 @@
>  		out_file.seekg(est_shift(counter), ios_base::beg);
>  	}
>  	out_file.seekg(est_shift(3), ios_base::beg);
> -	for (unsigned int beta=0;beta<(*(p_iout_file->labels.beta)).size()-1;beta++) {
> +	for (unsigned int beta=0;beta<(*(p_iout_file->labels.beta)).size()-1;beta++) {
>  		herest << (*(p_iout_file->labels).beta)[beta] << "\t";
>  		for (std::set<int>::iterator trait= p_Parameters->herit.numbersset.begin();trait!=p_Parameters->herit.numbersset.end();trait++) {
>  			out_file.read((char *) &tmp_number, sizeof(double));
> 
> _______________________________________________
> Genabel-commits mailing list
> Genabel-commits at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/genabel-commits
> 

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
L.C. Karssen
Utrecht
The Netherlands

lennart at karssen.org
http://blog.karssen.org
GPG key ID: A88F554A
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 213 bytes
Desc: OpenPGP digital signature
URL: <http://lists.r-forge.r-project.org/pipermail/genabel-devel/attachments/20150412/176a01b5/attachment.sig>


More information about the genabel-devel mailing list