Beispiel #1
0
static struct dnaSeq *faReadAllMixableInLf(struct lineFile *lf, 
	boolean isDna, boolean mixed)
/* Return list of all sequences from open fa file. 
 * Mixed case parameter overrides isDna.  If mixed is false then
 * will return DNA in lower case and non-DNA in upper case. */
{
struct dnaSeq *seqList = NULL, *seq;
DNA *dna;
char *name;
int size;
boolean ok;

for (;;)
    {
    if (mixed)
        ok = faMixedSpeedReadNext(lf, &dna, &size, &name);
    else
        ok = faSomeSpeedReadNext(lf, &dna, &size, &name, isDna);
    if (!ok)
        break;
    AllocVar(seq);
    seq->name = cloneString(name);
    seq->size = size;
    seq->dna = cloneMem(dna, size+1);
    slAddHead(&seqList, seq);
    }
slReverse(&seqList);
faFreeFastBuf();
return seqList;
}
Beispiel #2
0
int main(int argc, char *argv[])
/* 
Process command line then delegate main work to splitFaIntoContigs().
*/
{
char *arg = NULL;

/* Turn off I/O buffering for more sequential output */
setbuf(stdout, NULL);

optionHash(&argc, argv);

if (argc < 4 || argc > 6)
    {
    usage();
    }

arg = optionVal("nSize", NULL);
if (NULL != arg && atoi(arg) > 0)
    {
    _nSize = atoi(arg);
    }
else if (NULL != arg)
    {
    usage();
    }

arg = optionVal("bSize", NULL);
if (NULL != arg && atoi(arg) > 0)
    {
    _bSize = atoi(arg);
    }
else if (NULL != arg)
    {
    usage();
    }

arg = optionVal("aSize", NULL);
if (NULL != arg && atoi(arg) > 0)
    {
    _aSize = atoi(arg);
    }
else if (NULL != arg)
    {
    usage();
    }

if ((_aSize != 0 && _aSize <= _bSize) 
 || (_bSize != 0 && _bSize <= _nSize)
 || (_aSize != 0 && _aSize <= _nSize))
    {
    usage();
    }

strcpy(outputDir, argv[3]);
makeDir(outputDir);

splitFaIntoContigs(argv[1], argv[2]);
faFreeFastBuf();
return 0;
}