annotate igblastmerge.py @ 1:07a23652bc2a draft

Uploaded
author davidvanzessen
date Tue, 25 Mar 2014 06:59:26 -0400
parents 03dbb4601b15
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
1 import sys
1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
2 import pandas as pd
0
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
3
1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
4 def main():
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
5 patients = {}
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
6 files = []
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
7 sample_id = sys.argv[1]
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
8 imgt_files = 0
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
9 blast_files = 0
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
10 #organize files
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
11 for arg in sys.argv[2:-2]:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
12 if arg.find("/") is -1:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
13 patients[sample_id] = files
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
14 files = []
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
15 sample_id = arg
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
16 else:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
17 df = pd.read_csv(arg, sep="\t")
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
18 if "Functionality" in list(df.columns.values):
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
19 df["VDJ Frame"][df["Functionality"] != "productive"] = "In-frame with stop codon"
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
20 imgt_files += 1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
21 else:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
22 blast_files += 1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
23 files.append(df)
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
24 patients[sample_id] = files
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
25 columns = [u'ID', u'VDJ Frame', u'Top V Gene', u'Top D Gene', u'Top J Gene', u'CDR1 Seq', u'CDR1 Length', u'CDR2 Seq', u'CDR2 Length', u'CDR3 Seq', u'CDR3 Length', u'CDR3 Seq DNA', u'CDR3 Length DNA', u'Strand', u'CDR3 Found How', u'Functionality', 'V-REGION identity %', 'V-REGION identity nt', 'D-REGION reading frame', 'AA JUNCTION', 'Functionality comment', 'Sequence', 'FR1-IMGT', 'FR2-IMGT', 'FR3-IMGT', 'CDR3-IMGT', 'JUNCTION', 'J-REGION', 'FR4-IMGT', 'P3V-nt nb', 'N1-REGION-nt nb', 'P5D-nt nb', 'P3D-nt nb', 'N2-REGION-nt nb', 'P5J-nt nb', '3V-REGION trimmed-nt nb', '5D-REGION trimmed-nt nb', '3D-REGION trimmed-nt nb', '5J-REGION trimmed-nt nb', u'Sample', u'Replicate']
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
26 if blast_files is not 0:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
27 print "Has a parsed blastn file, using limited columns."
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
28 columns = [u'ID', u'VDJ Frame', u'Top V Gene', u'Top D Gene', u'Top J Gene', u'CDR1 Seq', u'CDR1 Length', u'CDR2 Seq', u'CDR2 Length', u'CDR3 Seq', u'CDR3 Length', u'CDR3 Seq DNA', u'CDR3 Length DNA', u'Strand', u'CDR3 Found How', u'Sample', u'Replicate']
0
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
29
1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
30 result = None
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
31 for patient_id, samples in patients.iteritems():
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
32 count = 1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
33 for sample in samples:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
34 sample['Sample'] = patient_id
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
35 sample['Replicate'] = str(count)
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
36 count += 1
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
37 if result is None:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
38 result = sample[columns]
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
39 else:
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
40 result = result.append(sample[columns])
07a23652bc2a Uploaded
davidvanzessen
parents: 0
diff changeset
41 result.to_csv(sys.argv[-1], sep="\t", index=False, index_label="index")
0
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
42
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
43 if __name__ == "__main__":
03dbb4601b15 Uploaded
davidvanzessen
parents:
diff changeset
44 main()