將ENA下載的MD5值轉化成md5sum可以識別的格式

本腳本可以將從ENA下載的MD5文件(如下)

run_accession   fastq_md5   fastq_ftp
SRR6039701  abd202ee5560384dc8e52e5e924c19ae;8469ccc631726de6fab0119e01732b57   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/001/SRR6039701/SRR6039701_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/001/SRR6039701/SRR6039701_2.fastq.gz
SRR6039704  6d44e41b97c339fc36895cb8e77a0949;f95ea68a0a7d4aa0c412ebf73ae7137b   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/004/SRR6039704/SRR6039704_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/004/SRR6039704/SRR6039704_2.fastq.gz
SRR6039713  1545094f325090e923132181d08ab800;6a51a3d036bab41479351531a27dd468   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/003/SRR6039713/SRR6039713_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/003/SRR6039713/SRR6039713_2.fastq.gz
SRR6039715  28ef2ac1974d6c302f7509ea61dcecc1;84155b05232383efe9bf0eb327e13d46   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/005/SRR6039715/SRR6039715_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/005/SRR6039715/SRR6039715_2.fastq.gz
SRR6039716  643ee49e5a20a415eadb063ec119f344;76a1e485c02961e3c9c7d99557551d3c   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039716/SRR6039716_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039716/SRR6039716_2.fastq.gz
SRR6039720  5269407a490a021ce00be6f3bd5b9ace;946b2307eb0def52cd2abe85c527c709   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/000/SRR6039720/SRR6039720_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/000/SRR6039720/SRR6039720_2.fastq.gz
SRR6039723  8657038bf0b51e5ca5011598457d394c;08c117bde33115c6f062d818237eb226   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/003/SRR6039723/SRR6039723_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/003/SRR6039723/SRR6039723_2.fastq.gz
SRR6039724  ffe27f5c5fb243b2ac12636187fa47c4;475b2ebed9ec973579d743e88960b6b3   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/004/SRR6039724/SRR6039724_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/004/SRR6039724/SRR6039724_2.fastq.gz
SRR6039726  510de07b9e579b37a58e72bcde795c42;bfdc0820f7965a1fe1025d51febea0e3   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039726/SRR6039726_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039726/SRR6039726_2.fastq.gz
SRR6039727  e1c2bdc5f0fb2329396613d0a807a065;8ffc58658489bb0918e8a5944cd6048f   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/007/SRR6039727/SRR6039727_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/007/SRR6039727/SRR6039727_2.fastq.gz
SRR6039728  238ae623a91cd87ab222a5cd3d41fe6b;c33fbaccea58a6ec1cd96a5efdc81894   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/008/SRR6039728/SRR6039728_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/008/SRR6039728/SRR6039728_2.fastq.gz
SRR6039732  fdd341b5ad1fafccf24479f12f11224b;1010af8747f2e017e4ad15b71a1dda2b   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/002/SRR6039732/SRR6039732_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/002/SRR6039732/SRR6039732_2.fastq.gz
SRR6039735  a161e2dad0fbcb38805b0edb2d006274;78499623c7db41560082ce28f6c190e6   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/005/SRR6039735/SRR6039735_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/005/SRR6039735/SRR6039735_2.fastq.gz
SRR6039736  2d43a8a4423a373b6ab8325c3229a832;ca8e26f8dfa930557a5dd74ab0662b15   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039736/SRR6039736_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/006/SRR6039736/SRR6039736_2.fastq.gz
SRR6039739  ff2f7cad774c7352bcc02adfd2377b19;c3e983ce8f6186abf1050d26ce6bfb33   ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/009/SRR6039739/SRR6039739_1.fastq.gz;ftp.sra.ebi.ac.uk/vol1/fastq/SRR603/009/SRR6039739/SRR6039739_2.fastq.gz

轉化成md5sum 可以識別的格式

abd202ee5560384dc8e52e5e924c19ae    SRR6039701_1.fastq.gz
8469ccc631726de6fab0119e01732b57    SRR6039701_2.fastq.gz
6d44e41b97c339fc36895cb8e77a0949    SRR6039704_1.fastq.gz
f95ea68a0a7d4aa0c412ebf73ae7137b    SRR6039704_2.fastq.gz

代碼如下

# 讀取原始文件內(nèi)容
with open(r'F:\SduPostDoc\Maize-Genome-and-Transcriptome\Maize-transcriptome-after-pathogen-infection\玉米瘤黑粉\00Rawdata\file.md5.txt', 'r') as file:
    lines = file.readlines()

output_lines = []

# 第一輪循環(huán):處理原始文件格式讯壶,將每行拆分成樣本ID、MD5哈希、URL
for line in lines:
    parts = line.strip().split('\t')
    sample_id = parts[0]
    md5_urls = parts[1].split(';')
    
    if len(md5_urls) == 2:
        md5_hash_1 = md5_urls[0]
        md5_hash_2 = md5_urls[1]
        url_1 = parts[2].split(';')[0]
        url_2 = parts[2].split(';')[1]
        # 添加兩行到輸出,每行包含樣本ID、MD5哈希和URL
        output_lines.append(f"{sample_id}\t{md5_hash_1}\t{url_1}")
        output_lines.append(f"{sample_id}\t{md5_hash_2}\t{url_2}")
    elif len(md5_urls) == 1:
        md5_hash = md5_urls[0]
        url = parts[2]
        # 添加一行到輸出梭稚,包含樣本ID豪硅、MD5哈希和URL
        output_lines.append(f"{sample_id}\t{md5_hash}\t{url}")

# 將處理后的數(shù)據(jù)寫入新文件
with open(r'F:\SduPostDoc\Maize-Genome-and-Transcriptome\Maize-transcriptome-after-pathogen-infection\玉米瘤黑粉\00Rawdata\file.md5new1.txt', 'w') as file:
    file.write('\n'.join(output_lines))

# 讀取處理后的文件
with open(r'F:\SduPostDoc\Maize-Genome-and-Transcriptome\Maize-transcriptome-after-pathogen-infection\玉米瘤黑粉\00Rawdata\file.md5new1.txt', 'r') as file:
    lines = file.readlines()

output_lines = []
current_md5 = None

# 第二輪循環(huán):將相同MD5哈希的文件名合并到一行
for line in lines:
    parts = line.strip().split('\t')
    md5_hash = parts[1]
    filename = parts[2].split('/')[-1]

    if current_md5 == md5_hash:
        # 如果MD5哈希相同羡疗,將文件名添加到當前行
        output_lines[-1] += f" {filename}"
    else:
        # 如果MD5哈希不同,創(chuàng)建新行豪椿,并添加MD5哈希和第一個文件名
        current_md5 = md5_hash
        output_lines.append(f"{md5_hash}\t{filename}")

# 將合并后的數(shù)據(jù)寫入新文件
with open(r'F:\SduPostDoc\Maize-Genome-and-Transcriptome\Maize-transcriptome-after-pathogen-infection\玉米瘤黑粉\00Rawdata\file.md5new2.txt', 'w') as file:
    file.write('\n'.join(output_lines))

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奔坟,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子搭盾,更是在濱河造成了極大的恐慌咳秉,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸯隅,死亡現(xiàn)場離奇詭異澜建,居然都是意外死亡,警方通過查閱死者的電腦和手機蝌以,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門炕舵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跟畅,你說我怎么就攤上這事幕侠。” “怎么了碍彭?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長悼潭。 經(jīng)常有香客問我庇忌,道長,這世上最難降的妖魔是什么舰褪? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任皆疹,我火速辦了婚禮,結果婚禮上占拍,老公的妹妹穿的比我還像新娘略就。我一直安慰自己捎迫,他們只是感情好,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布表牢。 她就那樣靜靜地躺著窄绒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪崔兴。 梳的紋絲不亂的頭發(fā)上彰导,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音敲茄,去河邊找鬼位谋。 笑死,一個胖子當著我的面吹牛堰燎,可吹牛的內(nèi)容都是我干的掏父。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼秆剪,長吁一口氣:“原來是場噩夢啊……” “哼赊淑!你這毒婦竟也來了?” 一聲冷哼從身側響起鸟款,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤膏燃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后何什,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體组哩,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年处渣,在試婚紗的時候發(fā)現(xiàn)自己被綠了伶贰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡罐栈,死狀恐怖黍衙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荠诬,我是刑警寧澤琅翻,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站柑贞,受9級特大地震影響方椎,放射性物質發(fā)生泄漏。R本人自食惡果不足惜钧嘶,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一棠众、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧有决,春花似錦闸拿、人聲如沸空盼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揽趾。三九已至,卻和暖如春迟隅,著一層夾襖步出監(jiān)牢的瞬間但骨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工智袭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奔缠,地道東北人。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓吼野,卻偏偏與公主長得像校哎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瞳步,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容