Commits

chuttenh  committed 509ea55

[svn r416] Fix one more potential bug in CCoalesceHistogramSet::Initialize
Remove unnecessary COALESCE testing code

  • Participants
  • Parent commits 3411794

Comments (0)

Files changed (5)

File src/coalesce.cpp

 
 	return true; }
 
-bool CCoalesce::Cluster2( const CPCL& PCL, const CFASTA& FASTA, vector<CCoalesceCluster>& vecClusters ) {
-	static const float			c_dEpsilon	= 1e-10f;
-	size_t						i;
-	vector<size_t>				veciPCL2FASTA;
-	CCoalesceGeneScores			GeneScores;
-	set<pair<size_t, size_t> >	setpriiSeeds;
-	SCoalesceModifiers			sModifiers;
-	float						dFailure;
-
-	if( !( InitializeDatasets( PCL ) && InitializeGeneScores( PCL, FASTA, veciPCL2FASTA, sModifiers,
-		GeneScores ) ) )
-		return false;
-	if( g_CatSleipnir.isNoticeEnabled( ) ) {
-		size_t			iSequences;
-		ostringstream	ossm;
-
-		for( iSequences = i = 0; i < veciPCL2FASTA.size( ); ++i )
-			if( veciPCL2FASTA[ i ] != -1 )
-				iSequences++;
-		g_CatSleipnir.notice( "CCoalesce::Cluster( ) running with %d genes, %d conditions, and %d sequences",
-			PCL.GetGenes( ), PCL.GetExperiments( ), iSequences );
-		for( i = 0; i < PCL.GetExperiments( ); ++i )
-			ossm << ( i ? "\t" : "" ) << PCL.GetExperiment( i );
-		g_CatSleipnir.notice( ossm.str( ) );
-		g_CatSleipnir.notice( "k %d, P gene %g, p condition %g, p motif %g, p correlation %g", GetK( ),
-			GetProbabilityGene( ), GetPValueCondition( ), GetPValueMotif( ), GetPValueCorrelation( ) );
-		g_CatSleipnir.notice( "p merge %g, cutoff merge %g, penalty gap %g, penalty mismatch %g",
-			GetPValueMerge( ), GetCutoffMerge( ), GetMotifs( ) ? GetMotifs( )->GetPenaltyGap( ) : 0,
-			GetMotifs( ) ? GetMotifs( )->GetPenaltyMismatch( ) : 0 );
-		g_CatSleipnir.notice( "correlation pairs %d, bases %d, min size %d, merge size %d, max size %d",
-			GetNumberCorrelation( ), GetBasesPerMatch( ), GetSizeMinimum( ), GetSizeMerge( ),
-			GetSizeMaximum( ) ); }
-	for( dFailure = 1; dFailure > c_dEpsilon; dFailure *= GetPValueCorrelation( ) ) {
-		CCoalesceCluster			Cluster, Pot;
-		CCoalesceGroupHistograms	HistsCluster( GetBins( ), 1.0f / GetBasesPerMatch( ) );
-		CCoalesceGroupHistograms	HistsPot( GetBins( ), 1.0f / GetBasesPerMatch( ) );
-
-		Pot.SetGenes( PCL.GetGenes( ) );
-		Pot.CalculateHistograms( GeneScores, HistsPot, NULL );
-		if( !Cluster.Initialize( PCL, Pot, m_vecsDatasets, setpriiSeeds, GetNumberCorrelation( ),
-			GetPValueCorrelation( ), GetThreads( ) ) )
-			continue;
-		g_CatSleipnir.notice( "CCoalesce::Cluster( ) initialized %d genes", Cluster.GetGenes( ).size( ) );
-		if( g_CatSleipnir.isDebugEnabled( ) ) {
-			ostringstream				ossm;
-			set<size_t>::const_iterator	iterGene;
-
-			ossm << "CCoalesce::Cluster( ) initialized:";
-			for( iterGene = Cluster.GetGenes( ).begin( ); iterGene != Cluster.GetGenes( ).end( ); ++iterGene )
-				ossm << ' ' << PCL.GetGene( *iterGene );
-			g_CatSleipnir.debug( ossm.str( ) ); }
-		if( Cluster.GetGenes( ).size( ) < GetSizeMinimum( ) )
-			continue;
-		while( !( Cluster.IsConverged( ) || Cluster.IsEmpty( ) ) ) {
-			Cluster.CalculateHistograms( GeneScores, HistsCluster, &HistsPot );
-			Cluster.Snapshot( GeneScores, HistsCluster );
-			Pot.Snapshot( GeneScores, HistsPot );
-			if( ( Cluster.GetGenes( ).size( ) >= GetSizeMinimum( ) ) &&
-				!( CombineMotifs( FASTA, veciPCL2FASTA, sModifiers, Cluster, GetThreads( ), GeneScores,
-				HistsCluster, HistsPot ) && Cluster.SelectMotifs( HistsCluster, HistsPot, GetPValueMotif( ),
-				GetSizeMaximum( ), GetThreads( ), GetMotifs( ) ) ) )
-				return false;
-			if( !Cluster.SelectGenes( PCL, GeneScores, HistsCluster, HistsPot, GetSizeMinimum( ),
-				GetThreads( ), Pot, GetProbabilityGene( ), GetMotifs( ) ) )
-				return false;
-			g_CatSleipnir.notice( "CCoalesce::Cluster( ) processed %d genes, %d datasets, %d motifs",
-				Cluster.GetGenes( ).size( ), Cluster.GetDatasets( ).size( ), Cluster.GetMotifs( ).size( ) ); }
-		if( Cluster.IsConverged( ) && ( Cluster.GetGenes( ).size( ) >= GetSizeMinimum( ) ) ) {
-			g_CatSleipnir.notice( "CCoalesce::Cluster( ) finalizing cluster" );
-			setpriiSeeds.clear( );
-			vecClusters.push_back( Cluster );
-			Cluster.Subtract( GeneScores );
-			dFailure = 1; }
-		else
-			g_CatSleipnir.notice( "CCoalesce::Cluster( ) discarding cluster (failure %g)", dFailure ); }
-
-	return true; }
-
 }

File src/coalesce.h

 class CCoalesce : CCoalesceImpl {
 public:
 	bool Cluster( const CPCL& PCL, const CFASTA& FASTA, std::vector<CCoalesceCluster>& vecClusters );
-	bool Cluster2( const CPCL& PCL, const CFASTA& FASTA, std::vector<CCoalesceCluster>& vecClusters );
 
 	void SetPValueCorrelation( float dPValue ) {
 

File src/coalesceclusteri.h

 
 		return sMotif.GetHash( ); }
 
-public:
 	void Add( size_t, CCoalesceCluster& );
-protected:
 	bool AddCorrelatedGenes( const CPCL&, CCoalesceCluster&, float );
 	bool AddSeedPair( const CPCL&, CCoalesceCluster&, std::set<std::pair<size_t, size_t> >&, float, float,
 		size_t );

File src/coalescei.h

 
 	void Initialize( size_t iMembers, const std::vector<tValue>& vecEdges ) {
 
-		SetMembers( iMembers );
 		m_vecEdges.resize( vecEdges.size( ) );
 		std::copy( vecEdges.begin( ), vecEdges.end( ), m_vecEdges.begin( ) );
-		m_iZero = GetBin( 0 ); }
+		m_iZero = GetBin( 0 );
+		SetMembers( iMembers ); }
 
 	void Initialize( size_t iMembers, size_t iBins, tValue Step ) {
 		std::vector<tValue>	vecEdges;

File tools/COALESCE/COALESCE.cpp

 };
 
 int main_postprocess( const gengetopt_args_info&, CCoalesceMotifLibrary& );
-int main_test( const gengetopt_args_info&, const CPCL&, const CFASTA&, CCoalesceMotifLibrary& );
-int main_test2( const gengetopt_args_info&, const CPCL&, const CFASTA&, CCoalesceMotifLibrary& );
 bool recluster( const gengetopt_args_info&, size_t, CCoalesceMotifLibrary&, const CHierarchy&,
 	const vector<CCoalesceCluster>&, const vector<string>&, const CPCL&, size_t& );
 bool trim( const gengetopt_args_info&, const CPCL&, vector<CCoalesceCluster>& );
 		cerr << "Could not open: " << sArgs.fasta_arg << endl;
 		return 1; }
 
-/*
-size_t					iGene	= 4;
-uint32_t				iOne;
-float					d;
-vector<SFASTASequence>	vecsSequences;
-SCoalesceModifiers		sMods;
-SCoalesceModifierCache	sCache( sMods );
-vector<float>			vecdScores;
-vector<size_t>			veciLengths;
-CCoalesceGeneScores		GeneScores;
-float*					ad;
-
-GeneScores.SetGenes( PCL.GetGenes( ) );
-iOne = Motifs.Open( "C:1 G:3 A:3 T:3 G:3 A:3 G:3 (A:1)|(C:1)" );
-FASTA.Get( FASTA.GetGene( PCL.GetGene( iGene ) ), vecsSequences );
-for( i = 0; i < vecsSequences.size( ); ++i )
-	if( vecsSequences[ i ].m_strType == "5" ) {
-		d = Motifs.GetMatch( vecsSequences[ i ].m_vecstrSequences[ 0 ], iOne, 0, sCache );
-		cerr << ( d / vecsSequences[ i ].m_vecstrSequences[ 0 ].length( ) ) << endl;
-
-		GeneScores.Add( iGene, Motifs, vecsSequences[ i ], sCache, iOne, vecdScores, veciLengths );
-		ad = GeneScores.Get( GeneScores.GetType( vecsSequences[ i ].m_strType ),
-			CCoalesceSequencerBase::ESubsequenceTotal, iGene );
-		cerr << ad[ iOne ] << endl;
-		return 0; }
-//*/
-//return main_test2( sArgs, PCL, FASTA, Motifs );
-
 	if( sArgs.datasets_arg ) {
 		static const size_t	c_iBuffer	= 131072;
 		ifstream			ifsm;
 						break; } }
 
 	return NULL; }
-
-int main_test( const gengetopt_args_info& sArgs, const CPCL& PCL, const CFASTA& FASTA, CCoalesceMotifLibrary& Motifs ) {
-	CCoalesceGeneScores			GeneScores;
-	vector<size_t>				veciPCL2FASTA;
-	SCoalesceModifiers			sMods;
-	vector<vector<float> >		vecvecdCounts;
-	vector<size_t>				veciLengths;
-	SCoalesceModifierCache		sModifiers( sMods );
-	size_t						i, j, k;
-	uint32_t					iMotifOne, iMotifTwo;
-	vector<uint32_t>			veciMotifs;
-	vector<float>				vecdScores;
-	float						d;
-	CCoalesceCluster			Cluster, Pot;
-	CCoalesceGroupHistograms	HistsCluster( 12, 1.0f / sArgs.bases_arg );
-	CCoalesceGroupHistograms	HistsPot( 12, 1.0f / sArgs.bases_arg );
-	CCoalesceSequencerBase::ESubsequence	eSubsequence;
-	unsigned short				s;
-	vector<pthread_t>			vecpthdThreads;
-	vector<SThreadCombineMotif>	vecsThreads;
-
-/*
-	vector<STestFASTA>			vecsThreads;
-
-	vecpthdThreads.resize( sArgs.threads_arg );
-	vecsThreads.resize( vecpthdThreads.size( ) );
-	for( i = 0; i < 100; ++i ) {
-		iFASTA = rand( ) % FASTA.GetGenes( );
-		cerr << i << '\t' << FASTA.GetGene( iFASTA ) << endl;
-		for( j = 0; j < vecpthdThreads.size( ); ++j ) {
-			vecsThreads[ j ].m_iGene = iFASTA;
-			vecsThreads[ j ].m_pFASTA = &FASTA;
-			vecsThreads[ j ].m_strSequence = "";
-			pthread_create( &vecpthdThreads[ j ], NULL, ThreadTestFASTA, &vecsThreads[ j ] ); }
-		for( j = 0; j < vecpthdThreads.size( ); ++j ) {
-			pthread_join( vecpthdThreads[ j ], NULL );
-			if( j && ( vecsThreads[ j ].m_strSequence != vecsThreads[ 0 ].m_strSequence ) )
-				cerr << "Thread " << j << " failed:" << endl << vecsThreads[ 0 ].m_strSequence << endl <<
-					vecsThreads[ j ].m_strSequence << endl; }
-		cerr << vecsThreads[ 0 ].m_strSequence << endl; }
-	return 0;
-//*/
-
-	veciPCL2FASTA.resize( PCL.GetGenes( ) );
-	for( i = 0; i < veciPCL2FASTA.size( ); ++i )
-		veciPCL2FASTA[ i ] = FASTA.GetGene( PCL.GetGene( i ) );
-	sMods.Initialize( PCL );
-
-	GeneScores.SetGenes( PCL.GetGenes( ) );
-	for( i = 0; i < veciPCL2FASTA.size( ); ++i )
-		if( veciPCL2FASTA[ i ] != -1 ) {
-			vector<SFASTASequence>	vecsSequences;
-
-			if( FASTA.Get( veciPCL2FASTA[ i ], vecsSequences ) ) {
-				sModifiers.Get( i );
-				for( j = 0; j < vecsSequences.size( ); ++j )
-					if( !GeneScores.Add( i, Motifs, vecsSequences[ j ], sModifiers, vecvecdCounts,
-						veciLengths ) )
-						return 1; } }
-
-	Pot.SetGenes( PCL.GetGenes( ) );
-	Pot.CalculateHistograms( GeneScores, HistsPot, NULL );
-	for( i = 0; i < PCL.GetGenes( ); ++i )
-		if( ( (float)rand( ) / RAND_MAX ) < ( 1.0 / 100 ) )
-			Cluster.Add( i, Pot );
-
-	veciMotifs.resize( 20 );
-	vecpthdThreads.resize( sArgs.threads_arg );
-	vecsThreads.resize( vecpthdThreads.size( ) );
-	for( i = 0; i < 100; ++i ) {
-		Cluster.CalculateHistograms( GeneScores, HistsCluster, &HistsPot );
-		Cluster.Snapshot( GeneScores, HistsCluster );
-		Pot.Snapshot( GeneScores, HistsPot );
-		cerr << "Cluster	" << Cluster.GetGenes( ).size( ) << endl << "Pot	" <<
-			Pot.GetGenes( ).size( ) << endl;
-
-		for( j = 0; j < veciMotifs.size( ); ++j ) {
-			iMotifOne = rand( ) % Motifs.GetMotifs( );
-			iMotifTwo = rand( ) % Motifs.GetMotifs( );
-			veciMotifs[ j ] = Motifs.Merge( iMotifOne, iMotifTwo, FLT_MAX, false );
-			cerr << "Merged:" << endl << Motifs.GetMotif( iMotifOne ) << endl <<
-				Motifs.GetMotif( iMotifTwo ) << endl << Motifs.GetMotif( veciMotifs[ j ] ) << endl;
-
-			for( k = 0; k < vecsThreads.size( ); ++k ) {
-				vecsThreads[ k ].m_iOffset = k;
-				vecsThreads[ k ].m_iStep = vecsThreads.size( );
-				vecsThreads[ k ].m_pveciPCL2FASTA = &veciPCL2FASTA;
-				vecsThreads[ k ].m_pGeneScores = &GeneScores;
-				vecsThreads[ k ].m_pMotifs = &Motifs;
-				vecsThreads[ k ].m_iMotif = veciMotifs[ j ];
-				vecsThreads[ k ].m_pFASTA = &FASTA;
-				vecsThreads[ k ].m_psModifiers = &sMods;
-				if( pthread_create( &vecpthdThreads[ k ], NULL, ThreadCombineMotif, &vecsThreads[ k ] ) ) {
-					cerr << "CCoalesceImpl::CombineMotifs( " << sArgs.threads_arg <<
-						" ) could not combine motif: " << Motifs.GetMotif( veciMotifs[ j ] ).c_str( ) << endl;
-					return 1; } }
-			for( k = 0; k < vecpthdThreads.size( ); ++k )
-				pthread_join( vecpthdThreads[ k ], NULL );
-			for( k = 0; k < PCL.GetGenes( ); ++k )
-				if( veciPCL2FASTA[ k ] != -1 ) {
-					if( Cluster.IsGene( k ) )
-						HistsCluster.Add( GeneScores, k, false, veciMotifs[ j ] );
-					else
-						HistsPot.Add( GeneScores, k, false, veciMotifs[ j ] ); } }
-/*
-		for( j = 0; j < veciPCL2FASTA.size( ); ++j )
-			if( ( iFASTA = veciPCL2FASTA[ j ] ) != -1 ) {
-				vector<SFASTASequence>	vecsSequences;
-				float					dFive;
-
-				if( FASTA.Get( iFASTA, vecsSequences ) ) {
-					sModifiers.Get( j );
-					dFive = 0;
-					for( k = 0; k < vecsSequences.size( ); ++k ) {
-						if( !GeneScores.Add( j, Motifs, vecsSequences[ k ],
-							sModifiers, iMotifThree, vecdScores, veciLengths ) ) {
-							cerr << "FAILURE!" << endl;
-							return 1; }
-						if( vecsSequences[ k ].m_strType == "5" )
-							dFive = Motifs.GetMatch( vecsSequences[ k ].m_vecstrSequences[ 0 ],
-								iMotifThree, 0, sModifiers ) / vecsSequences[ k ].m_vecstrSequences[ 0 ].length( ); }
-
-					cerr << "Gene	" << j << '\t' << PCL.GetGene( j ) << endl;
-					if( dFive != ( d = GeneScores.Get( GeneScores.GetType( "5" ), CCoalesceSequencerBase::ESubsequenceTotal, j, iMotifThree ) ) ) {
-						cerr << "C	" << dFive << '\t' << d << endl;
-						return 1; }
-					for( k = 0; k < GeneScores.GetTypes( ); ++k )
-						for( eSubsequence = CCoalesceSequencerBase::ESubsequenceBegin;
-							(size_t)eSubsequence < GeneScores.GetSubsequences( k );
-							eSubsequence = (CCoalesceSequencerBase::ESubsequence)( (size_t)eSubsequence + 1 ) ) {
-							const float*	ad	= GeneScores.Get( k, eSubsequence, j );
-
-							d = GeneScores.Get( k, eSubsequence, j, iMotifThree );
-							if( ad ) {
-								if( ad[ iMotifThree ] != d ) {
-									cerr << "A	" << GeneScores.GetType( k ) << '\t' << eSubsequence << '\t' << ad[ iMotifThree ] <<
-										'\t' << GeneScores.Get( k, eSubsequence, j, iMotifThree ) << endl;
-									return 1; } }
-							else if( d != 0 ) {
-								cerr << "B	" << GeneScores.GetType( k ) << '\t' << eSubsequence << '\t' <<
-									'\t' << GeneScores.Get( k, eSubsequence, j, iMotifThree ) << endl;
-								return 1; } }
-					if( Cluster.IsGene( j ) )
-						HistsCluster.Add( GeneScores, j, false, iMotifThree );
-					else
-						HistsPot.Add( GeneScores, j, false, iMotifThree ); } }
-//*/
-
-/*
-		for( j = 0; j < PCL.GetGenes( ); ++j )
-			if( veciPCL2FASTA[ j ] != -1 ) {
-				vector<SFASTASequence>	vecsSequences;
-
-				FASTA.Get( veciPCL2FASTA[ j ], vecsSequences );
-				for( k = 0; k < vecsSequences.size( ); ++k ) {
-					const SFASTASequence&	sSequence	= vecsSequences[ k ];
-					float*					ad;
-
-					if( sSequence.m_vecstrSequences.size( ) != 1 )
-						continue;
-					d = Motifs.GetMatch( sSequence.m_vecstrSequences[ 0 ], iMotifThree, 0,
-						sModifiers ) / sSequence.m_vecstrSequences[ 0 ].length( );
-					if( !( ad = GeneScores.Get( GeneScores.GetType( sSequence.m_strType ),
-						CCoalesceSequencerBase::ESubsequenceTotal, j ) ) || ( d != ad[ iMotifThree ] ) ) {
-						cerr << j << '\t' << PCL.GetGene( j ) << '\t' << sSequence.m_strType << '\t' <<
-							( ad ? ad[ iMotifThree ] : -1 ) << '\t' << d << endl;
-						return 1; } } }
-//*/
-
-		for( j = 0; j < PCL.GetGenes( ); ++j )
-			for( k = 0; k < GeneScores.GetTypes( ); ++k )
-				for( eSubsequence = CCoalesceSequencerBase::ESubsequenceBegin;
-					(size_t)eSubsequence < GeneScores.GetSubsequences( k );
-					eSubsequence = (CCoalesceSequencerBase::ESubsequence)( (size_t)eSubsequence + 1 ) ) {
-					if( !GeneScores.Get( k, eSubsequence, j ) )
-						continue;
-					for( size_t m = 0; m < veciMotifs.size( ); ++m ) {
-						d = GeneScores.Get( k, eSubsequence, j, veciMotifs[ m ] );
-						s = Cluster.IsGene( j ) ?
-							HistsCluster.Get( k, eSubsequence ).Get( veciMotifs[ m ], d ) :
-							HistsPot.Get( k, eSubsequence ).Get( veciMotifs[ m ], d );
-						if( !s ) {
-							cerr << "D	" << j << '\t' << PCL.GetGene( j ) << '\t' <<
-								GeneScores.GetType( k ) << '\t' << eSubsequence << '\t' << d << '\t' <<
-								Cluster.IsGene( j ) << endl;
-							cerr << Motifs.GetMotif( veciMotifs[ m ] ) << endl;
-							cerr << HistsCluster.Get( k, eSubsequence ).Save( veciMotifs[ m ] ) << endl;
-							cerr << HistsPot.Get( k, eSubsequence ).Save( veciMotifs[ m ] ) << endl;
-							return 1; } } }
-
-		for( j = 0; j < PCL.GetGenes( ); ++j ) {
-			if( ( (float)rand( ) / RAND_MAX ) > ( 1.0 / 100 ) )
-				continue;
-			if( Cluster.IsGene( j ) )
-				Pot.Add( j, Cluster );
-			else
-				Cluster.Add( j, Pot ); } }
-
-	return 0; }
-
-int main_test2( const gengetopt_args_info& sArgs, const CPCL& PCL, const CFASTA& FASTA, CCoalesceMotifLibrary& Motifs ) {
-	CCoalesceGeneScores			GeneScores;
-	size_t						i, j, iIter, iOrig;
-	uint32_t					iOne, iTwo, iThree;
-	SCoalesceModifiers			sMods;
-	vector<vector<float> >		vecvecdCounts, vecvecdOrig;
-	vector<size_t>				veciLengths;
-	vector<float>				vecdScores;
-	SCoalesceModifierCache		sModifiers( sMods );
-	vector<size_t>				veciPCL2FASTA;
-	float						d;
-
-	veciPCL2FASTA.resize( PCL.GetGenes( ) );
-	for( i = 0; i < veciPCL2FASTA.size( ); ++i )
-		veciPCL2FASTA[ i ] = FASTA.GetGene( PCL.GetGene( i ) );
-	sMods.Initialize( PCL );
-
-	GeneScores.SetGenes( PCL.GetGenes( ) );
-	for( i = 0; i < veciPCL2FASTA.size( ); ++i )
-		if( veciPCL2FASTA[ i ] != -1 ) {
-			vector<SFASTASequence>	vecsSequences;
-
-			if( FASTA.Get( veciPCL2FASTA[ i ], vecsSequences ) ) {
-				sModifiers.Get( i );
-				for( j = 0; j < vecsSequences.size( ); ++j )
-					if( !GeneScores.Add( i, Motifs, vecsSequences[ j ], sModifiers, vecvecdCounts,
-						veciLengths ) )
-						return 1; } }
-
-	vecvecdOrig.resize( PCL.GetGenes( ) );
-	for( i = 0; i < vecvecdOrig.size( ); ++i ) {
-		vecvecdOrig[ i ].resize( iOrig = Motifs.GetMotifs( ) );
-		for( j = 0; j < vecvecdOrig[ i ].size( ); ++j )
-			vecvecdOrig[ i ][ j ] = GeneScores.Get( 0, CCoalesceSequencerBase::ESubsequenceTotal, i,
-				(uint32_t)j ); }
-
-	for( iIter = 0; iIter < 1000; ++iIter ) {
-		iOne = rand( ) % Motifs.GetMotifs( );
-		iTwo = rand( ) % Motifs.GetMotifs( );
-		iThree = Motifs.Merge( iOne, iTwo, FLT_MAX, false );
-
-		for( i = 0; i < veciPCL2FASTA.size( ); ++i )
-			if( veciPCL2FASTA[ i ] != -1 ) {
-				vector<SFASTASequence>	vecsSequences;
-
-				if( FASTA.Get( veciPCL2FASTA[ i ], vecsSequences ) ) {
-					sModifiers.Get( i );
-					for( j = 0; j < vecsSequences.size( ); ++j )
-						if( !GeneScores.Add( i, Motifs, vecsSequences[ j ], sModifiers, iThree, vecdScores,
-							veciLengths ) ) {
-							cerr << "FAILURE" << endl;
-							return 1; } } }
-
-		for( i = 0; i < PCL.GetGenes( ); ++i )
-			for( j = 0; j < vecvecdOrig[ i ].size( ); ++j )
-				if( vecvecdOrig[ i ][ j ] != ( d = GeneScores.Get( 0,
-					CCoalesceSequencerBase::ESubsequenceTotal, i, (uint32_t)j ) ) ) {
-					cerr << i << '\t' << PCL.GetGene( i ) << '\t' << j << '\t' << vecvecdOrig[ i ][ j ] <<
-						'\t' << d << endl;
-					cerr << Motifs.GetMotif( (uint32_t)j ) << endl;
-					return 1; } }
-
-	return 0; }