This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Meaning of "Cannot allocate [number] character vector" in Mafft

Quick and simple question; I am trying to align 11 very long sequences in Mafft 7.304 for Windows and always get the above error. I have tried to search to find out what it means and what I can do about it but so far haven't had much luck. Would anyone be able to tell me? I'd also appreciate a link to any online page detailing each of Mafft's errors, as I haven't been able to find such a thing myself.

Thanks and best wishes.

mafft

1 answer

Looks like memory issue can you give more details about OS and memory?

Knowing that

on a 32-bit build there may well be enough free memory available, but not a large enough contiguous block of address space into which to map it

from mafft code I can see

char *AllocateCharVec( int l1 )
{
      char *cvec;

      cvec = (char *)calloc( l1, sizeof( char ) );
      if( cvec == NULL )
      {
            fprintf( stderr, "Cannot allocate %d character vector.\n", l1 );
            exit( 1 );
      }
      return( cvec );
}

calloc actually

Allocate and zero-initialize array Allocates a block of memory for an array of num elements, each of them size bytes long, and initializes all its bits to zero.

The effective result is the allocation of a zero-initialized memory block of (num*size) bytes.

If size is zero, the return value depends on the particular library implementation (it may or may not be a null pointer), but the returned pointer shall not be dereferenced.

and in your case it returns null

Log in to answer this question.