# Is there a simple command for outputting a tab delimited columns?

I am working on a fasta file and am writing my command in nano within command-line and executing using python, also within a command line.

My objective is to get my command to provide me with a tab delimited file with three columns: first column should contain my sequence name, second column should provide me with my sequence length, and the third column should show the sequence itself.

I have written the following command so far within nano:

For example, I would like my command to provide me with the desired output and with the following order: Gene name ; Gene length ; Gene seq

A06842X 45 GORHQRIHQEERHEUWOHRPPTRWFAWWEAKJNFWEJQEFQEPRT

Jb4329PC 21 LDHKQAJTYOWEPLKFREEQW

• Hi @KamilSJaron, I appreciate the help! The reason why I am doing this is because it makes it easier for me to easily detect which genes I could disregard if they are over a certain length. For the command below, I tried it, but I received a "TypeError: sequence item 2: expected str instance, Seq found". I tried googling this but was not able to find anything. – AlphaQueUp Nov 15 '20 at 18:03
• Yeah, I forgot to convert the Seq class to str class before creating the line, see the edit, it should work now. Regarding the utility of such table, I guess I would always get the gene length on the fly (every time you have the sequence of a gene is really easy to get the length too in any language). – Kamil S Jaron Nov 15 '20 at 18:20

I have no idea what do you want to do with fasta files reformatted like this, but I think something like this should do the job (untested):

from Bio import SeqIO
import sys

for olig_fasta in SeqIO.parse(sys.argv[1], "fasta"):

name = olig_fasta.name
seq = str(olig_fasta.seq)
seq_len = str(len(olig_fasta.seq))

print("\t".join([name, seq_len, seq]))

• Based on OP's desired order, it should be print("\t".join([name, str(seq_len), seq]). – Ram RS Nov 15 '20 at 17:04
• Yeah, you can prin Seq, but to manipulate it as a string one needs to convert it to string using str command (I edited the answer, now it should work) – Kamil S Jaron Nov 15 '20 at 18:17