Try to get an overview of what is wrong in the file. This also sheds some light on the competences of the people making these files.
The files have seemingly undergone manual editing without taking care of the correct number of columns. The following perl code
lists the lines which do not have 14 items:
cat 014850_D_AA_20070207.txt | perl -naF"\t" -e '$i++; s/\t/<tab>/g; print $c++." : line $i has ". scalar @F ." entries \n$_\n" if @F != 14' | less
With the following result:
[...]
559 : line 40908 has 2 entries
A_24_P937084<tab>A_24_P937084
560 : line 40936 has 12 entries
A_24_P938135<tab>Z25424<tab><tab>Z25424<tab>Hs.515032<tab><tab><tab><tab><tab><tab><tab>H.sapiens protein-serine/threonine kinase gene, complete CDS. [Z25424]
Now, you could complain to Agilent that for the money you pay them, they should provide you with correct files, or repair yourself, trusting them that the files do not contain more errors.
You can make a file with all correct lines like so:
cat 014850_D_AA_20070207.txt | perl -naF"\t" -e"print if @F == 14" > ok.txt
And one with the rest accordingly:
cat 014850_D_AA_20070207.txt | perl -naF"\t" -e"print if @F < 14" > notok.txt
and rescue information in excel manually.
The result ok.txt still contains ' - default quote character for read.table - like in 3'-UTR and # - default comment char - (exon # 5), so in order to read all columns into R, you should use the following settings:
Update:
any.biological.annotation = read.table("ok.txt", sep="\t", quote="", comment.char="", na.strings="", header=TRUE)
This might be a good preset for parsing most biological annotations in R. Never use the fill=T option (unless you are prepared to shoot yourself in the foot), because that will just cause errors to go unnoticed.