void fakeSeqDiffs(char *outFile)
/* fakeSeqDiffs - Fake sequence differences from a custom track.. */
{
FILE *f = mustOpen(outFile, "w");
struct sqlConnection *conn = sqlConnect(database);
struct sqlResult *sr;
char **row;
char query[512];

safef(query, sizeof(query),
    "select * from snp126 where chrom='%s' and chromStart >= %d and chromEnd <= %d and avHet > 0.01", chrom, chromStart, chromEnd);
sr = sqlGetResult(conn, query);
while ((row = sqlNextRow(sr)) != NULL)
    {
    static struct snp126 snp;
    int i;
    snp126StaticLoad(row+1, &snp);
    for (i=0; i<ArraySize(names); ++i)
        {
	if (randBit(snp.avHet))
	    {
	    fprintf(f, "%s\t%d\t%d\t", snp.chrom, snp.chromStart, snp.chromEnd);
	    fprintf(f, "%s\t", names[i]);
	    fprintf(f, "0\t+\t%d\t%d\t", snp.chromStart, snp.chromEnd);
	    fprintf(f, "200,0,0\n");
	    } 
	}
    }
carefulClose(&f);
}
示例#2
0
int inject_2_bit_flip( int pid, long pos )
{
	int iRet;
	long origData;
	long newData;

	////read
	iRet = ptraceGetReg( pid, pos, origData );
	if( iRet == RT_FAIL ) { return RT_FAIL; }

	//random 2 bit flip
	newData = origData ^ ( 0x0000000000000001L << randBit() );
	newData = newData ^ ( 0x0000000000000001L << randBit() );

	////write
	iRet = ptraceSetReg( pid, pos, newData );
	if( iRet == RT_FAIL ) { return RT_FAIL; }

	cout << "Fault on " << offset2name( pos ) << "(0X" << hex << origData << " -> 0X" << newData << ")" << dec << endl;

	return RT_OK;
}