diff PDAUG_Sequence_Based_Peptide_Generation/PDAUG_Sequence_Based_Peptide_Generation.py @ 0:c3f0b3a6339e draft

"planemo upload for repository https://github.com/jaidevjoshi83/pdaug commit a9bd83f6a1afa6338cb6e4358b63ebff5bed155e"
author jay
date Wed, 28 Oct 2020 01:47:48 +0000
parents
children 95c09c06f655
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PDAUG_Sequence_Based_Peptide_Generation/PDAUG_Sequence_Based_Peptide_Generation.py	Wed Oct 28 01:47:48 2020 +0000
@@ -0,0 +1,154 @@
+import sys
+import itertools
+import pandas as pd
+import random
+import os
+from itertools import permutations
+from random import shuffle
+import argparse, sys
+import pandas as pd
+
+
+def MutatedPeptides(input_file, index_list, AA, outputFile):
+
+
+    index_list = [int(x) for x in index_list.split(',')]
+    out_put = []
+    AA = AA.split(',')
+    l = len(index_list)
+
+    replacements = [x for x in itertools.permutations(AA,l)]
+
+
+    counter = 0
+    to_modify = [x for x in input_file]
+
+    for replacement in replacements:
+        for i,index in enumerate(index_list):
+            to_modify[index_list[i]-1] = replacement[i]
+
+        counter = counter + 1
+        out_put.append("".join(to_modify).upper())
+
+    w = open(outputFile, 'w')
+
+    for i, f in enumerate(out_put):
+
+
+        w.write(">sequence_"+str(i)+'\n')
+        w.write(f+'\n')
+
+def RandomPeptides(AAs, pep_length, out_pep_num, outputFile):
+
+
+    if int(pep_length) > 20:
+        print ("Max peptide lenth 20")
+        exit()
+    else:
+        pass
+
+    if int(out_pep_num) > 10000:
+        print ("Max peptide library 10000")
+        exit()
+    else:
+        pass
+
+    out_pep_lib = []
+    raw = AAs.split(',')
+
+    for x in range(int(out_pep_num)):
+        un_seq = []
+        for i in range(int(pep_length)):
+            un_seq.append(random.choice(raw))
+        out_pep_lib.append("".join(un_seq))
+
+
+    w = open(outputFile, 'w')
+
+
+    for i, f in enumerate(out_pep_lib):
+
+        w.write(">sequence_"+str(i)+'\n')
+        w.write(f+'\n')
+
+def SlidingWindowPeptide(infile, window_size, frag_size, outputFile):
+
+
+    if int(window_size) > 10:
+        print ("Max window_size 10")
+        exit()
+    else:
+        pass
+    if int(frag_size) >  20:
+        print ("Max frag size is 20")
+        exit()
+    else:
+        pass
+
+
+    pep_list = []
+
+    f = open(infile)
+
+    lines = f.readlines()
+
+    flines = []
+
+    for line in lines:
+        if '>' in line:
+            pass
+        else:
+            flines.append(line.strip('\n'))
+    sequence = "".join(flines)
+
+    for i in range(int(frag_size)):
+        if int(frag_size) == len(sequence[i*int(window_size):i*int(window_size)+int(frag_size)]):
+            pep_list.append(sequence[i*int(window_size):i*int(window_size)+int(frag_size)])
+        else:
+            break
+
+    w = open(outputFile, 'w')
+
+
+    for i, f in enumerate(pep_list):
+
+        w.write(">sequence_"+str(i)+'\n')
+        w.write(f+'\n')
+
+if __name__=='__main__':
+
+    parser = argparse.ArgumentParser(description='Deployment tool')
+    subparsers = parser.add_subparsers()
+
+    Mp = subparsers.add_parser('MutatedPeptides')
+    Mp.add_argument("-s","--sequence")
+    Mp.add_argument("-m","--mutation_site_list")
+    Mp.add_argument("-a","--AA_list")
+    Mp.add_argument("-d", "--outputFile", required=None, default='out.fasta',   help="Path to out file")
+
+    Rp = subparsers.add_parser('RandomPeptides')
+    Rp.add_argument("-a","--AA_list")
+    Rp.add_argument("-l","--pep_length")
+    Rp.add_argument("-o","--out_pep_lenght")
+    Rp.add_argument("-d", "--outputFile", required=None, default=os.path.join(os.getcwd(),'report_dirr'),   help="Path to out file")
+
+    Sp = subparsers.add_parser('SlidingWindowPeptide')
+    Sp.add_argument("-i","--InFile")
+    Sp.add_argument("-w","--winSize")
+    Sp.add_argument("-s","--FragSize")
+    Sp.add_argument("-d", "--outputFile", required=None, default=os.path.join(os.getcwd(),'report_dirr'),   help="Path to out file")
+
+    args = parser.parse_args()
+
+    if sys.argv[1] == 'MutatedPeptides':
+        MutatedPeptides(args.sequence, args.mutation_site_list, args.AA_list, args.outputFile)
+
+    elif sys.argv[1] == 'RandomPeptides':
+        RandomPeptides(args.AA_list, args.pep_length, args.out_pep_lenght, args.outputFile)
+
+    elif sys.argv[1] == 'SlidingWindowPeptide':
+        SlidingWindowPeptide(args.InFile, args.winSize, args.FragSize, args.outputFile)
+
+    else:
+        print("In Correct Option:")
+