1313from scipy .stats import entropy
1414import numpy as np
1515import csv
16- import os
17-
18- # initialize parser
19- parser = argparse .ArgumentParser (description = 'Calculate clonality of a TCR repertoire' )
20-
21- # add arguments
22- parser .add_argument ('-s' , '--sample_meta' ,
23- metavar = 'sample_meta' ,
24- type = str ,
25- help = 'sample metadata passed in through samples CSV file' )
26- parser .add_argument ('-c' , '--count_table' ,
27- metavar = 'count_table' ,
28- type = argparse .FileType ('r' ),
29- help = 'counts file in TSV format' )
30-
31- args = parser .parse_args ()
32-
33- ## convert metadata to list
34- s = args .sample_meta
35- sample_meta = args .sample_meta [1 :- 1 ].split (', ' )
36- # print('sample_meta looks like this: ' + str(sample_meta))
37-
38- # Read in the counts file
39- counts = pd .read_csv (args .count_table , sep = '\t ' , header = 0 )
40- counts = counts .rename (columns = {'count (templates/reads)' : 'read_count' , 'frequencyCount (%)' : 'frequency' })
41- # print('counts columns: \n')
42- # print(counts.columns)
4316
4417def calc_sample_stats (sample_meta , counts ):
4518 """Calculate sample level statistics of TCR repertoire."""
@@ -142,4 +115,31 @@ def calc_sample_stats(sample_meta, counts):
142115 # with open('gene_usage_' + str(metadata[1] + '_' + str(metadata[2] + '_' + str(metadata[3]))) + '.pkl', 'wb') as f:
143116 # pickle.dump(gene_usage, f)
144117
145- calc_sample_stats (sample_meta , counts )
118+ def main ():
119+ # initialize parser
120+ parser = argparse .ArgumentParser (description = 'Calculate clonality of a TCR repertoire' )
121+
122+ # add arguments
123+ parser .add_argument ('-s' , '--sample_meta' ,
124+ metavar = 'sample_meta' ,
125+ type = str ,
126+ help = 'sample metadata passed in through samples CSV file' )
127+ parser .add_argument ('-c' , '--count_table' ,
128+ metavar = 'count_table' ,
129+ type = argparse .FileType ('r' ),
130+ help = 'counts file in TSV format' )
131+
132+ args = parser .parse_args ()
133+
134+ ## convert metadata to list
135+ s = args .sample_meta
136+ sample_meta = args .sample_meta [1 :- 1 ].split (', ' )
137+
138+ # Read in the counts file
139+ counts = pd .read_csv (args .count_table , sep = '\t ' , header = 0 )
140+ counts = counts .rename (columns = {'count (templates/reads)' : 'read_count' , 'frequencyCount (%)' : 'frequency' })
141+
142+ calc_sample_stats (sample_meta , counts )
143+
144+ if __name__ == "__main__" :
145+ main ()
0 commit comments