How can I convert SCF trace files to ABI files? I have a large collection of sequence trace files which are in SCF file format (binary files that in addition to the string of DNA bases also contain the electropherogram of the sample and quality information about the base calls).

I have an existing BioPython pipeline that accepts files in AB1 format (pdf), so I need to convert my SCF files to AB1 files.

I found a question on Biostars that asks for the opposite: converting from SCF to AB1.

The accepted answer there was to use convert_trace from the Staden package.

./convert_trace -out_format scf &lt; trace.ab1 &gt; trace.scf


So I tried the opposite:

./convert_trace -out_format abi &lt; trace.scf &gt; trace.ab1


This did indeed produce a file with *.ab1 extension, but upon importing it to my BioPython pipeline, I got the error

File should start ABIF, not '\xaeZTR'


So apparently, convert_trace converted my files to ZTR format, even altough I specified -out_format abi.

Closer reading of the manual states that [convert_exe] can write CTF, EXP, PLN, SCF and ZTR formats. (so indeed no ABI), but it confuses me why ABI is still a valid output format.

So, my question is, how do I convert SCF files into ABI files?
Apparently convert_trace does not do a good parameter checking and silently sets ZTR as default if it does not recognise a valid output format.

I don't know of any freely available command-line converters in that specific direction. Even at the height of Sanger sequencing (late 90s, early 2000s), pipelines usually tried to reduce complexity and footprint by converting AB1 to anything else, often SCF (ZTR came too late and never got enough traction).

That being said, I dug out an SCF I had from 1997, loaded it into Geneious, and re-exported it as .ab1. I was a bit astonished to see that this worked. So Geneious (or similar packages from other companies) may be your best bet for a quick, one-off thing.

Depending on your needs, you might want to think about other ways: either expand BioPython to read SCFs, or maybe to expand the Staden io_lib to be able to write .ab1 (James still maintains that package and is extremely helpful).

Good luck.