瀏覽代碼

sfs plotting

tforest 1 年之前
父節點
當前提交
ecc6fd23fc
共有 1 個文件被更改,包括 10 次插入4 次删除
  1. 10 4
      sfs_tools.py

+ 10 - 4
sfs_tools.py 查看文件

@@ -208,6 +208,7 @@ def barplot_sfs(sfs,  xlab, ylab, folded=True, title = "Barplot", transformed =
208 208
         #     else:
209 209
         #         sfs_val.append(ksi)
210 210
         if transformed:
211
+            ylab = r'$ \phi_i $'
211 212
             if folded:
212 213
                 val = ((k*(2*n - k)) / (2*n))*(ksi)
213 214
             else:
@@ -215,6 +216,9 @@ def barplot_sfs(sfs,  xlab, ylab, folded=True, title = "Barplot", transformed =
215 216
         else:
216 217
             val = ksi
217 218
         sfs_val.append(val)
219
+
220
+        if not transformed and not normalized:
221
+            ylab = r'$ \eta_i $'
218 222
             
219 223
     #terminal case, same for folded or unfolded
220 224
     if transformed:
@@ -223,19 +227,21 @@ def barplot_sfs(sfs,  xlab, ylab, folded=True, title = "Barplot", transformed =
223 227
         last_bin = list(sfs.values())[n-1]
224 228
     sfs_val[-1] = last_bin
225 229
     if normalized:
226
-        ylab = "Fraction of SNPs"
230
+        #ylab = "Fraction of SNPs "
231
+        ylab = r'$ \phi_i $'
227 232
         sum_val = sum(sfs_val)
228 233
         for k, sfs_bin in enumerate(sfs_val):
229 234
             sfs_val[k] = sfs_bin / sum_val
235
+        
230 236
         #print(sum(sfs_val))
231 237
     #build the plot
232
-    title = title+" (n="+str(len(sfs_val)+1)+") [folded="+str(folded)+"]"+" [transformed="+str(transformed)+"]"
238
+    title = title+" (n="+str(len(sfs_val))+") [folded="+str(folded)+"]"+" [transformed="+str(transformed)+"]"
233 239
     print("SFS =", sfs)
234 240
     if folded:
235 241
         xlab = "Minor allele frequency"
236 242
     if transformed:
237
-        print("Transformed SFS ( n =",len(sfs_val)+1, ") :", sfs_val)
238
-        plt.axhline(y=1/n, color='r', linestyle='-')
243
+        print("Transformed SFS ( n =",len(sfs_val), ") :", sfs_val)
244
+        #plt.axhline(y=1/n, color='r', linestyle='-')
239 245
     else:
240 246
         if normalized:
241 247
             # then plot a theoritical distribution as 1/i