get_randomSQ.py

15/12/2014 15:53

Cet script python récupère aléatoirement un nombre de séquences demandées dans un fichier fasta nommé obligatoirement query.fasta

 

Exemple de ligne de commande:

python get_randomSQ.py [Nombre de séquences demandées]

 

#! /usr/bin/env python
# -*- coding: UTF8 -*-
#Get random SQ

import sys
import os
import numpy
from Bio import SeqIO

nbre = int(sys.argv[-1])
#nbre = 10

os.system("""grep -c ">" query.fasta > total.txt""")
r = file("./total.txt")
nbretotal = int(r.readline())

print "total sequences:  " + str(nbretotal)

trig = int(nbretotal/nbre)
result = file("./out.fasta", "w")
count = 0
counttrig = 0
for record in SeqIO.parse("./query.fasta", "fasta") :
    sq = ""
    count +=1
    if counttrig == trig :
        counttrig = 0
        for k in record :
            sq = sq + k
        result.write(">" + str(record.id) + "\n" + sq + "\n")
    counttrig += 1

result.close()
r.close()
os.system("rm -rf total.txt")