import argparse
def DNAcounting(): #### Count the NUMBER of DNA bases in each FASTA file in the current directory
import os
FileList = os.listdir()
for File in FileList:
if os.path.splitext(File)[1] == ‘.fasta’:
f = open(File, ‘r’)
lines = f.readlines()
seq = ‘’
for i in lines:
if i[0] == ‘>’:
continue else:
seq += i.strip()
s = len(seq)
print(s)
def DNAcounting2(): #### Version 2 of the counting of DNA.
import os
FileList = os.listdir()
for File in FileList:
if os.path.splitext(File)[1] == ‘.fasta’:
f = open(File, ‘r’)
s = f.read()
print(“%d %d %d %d” % (s.count(‘A’), s.count(‘C’), s.count(‘G’), s.count(‘T’)))
print(“%d” % (s.count(‘A’) + s.count(‘C’) + s.count(‘G’) + s.count(‘T’)))
def Complementary():
#### Outputs the complementary sequence of fasta files in the current folder to the file
import os
FileList = os.listdir()
for File in FileList:
if os.path.splitext(File)[1] == ‘.fasta’:
f = open(File, ‘r’)
astring = ‘’
qname = f.split(“/“)[-1]
oname = os.path.splitext(qname)[0]
strings = f.read()
intab = ‘ACGT’
outtab = ‘TGCA’
trantab = str.maketrans(intab, outtab)
astring += strings[::-1].translate(trantab)
f = open(oname + ‘com.txt’, ‘w’)
print(astring, file=f)
def Translation(): #### 对当前文件夹中的fasta序列翻译并输出结果到文件
import os
FileList = os.listdir()
for File in FileList:
if os.path.splitext(File)[1] == ‘.fasta’:
f = open(File, ‘r’)
qname = f.split(“/“)[-1]
oname = os.path.splitext(qname)[0]
seq = f.read()
seq = seq.replace(“\n”, “”)
seq = seq.replace(“\r”, “”)
DNA2condon = ([seq[start:start + 3] for start in range(0, len(seq), 3)])
seq = ‘ ‘
for i in DNA2condon:
if (i == “ATG”): seq = seq + “START “
if (i == “TGA” or i == “TAA” or i == “TGA”): seq = seq + “END “
if (i == “ATA” or i == “ATC” or i == “ATT”): seq = seq + “I “
if (i == “ACA” or i == “ACC” or i == “ACG” or i == “ACT”): seq = seq + “T “
if (i == “AAC” or i == “AAT”): seq = seq + “N “
if (i == “AAA” or i == “AAG”): seq = seq + “K “
if (i == “AGC” or i == “AGT”): seq = seq + “S “
if (i == “AGA” or i == “AGG”): seq = seq + “R “
if (i == “CTA” or i == “CTC” or i == “CTG” or i == “CTT”): seq = seq + “L “
if (i == “CCA” or i == “CCC” or i == “CCG” or i == “CCT”): seq = seq + “P “
if (i == “CAC” or i == “CAT”): seq = seq + “H “
if (i == “CAA” or i == “CAG”): seq = seq + “Q “
if (i == “CGA” or i == “CGC” or i == “CGG” or i == “CGT”): seq = seq + “R “
if (i == “GTA” or i == “GTC” or i == “GTG” or i == “GTT”): seq = seq + “V “
if (i == “GCA” or i == “GCC” or i == “GCG” or i == “GCT”): seq = seq + “A “
if (i == “GAC” or i == “GAT”): seq = seq + “D “
if (i == “GAA” or i == “GAG”): seq = seq + “E “
if (i == “GGA” or i == “GGC” or i == “GGG” or i == “GGT”): seq = seq + “G “
if (i == “TCA” or i == “TCC” or i == “TCG” or i == “TCT”): seq = seq + “S “
if (i == “TTC” or i == “TTT”): seq = seq + “F “
if (i == “TTA” or i == “TTG”): seq = seq + “L “
if (i == “TAC” or i == “TAT”): seq = seq + “Y “
if (i == “TGC” or i == “TGT”): seq = seq + “C “
if (i == “TGG”): seq = seq + “W “
f = open(oname + ‘trans.txt’, ‘w’)
print(seq, file=f)
if name == “main“:
parser = argparse.ArgumentParser()
args = parser.parse_args()