コード例 #1
0
ファイル: pslAffySelect.c プロジェクト: bowhan/kent
void filterPsls()
{
struct psl *origPslList=NULL, *pslList=NULL, *psl=NULL;
int startCount=0, stopCount=0;
char buff[256];
origPslList = pslLoadAll(pslIn);

/* some messages for the user */
startCount = slCount(origPslList);
sprintf(buff, "Filtering %d psl using seqIdent=%g and basePct=%g\n", 
	startCount, seqIdent, basePct);
msg(buff);

/* do our filtering */
pslList = filterBySeqIdentity(seqIdent, origPslList);
pslFreeList(&origPslList);
origPslList = filterByBasePct(basePct, pslList);


/* let the user know we're done */
if(origPslList != NULL)
{
stopCount = slCount(origPslList);
pslWriteAll(origPslList, pslOut, FALSE);
pslFreeList(&origPslList);
}
pslFreeList(&origPslList);
pslFreeList(&pslList);
sprintf(buff, "After filtering %d of %d are left\n", stopCount, startCount);
msg(buff);
}
コード例 #2
0
ファイル: vulgarToPsl.c プロジェクト: blumroy/kentUtils
int main(int argc, char *argv[])
/* The program */
{
struct psl *pslList = NULL, *psl;
struct hash *queryHash, *targetHash;
struct lineFile *vulg;
aaSeq *querySeqs;
struct dnaSeq *targetSeqs;
if (argc != 5)
    usage();
/* Load up everything at beginning */
vulg = lineFileOpen(argv[1], TRUE);
querySeqs = dnaLoadAll(argv[2]);
targetSeqs = dnaLoadAll(argv[3]);
queryHash = seqHash(querySeqs);
targetHash = seqHash(targetSeqs);
/* Main business */
pslList = vulgarToPsl(vulg, queryHash, targetHash);
pslWriteAll(pslList, argv[4], FALSE);
/* Free up everything */
freeDnaSeqList(&querySeqs);
freeDnaSeqList(&targetSeqs);
freeHash(&targetHash);
freeHash(&queryHash);
pslFreeList(&pslList);
lineFileClose(&vulg);
return 0;
}
コード例 #3
0
ファイル: pslPartition.c プロジェクト: Nicholas-NVS/kentUtils
static void pslPartsWrite(struct pslParts *parts, char *outDir)
/* write out a set of partitions and reset stated to empty. */
{
    char *partPath = getPartPslFile(outDir, parts->partNum++);
    pslWriteAll(parts->psls, partPath, FALSE);
    freeMem(partPath);
    pslFreeList(&parts->psls);
    parts->size = 0;
}
コード例 #4
0
void extractPslForLfs(char *pslFile, char *lfsFile, char *out)
/* Extract psl alignments for alignments in lfs bed file */
{
struct lineFile *pf, *bf;
FILE *pslOut;
char errorFile[256] = "error.log";
struct hash *pslHash = newHash(20);
struct bed *bedList = NULL;
struct psl *pslList = NULL;

fprintf(stdout,"NOTE: Program assumes that chrom, chromStart and chromEnd \n");
fprintf(stdout, "are unique for each item in the lfs file so only one PSL \n"); 
fprintf(stdout, "alignment will be picked for each specific item and \n");
fprintf(stdout, "genomic location.\n\n");

fprintf(stdout, "Opening files ...\n");
bf = lineFileOpen(lfsFile, TRUE);
pslOut = mustOpen(out, "w");
stderr = mustOpen(errorFile, "w");

/* Open psl alignments file */
pf = pslFileOpen(pslFile);
/* Read in psl file of alignments */
verbose(1, "Reading psl and storing alignments file ...\n");
readPslFile(pf, &pslHash);

/* Read in lfs BED file of alignments */
verbose(1, "Reading and storing lfs alignments file ...\n");
bedList = convertLfsToBed(bf);
verbose(1, "Extracting psl alignments ... \n");
pslList = getPslList(pslHash, bedList);
/* print out the psl file without the header */
pslWriteAll(pslList, out, FALSE);

/* close files */
lineFileClose(&bf);
lineFileClose(&pf);
carefulClose(&pslOut);
carefulClose(&stderr);
}