1. 程式人生 > >生物資訊學習筆記整理

生物資訊學習筆記整理

做了不少練習,整理一下以前的經驗。
主要是歸納一些模組化的東西,提取一些常用的函式還有一些小tricky

# split的用法
str = "Line1-abcdef \nLine2-abc \nLine4-abcd"
print (str.split( ))
print (str.split(' ', 1)) # 從頭開始切一刀
list1 = [ [1,5,7], [10,3, 4], [6, 8, 5]]

# continue的用法
for list1_item in list1:
    for item in list1_item:
        print(item)
        if
(item >= 10): print('10以上') break else: continue break

對字典排序

# 方法1  據說這種方法更快 
from operator import itemgetter
d = {'a':2, 'b':23, 'c':5, 'd':17, 'e':1}
sorted(d.items(), key=itemgetter(1), reverse=True)
# 方法2
paixu = sorted(d.items(), key=lambda x: x[1
],reverse = True)
# zip()可以把兩個列表合成一個字典,順序不變
#dictionary = dict(zip(index, cg_percentage))
格式化輸出
percent3 = ('%.3f') % percent3

enumerate(lines)

# enumerate返回的是一個字典
# 列表的行數(從0開始)和對應的內容
line = 列表
for index,item in enumerate(lines):

正則

#正則替換字串的方法
①
re.sub("\([A-Z][a-z].*?\)","",line)
②
regex = re.compile(r'\([A-Z][a-z].*\)'
) for i in lines: d = regex.sub("",i) #把空格替換過去,相當於刪除了 # 正則提取檔案的方法 group() regex = re.compile(r'\([A-Z][a-z].*\)') reg = open("c:/2-1.txt","w") for i in lines: m = regex.search(i) if m: reg.writelines(m.group(0).strip("\(""\)")+"\n") # 正則search的用法 if re.search('ORGANISM',line): n=line.split('ORGANISM')[1].strip() # strip()不光可以刪除空格 也可以用來刪除特定字串 print ('> %s : %s' % (n,m)) # 正則分割 re.split() import re a='Beautiful, is; better*than\nugly' # 四個分隔符為:, ; * \n x= re.split(',|; |\*|\n',a) print((x)) # 正則查詢 re.search() str = 'user<[email protected]>' print (re.search('<(.+)>', str).group(1))

按行讀檔案的方法

while True:
    line = fobj.readline()#按行讀取
    if len(line)== 0:
        break #如果遇到檔案末尾(前提是檔案中間沒有空行),跳出迴圈

逐行讀取fastq檔案的方法

# 按行讀的時候加上計數器,(只讀奇數行)
with open("c:/Test1.fastq","r") as f:
    line_number = 0
    while True:       
        line = f.readline()
        line_number += 1        
        if line_number % 4 == 2 :             
            for i in range(len(line)):
                if line[i] == "C"  or line[i] == "G" :
                    number[i] = 1 + number[i] 

一次讀取fasta檔案,返回一個大字典

import os
os.chdir("c:/")
def readfasta(filename):
    fa = open(filename, 'r')
    res = {}
    ID = ''
    for line in fa:
        #print(line)
        if line.startswith('>'):           
            ID = line#.strip('\n')
            res[ID] = ''
        else:           
            res[ID] += line#.strip('\n')
    return res

R語言畫餅圖,沒用ggplot


data <- read.table("c:\\1-2.txt")
jpeg("c:\\Users\\mega\\17.7考核\\pie.jpeg",width=2000,height=2000,res=300)
pct <- round(val/sum(val)*100)  # 數值用百分比表示
lbls2 <- paste(key, "  ", pct,"%",sep = "") #加上百分號
pie(val,labels = lbls2,main = "Pie Chart of Qual")#,col = rainbow(length(lbls2))) 可以改成彩虹色
dev.off()

R 語言畫折線圖

# 不用ggplot會很醜
setwd("c:\\Users\\Desktop") 
data <- read.table("cg.txt",header = T) 
plot(data$location,data$frequency,main="折線圖",xlab="number",ylab="len",col="red",cex=1,lwd=1,type='o')

用了ggplot:
# 每條reads的CG分佈 畫圖
library(ggplot2)
setwd("c:\\Users\\Desktop") 
dataa <- read.table("cg.txt",header = T) 
jpeg("line.jpeg",width=2000,height=2000,res=300) 
ggplot(dataa, aes(x = location, y = frequency)) + 
geom_line()+  # 這一句是畫出折線的! 
theme(axis.text.y= element_text(size=10, color="black", face= "bold", vjust=0.5, hjust=0.5))+
theme(axis.text.x= element_text(size=10, color="black", face= "bold", vjust=0.5, hjust=0.5))+
theme(axis.title= element_text(size=12, color="black", face= "bold", vjust=0.5, hjust=0.5))+
ylim(0,1)+  #y軸的範圍
ggtitle("CG location") +  #標題
theme(plot.title = element_text(hjust = 0.5))+  # 標題的位置
xlab("Location") + ylab("frequency")  # xy軸的名字,可以覆蓋之前的名字
dev.off()

matplotlib畫圖

import matplotlib.pyplot as plt
x = list(fanal.keys())
y = list(fanal.values())
plt.plot(x, y)
plt.ylabel('frequency')
plt.xlabel('location')
plt.title('CG of reads')
#plt.text(6, .15, r'$\mu=100,\ \sigma=15$')
plt.show()
17.8.16

相關推薦

生物資訊學習筆記整理

做了不少練習,整理一下以前的經驗。 主要是歸納一些模組化的東西,提取一些常用的函式還有一些小tricky # split的用法 str = "Line1-abcdef \nLine2-abc \

JavaScript學習筆記整理Day5

數字類型 cal 數組排序 return 函數 屬性 scrip each 第一個 #數組 ##一:數組的定義 1. 數組是值的有序集合 2. 每一個值叫做一個元素 3. 每個元素在數組中都有一個位置,以數字表示,叫做索引。索引從0開始。 ##二:特

JavaScript學習筆記整理Day4

沒有 默認值 函數的調用 -- 復雜 簡潔 day4 打開 nts ##函數 ####函數是一段在一起,可以做某件事的程序。 ###優點:控制程序設計的復雜性 1. 提高軟件的開發可靠性 2. 提高軟件的開發效率 3. 提高軟件的可維護性

JavaScript學習筆記整理Day9

elements substr() 長度 開平 and ret val false index 一.JavaScript定時器:   1.單次定時:setTimeout(fn,time);   2.多次定時:setInterval(timer);   3.停止單次定時:cl

JavaScript學習筆記整理Day10

表達 所有 原子 驗證 code abc 表達式 color 步驟 一.正則表達式(規則表達式)   定義:使用單個字符串來描述、匹配一系列符合某個語法規則的字符串搜索模式 二.正則表達式的作用   操作字符串是正則的唯一作用(驗證用戶名,驗證電話號碼,驗證密碼等表單元

python語言學習筆記整理

hello 如果 顏色 價格 姓名 識別 可變 等於 cat 什麽是程序? 程序等於數據結構加算法,那麽數據結構是一個靜態的東西,算法是一個動態的東西,我們用一個新的語言編寫這個程序,我們要考慮到語言也主要由數據結構和算法相關的東西,或靜態或動態的東西來構成,所以我們可以把

Deep Learning(深度學習學習筆記整理系列三

學習能力 架構 -s 解釋 區別 初始化 filter 大牛 ted Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明

Deep Learning(深度學習學習筆記整理系列四

輸入 刪除 encoder 添加 http 標簽 聯系 稀疏 初級 Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也

Deep Learning(深度學習學習筆記整理系列七

試圖 能夠 多層 深度學習 註意 理解 pap http 相關 Deep Learning(深度學習)學習筆記整理系列 聲明: 1)該Deep Learning的學習系列是整理自網上很大牛和機器學習專家所無私奉獻的資料的。具體引用的資料請看參考文獻。具體的版本聲明也

Struts2學習筆記整理(二)

方式 通過 login 學習 優點 span 圖片 cut 通配符 這裏是重點. Action接口 struts2 的Action可以是POJO 為了讓用戶開發的Action更加規範struts2提供了一個Action接口 ActionSupport基類 Strut

Struts2學習筆記整理(四)

配置 lin 彈出 ons cut htm servlet onf tdi Struts2上傳下載 文件上傳 如果想使用HTML表單上傳文件(一個或多個),那麽必須把HTML表單的enctype屬性設置成multipart/form-data,且method=post, 且

linux學習筆記整理

自己 引導 div 學習筆記 linu 守護 生命周期 並且 linux 程序 進程 守護進程 1程序只是一組指令的有序集合,它本身沒有任何運行的含義,它只是一個靜態的實體。、 2進程則不同,它是程序在某個數據集上的執行。進程是一個動態的實體,它有自己的生命周期。反映了一

JS第一周學習筆記整理

業務邏輯 註釋 如何判斷 email 聲明 變量賦值 nts 自帶 小括號 目錄 JS正式課第一周筆記整理 JS正式課第一周筆記整理 webstorm : 代碼編輯器 瀏覽器: 代碼解析器; Git : 是一個工具;用於團隊協作開發項目管理代碼的工具;在工作中用g

NPM 學習筆記整理

關系 fig 倉庫 註釋 ast master 字段 之前 數字 NPM 學習筆記整理 閱讀 550,2017年06月04日 發布,來源:blog.ihoey.com 什麽是 NPM npm 之於 Node ,就像 pip 之於 Python , gem 之於 Ruby

PLSQL學習筆記整理

arc tab employee 部分 執行 整理 number int bsp PLSQL中常用的自定義類型就兩種: 記錄類型、PLSQL內存表類型(根據表中的數據字段的簡單和復雜 程度又可分別實現類似於簡單數組和記錄數組的功能) 記錄類型:record type 類

【多線程學習筆記整理】001_多線程技能

current string exception 引入 ktr cpu implement interrupt 構造 一.線程和進程的區別   首先我們引入百科上對進程的解釋      進程粗暴一點的理解可以理解為一個程序,每個進程都有自己的內存空間,用戶每啟動一個進程,操

【mysql學習筆記整理

結束 ant 出現次數 varchar 移動 desc cal direct 指定 /*mysql學習筆記整理*/ /*常用的數據庫操作對象*/ #庫的操作#創建#數據庫的創建USE mysql;CREATE DATABASE db_x;#刪除#刪除數據庫DROP

scala學習筆記整理之二

基於JVM的程式語言Scala Scala介紹 1、Scala官網6個特徵 ① Java和scala可以無縫混編 ② 型別推測(自動推測型別) ③ 併發和分散式(Actor類似於多執行緒) ④ 特質trait,特徵(類似java中interfaces 和 abstract結合)

Scala學習筆記整理之一

Scala安裝使用 1、windows安裝及配置環境變數 官網下載scala2.10:https://www.scala-lang.org/download/2.10.4.html 下載好後安裝,記住安裝包路徑 配置環境變數(和配置jdk一樣) 新建SCALA_HOME 編輯path變

Python學習筆記整理Module1

程式語言介紹 Python介紹 Python安裝 第一個Python程式 變數 程式互動 格式化輸出 資料運算 資料型別 控制流程 進位制與字元編碼 程式語言介紹 程式語言的定義及作用: 程式設計的定義:‘動詞’即寫程式碼。 程式設計的作用:讓計算