This program takes three files and compares the key among three files, and only print those entries which are specifically present in "AGO1" and not in others. I can print the result on the console. Please let me know how can I write results into a text file "Only_AGO1.txt" ONLY through the argument of function "OnlyArgSeq".
import sys
file1 = sys.argv[1]
file2 = sys.argv[2]
file4 = sys.argv[3]
AGO={}
AGO1={}
AGO2={}
AGO4={}
# Function "ArgSeq" to read each line of Argonoute "file" (Sequence, copy number)
# and put into a dictionary "AGO"
def ArgSeq(AGO,file):
with open(file) as f:
for line in f:
(key, val) = line.split()
AGO[key] = val
ArgSeq(AGO1,file1) # AGO1 dictionary
ArgSeq(AGO2,file2) # AGO2 dictionary
ArgSeq(AGO4,file4) # AGO4 dictionary
# Function "OnlyArgSeq" to find sRNA loading only to specific ARG
# eg sorting into ARG1, but not ARG2,ARG4
def OnlyArgSeq(AGO, *kwargs):
only_AGO = {k:v for k,v in AGO.items()
if not any(k in dicts for dicts in (kwargs))}
for key in only_AGO.keys():
print key, only_AGO[key]
OnlyArgSeq(AGO1, AGO2, AGO4) # sRNA sorting specifically to AGO1, Only_AGO1.txt
AGO1.txt
AAAAAAAATTGTTGCCGTTGG 1
AAAAAAACTTTGCTTATTTGTTCA 1
AAAAAAATGCTTATTTCAAATCGG 1
AAAAAAATGGGTCGGTTGTTTCA 1
AAAAAAATTGTTGCCGTTGGG 1
AGO2.txt
TTTTTTTTTTCGTCAGTTGGGTTC 1
TTTTTTTTTTGTCAAATTCTG 1
TTTTTTTTTTTCTTTGTCATCCGA 1
TTTTTTTTTTTGTCATCCAAA 1
TTTTTTTTTTTTATGATGTACA 1
AAAAAAATTGTTGCCGTTGGG 2
AGO4.txt
TTTTTTTTGAATATTTTGGTTGG 1
TTTTTTTTGGTAAGCTGTTAA 1
TTTTTTTTTACTGTAGTTTCTT 1
TTTTTTTTTCATGATTTCTTCCTT 2
TTTTTTTTTTAAATATTCTTTTGCCT 3
AAAAAAATTGTTGCCGTTGGG 2