• 在網上求助計算化學問題的時候必須把問題描述得詳細、具體、準確、清楚

    在網上求助計算化學問題的時候必須把問題描述得詳細、具體、準確、清楚

    文/Sobereva@北京科音

    First release: 2021-Oct-18  Last update: 2022-Jun-11


    筆者從十幾年前開始就廣泛在網上回答計算化學問題,如今在三個計算化學QQ群(思想家公社1、2、3號群)以及一個論壇(計算化學公社http://bbs.keinsci.com)每天都花巨量時間回復問題。愈發感覺如今計算化學新人在提問時普遍越來越偷懶,而且提問方式變得越來越沒基本邏輯、對問題描述能力越來越差,老是在沒有任何前提的情況下突然蹦出一、兩句沒頭沒尾的話來提問。提問時候表述含糊不明、不提供解決問題需要的很顯然的關鍵性信息、不說清楚前提條件、不肯多打點字把具體情況交代清楚,這些問題真是越來越嚴重,筆者對這些情況的感觸實在太深。每次遇到這類提問者,我都感覺很棘手或挺煩惱,我通常沒時間精力去打字引導對方把各種關鍵要素都一一交代出來,但看著有人在我建立的群/論壇里提問得不到解答我心里又不舒服。我實在忍不住專門寫個小文,讓讀者充分意識到把問題描述詳細、具體、準確、清楚的重要性。下面我將最近一個月以來我在我的QQ群和公社論壇答疑時遇到的有代表性的20多個提問列出,通過給出我的吐槽讓讀者認識到提問時該注意什么,怎么避免犯同樣的錯誤,希望新人們在求助時能引以為鑒。記住,不好好交代問題,可能得不到任何回復,也可能在他人一次次地誘導你交代問題詳情過程中浪費許多自己和他人的時間,還有可能得到不準確的回復導致自己最終吃虧。以前筆者還寫過一篇《在網上求助計算化學問題時的注意事項》(http://www.shanxitv.org/79),此文也算是對那篇的一個重要補充。


    Q1:老師,請問算相互作用前結構優化環節我對雙分子體系幾種可能構型進行了m062x計算,結果嘗試的幾種構型的結果自由能僅差0.01,請問是計算誤差嗎?還是結果可信,用能量較小的體系

    我的吐槽:什么體系?什么基組?數值是什么單位?這些關鍵的什么都沒說,還怎么回答?

    “雙分子”這種描述根本就沒有提供充分信息。兩個小肽結合也叫雙分子,兩個氫氣分子結合也叫雙分子,相互作用能差了N個數量級。具體是什么分子、怎么結合的必須描述清楚,最好直接把幾個構型的截圖發出來,既省得打字來描述,別人也能確切知道你到底考慮了哪幾種構型、構型到底有沒有意義。順帶一提,由于初學者總是犯低級錯誤,用的結構甚至都是大錯特錯、存在嚴重硬傷的,筆者答疑時總希望提問者直接把結構貼出來,以判斷當前問的問題有沒有回答的意義。初學者經常意識不到自己在更基本的層面就可能已經犯了其它的錯誤,最基本、深層的問題不先解決的話,回答提問者原本問的表面上的問題也就根本沒意義。

    基組直接影響計算精度,如果沒常識地用一個破爛基組計算,精度無從談起,那后面的問題根本就沒必要回復了。居然提問者連如此關鍵的信息都沒給出。

    單位是Hartree還是kcal/mol,差大了去了,0.01 kcal/mol可以說沒差別,而0.01 Hartree(6.27 kcal/mol)對于弱相互作用來說那就是明顯的差異了。提問時單位都不寫,都沒有最最基本科研工作者的素養,更何況描述能量常用單位很多,包括kcal/mol、kJ/mol、Hartree、eV,哪能把單位給省了?(又不是像比如原子電荷,單位用的統一都是e)

    奉勸提問者,在描述當前計算的時候,要拿出寫paper的computational details部分的態度來寫,要想得到準確、有價值的回答就別在提問上敷衍了事。

    順帶一提,提問時候計算級別名字必須要寫嚴謹、準確,M06-2X不要寫成m062x,后者那是Gaussian、ORCA等程序才支持的關鍵詞的寫法,而不是在一般語境下方法名的正當的寫法。


    Q2:請問一下,使用SIMLE直接生成構象,再用來做結構優化+振動光譜的計算,一般可靠嗎?

    我的吐槽:根本沒有叫SIMLE的東西(那叫SMILES。提問時應當盡可能避免打錯任何文字和單詞避免引起歧義)。問的具體是什么體系,甚至是哪類體系都不說,還談什么可靠不可靠?而且靠的是什么程序生成的構象?體系特征、所用程序是此問題的答案的決定因素,居然最重要的信息一個也沒給。很多體系柔性很大,通過諸如OpenBabel等程序基于SMILES直接給出的結構根本沒法保證能直接優化到最穩定構象,所以算的振動光譜也沒實際意義。還有大量體系的立體結構特征根本無法光靠SMILES這樣一維信息描述,比如原子圖簇。在追問下,提問者才繼續吐露了一點信息,說原子數是20~40,這依然讓答疑者處于猜謎狀態,還是不肯直接說清楚到底是什么類型的體系,交代問題時吞吞吐吐誰還愿意回答?痛痛快快一次性把要被SMILES字符串描述的分子特征說清楚就不行么?

    在此強調,問問題時候必須要把自己掌握的一切信息盡可能充分地一次性描述清楚,特別是體系結構,能給出化學式或立體結構的要直接給出,別就交代一些零星信息。你提供的信息越充分,別人就能越快速、越準確地回答。如果沒有提供有效信息,你的問題完全就是unanswerable的狀態,少數情況有熱心人且有閑工夫時可能還會提示你進一步提供信息,而大多數情況根本就沒人理了。求助時要搞清楚立場,不是你考別人、玩解謎游戲,要好好想想怎么提問才能吸引別人快速給出有針對性的有效的回復。


    Q3:Sob老師好,我看到molpro例子中計算HCHO的例子,其中OCC設置為...[略]
    我的吐槽:你指的是哪里的例子?總是有人問看了某某某程序的例子,或者計算某某某問題的例子,之后自己有問題。然而提問者卻總是不說這例子到底是什么出處,到底是哪個文檔/網頁,或哪篇博文/帖子,別人都不知道你看的文章內容是什么、里面原話是怎么寫的,這讓別人怎么回答?雖然有時提問者會復述一下原文,但由于提問者對知識可能掌握不扎實,往往根本沒有正確傳達原文的意思,或者漏掉了原文里的重要信息。

    在此特別提醒,但凡提到某某某教程的時候,別假定別人知道你說的是什么,而必須明確說清楚出處。如果是知名的書籍/文章,至少給出標題,如果是不知名的,必須給出具體網址讓答疑者能訪問得到。


    Q4:gromacs動力學加電場跑10ns分析rmsd,一直達不到平衡態,但相同結構不同電場下,基本在2ns就已經達到平衡了,繼續加大步數,改變依然不大。有什么解決辦法嗎?
    我的吐槽:這問題的邏輯十分莫名其妙,“不同電場”指的是什么電場?原先達不到平衡的電場是什么樣?能平衡的時候電場又是什么樣?關鍵信息完全沒說清楚,語言表達能力不過關。而且是什么樣的體系、電場具體怎么加的也都沒說,根本沒法回答。


    Q5:

    我的吐槽:這是如今特別特別特別典型和常見的一個情況,提問者就如同寫記敘文時候都不知道要有時間、地點、人物、起因、經過、結果這些最基本的要素。什么程序算的?算的什么體系?具體怎么算的?想解決的問題究竟是什么?關鍵信息一概不說,假定別人有讀心術啊?當前問題就是典型的unanswerable問題,給別人出個題,而題目里根本就沒足夠的解題條件,甚至都不明說讓別人回答什么。


    Q6:

    我的吐槽:又是典型的什么重要信息都不描述,光貼個圖就了事。什么體系?用什么程序做的電子激發計算?用的關鍵詞是什么?最后靠什么程序(雖然通過圖像風格我知道是用Multiwfn)什么方式怎么繪制的圖?對于前三個問題,如果懶得把前三個問題打字描述、或者怕語言描述不準確,就直接把電子激發計算輸出文件上傳到網盤,并在此處貼出鏈接,別人一看就能徹底一次性了解清楚。


    Q7:

    我的吐槽:“光譜的例子”也不說是哪里的什么例子,什么前提也都不交代,這種描述根本毫無意義。當前用的什么程序、用的什么關鍵詞、算的什么體系都只字不提,上面那種報錯又根本不直接體現導致問題的必然原因,而是一個典型的“多對一”的報錯提示,因此當前問題根本就無解,或者別人需要長篇大論花好幾百字才能把各種可能性全都總結出來,基本不可能有人有這耐心。就算真有超熱心、又很懂行的人完整列舉出所有可能性,提問者屆時還得自己去分辨哪種符合自己當前情況,同時耽誤別人和自己的時間。這種情況,也是直接貼出來輸出文件的下載鏈接,內行人一看立馬就能給你答案,至少也能把導致出錯原因的可能范圍大幅度縮小,進而能夠針對性地回復。


    Q8:

    我的吐槽:這算的是啥呀?我都根本不知道你在什么設定下算的什么東西,怎么告訴你正常不正常?多描述一點具體情況都不情愿么?


    Q9:

    我的吐槽:不上傳輸入、輸出文件讓別人看看具體細節、判斷哪里可能不合理,誰猜得到這么靈異的現象是怎么回事?區區幾個原子的計算,輸出文件壓縮后就一丁點大,干嘛不上傳?


    Q10:sob老師,能量最小化時凍結的體系還會跑是什么原因呢
    我的吐槽:就單單這么一句話,啥基本要素都沒體現,用什么程序在什么設定下跑的只字不提,神仙也回答不了。


    Q11:老師您好,最近算兩個芳環之間的堆積作用,麻煩問一下,用什么方法和基組計算最好,謝謝
    我的吐槽:此問題前提非常不充分。當前體系多少個原子也不說,計算資源也不說,用的計算程序也不說,要求的精度高低也不說,具體是什么任務(優化還是算能量)也不說,每一條都是對答案產生決定性影響的要素,不交代根本就沒法回答。CCSD(T)/aug-cc-pVQZ的精度當然足夠好,然而提問者幾乎一定算不動。我特別反感不給出基本前提的情況下就問“用什么最好”、“買什么最好”這種問題,起碼得交代預算、用途啊!對影響答案的關鍵性問題做必要的限定,這是最最基本的提問邏輯。

    如果這個問題這么問,就可以比較準確地回復了:“我要算兩個芳環之間的堆積相互作用能,總共60個原子左右,使用Gaussian 16 A.03程序,有個36核的服務器,希望精度盡可能好。麻煩問一下,用什么方法和基組計算最好?”。


    Q12:請問一下大家,之前有個帖子是一位老師寫的腳本來畫勢能圖的,我找不到了,大家可以給一下嘛~
    我的吐槽:此問題沒有基本的邏輯。所謂的勢能圖是曲線圖還是填色圖還是等值線圖還是地形圖?勢能數據是什么程序做什么任務算出來的?是什么論壇哪個板塊里的帖子?根本什么限定條件都沒有,就算是正在用那個人寫的腳本的人,看到此問題都沒法確定自己用的腳本是不是這個人正在問的。


    Q13:請問老師 高斯最多能算多少原子?
    我的吐槽:這個問題毫無意義,在什么計算級別下算什么體系的什么問題,以及用的機子性能,全都只字不提。特別是Gaussian里分子力場和CCSD(T)方法能算的尺度甚至相差N個數量級。我只好在群里回復“1個~幾萬都能算”,當前提問者提供的信息只夠給出這么一個極度模糊的答案,顯然這對提問者毫無用處。我若根據分子力場、半經驗、普通泛函、雙雜化泛函、CCSD(T)不同檔次方法...再考慮6-31G*、def-TZVP、def2-TZVP、def2-QZVP不同檔次基組...再考慮提問者用6核PC機、20多核廉價服務器、50核高性能雙路服務器各種計算性能...再考慮計算單點/優化/振動分析/超極化率等各種計算任務...全部情況排列組合分別給出答案(超過100種),我得打多少字?顯然沒這個閑功夫和精力。這里再次強調,問得不具體,就不要指望別人能回答得具體。


    Q14:

    我的吐槽:有很多人在網上問怎么回復審稿人意見,然而往往就把審稿人意見貼出來,卻幾乎不怎么在提問時交代自己的體系,真是一點提問的基本邏輯都沒有。回答問題的人又沒看過你投的文章,根本不知道你研究的是什么體系的什么問題、具體怎么研究的、怎么討論的,你又不把情況交代清楚,別人怎么回答你的問題?像上面這個問題,甚至提問者連體系結構圖都不發出來,別人根本都不知道碳原子和氧原子在什么位置、起到什么作用、同構化具體指什么,怎么可能回答這個問題?每次提問時都要好好想一想,別人在解答你的問題時都可能需要什么信息,凡是可能對答疑有用的信息全都充分、詳細交代出來。另外,光是把審稿人意見簡簡單單一貼,連具體情況都懶得多寫點文字、貼圖去描述,就直接等著別人幫你寫審稿回復,實在顯得太沒誠意,我都根本不愿意去幫。


    Q15:老師,請問體系內包括烷基和羰基,他倆結合的時候一般調整誰的位置呢
    我的吐槽:什么體系?倆基團怎么結合的?為什么要調整?調整的目的是什么?當前問題我真是一丁點也看不懂。


    Q16:windows下做rdf選擇完之后怎么退出啊,ctrl+D不行啊
    我的吐槽:又是連用的什么程序都不說。雖然我估計他可能是用的gmx rdf,但是連提問都不好好問,最基本信息都懶得交代一下,顯得態度特別敷衍,缺乏求助的誠意,我遂直接無視了。


    Q17:請教大家一個問題,在計算時,如果要固定兩個原子鍵長不變,應該如何做?
    我的吐槽:至少有幾十種程序支持限制性優化或動力學過程中施加限制/約束,做法我全都給你列一遍?


    Q18:麻煩問一下 H matrix size has been exceeded是什么意思呀
    我的吐槽:什么語境也不交代,誰都不知道這是什么程序做什么計算輸出的信息、H矩陣指什么矩陣,怎么回答?不同情況解決方法截然不同,碰到類似這樣的提示,說不定有的程序里改個運行參數即可,有的程序則可能需要改源代碼里控制矩陣尺寸的變量后重新編譯。亦有可能是程序使用方式不當,導致出現開發者沒有考慮到的異常情況。順帶一提,如果是用的非主流程序,一般場所里大概率沒其他人用過,最好直接發郵件問開發者,或者在相應程序的官方論壇/郵件列表里提問,這樣求助最快也最準確。
    PS:我每天時間本來就嚴重不夠用,還要在網上回答巨量問題,如果一個問題交代得清楚而且我也會的話我就回答,而像這樣根本沒有提供回答問題必要信息的情況我就直接無視了,我基本不會去猜著回答,也基本不會去上趕著要求提問者再補充信息。記住,沒人回復絕對不代表沒人會,或者會的人沒看到,而很大概率是因為提問方式不當。


    Q19:請問老師,我用mo52x/6-31g*算出來溶解自由能是-40多kcal/mol,這個正常嗎
    我的吐槽:老有人問計算的結果是否正常,對體系卻只字不提,這種問法明顯毫無意義。是小分子還是大分子?是中性的還是帶電的?這都直接決定溶解自由能的數量級,不說體系特征怎么可能告訴你正常還是不正常?
    PS:再次順帶提醒,提問時必須把計算級別名字嚴格寫正確,怎么o和0都不分?我知道提問者想說M05-2X,但內行科研工作者普遍是很嚴謹的,諸如我就很不愿意將錯就錯、對明顯錯誤的寫法視而不見,而每次我給提問者斧正計算級別名字的寫法顯然對我是個負擔。提問者在提問時,尤其是在高水平討論場所里,必須把計算級別名寫準確,省得還需要花費別人的寶貴時間來斧正你。


    Q20:請問各位老師計算內鹽時,優化結構發生嚴重變形是什么原因呢(采用的是Blyp/6-31G** 并添加了溶劑模型)
    我的吐槽:嚴重變形是相對于什么狀況的嚴重變形?原先是什么結構也不說,怎么回答?把優化前后的截圖都發出來,別人不就立馬明白了。如果是一開始建模就很不合理、相對于真實結構是嚴重扭曲的,通過優化使得結構明顯自發變得合理,這顯然是再正常不過的事,都根本不需要提問。在這里強調,但凡在提問時候說“發生了...變化”、“使用了不同的...”的時候,都必須要說清楚原先是什么情況、參照物是什么。另外,描述計算方式的時候不要有任何含糊性,"溶劑模型"用的到底是什么溶劑模型?很垃圾的Onsager是溶劑模型,Gaussian默認的IEFPCM也是溶劑模型,而精度、可靠性、適用性有天壤之別。如果你是初學者,我*吐血*建議直接把所有關鍵詞都完整貼出來,既可以避免描述時可能的含糊之處,也可以順帶讓內行人看看一下你的關鍵詞用沒用對(如果輸入文件里還有其它關鍵信息也要交代。比如Gaussian里用gen或genecp,還必須把具體用的基組交代出來)。


    Q21:請問開始跑MD了,輸入什么命令可以看還要跑多長時間呀?
    我的吐槽:世界上有多少種分子動力學模擬程序,就有多少個答案。


    Q22:

    我的吐槽:
    1 你學中文幾天了?能不能好好組織一下語言再問?
    2 ubutu(烏布圖)是什么鬼?
    3 這個問題表達的是什么邏輯?如果你想問為什么按照b站某GROMACS安裝視頻安裝但沒有裝上,你不說視頻是哪個視頻、具體遇到了什么問題導致沒裝上,別人怎么回答你?如果你就是想讓別人給你指一條安裝GROMACS的明路,在此處提b站的GROMACS安裝視頻又有什么意義?


    Q23:請問有老師安裝過dssp嘛 原來那個方法不行了
    我的吐槽:“原來那個方法”是什么方法?你在哪里看到的?你憑什么覺得就這么輕微一暗示,別人就立馬知道你說的是什么?而且“不行了”是怎么個不行法,你不說清楚,別人怎么知道是原本的安裝教程就有問題,還是你自己的安裝操作或軟硬件環境有問題?提問的時候絕對不要當謎語人。


    Q24:請問 體系有70多個原子用高斯優化一個多星期還沒出來,要繼續優化嗎?
    我的吐槽:又是特別典型、極其常見的沒有基本邏輯和常識的提問!所有最關鍵的信息提問者只字未提,別人怎么可能給你回答?非要讓我回答,我只能告訴你“看情況,可能值得繼續優化跑完任務,也可能不應當繼續優化”,這種含糊其辭的回復對你能有實際意義么?而且提問者居然連怎么算的都只字未提,諸如如果你用CCSD/cc-pVTZ優化這樣大小的體系,算到去世也算不完,之前一個多星期本身都已經是完全白算;或者如果當前優化都已經嚴重規律性震蕩了,再怎么跑下去也完全是白搭,早該停了。PS:在我來看,計算化學領域的計算量>95%都是被初學者耗無意義的胡算瞎算白白浪費掉的!

    在我常年在網上答疑中老看到有人問“怎么老也算不完”這種問題,幾乎每次都是對方提供的少得可憐的信息令別人完全沒法回答。我在此明確強調,問這類問題時必須完整提供這些信息。少一條都不行:
    具體算的是什么體系?如總原子數、體系具體類型(有機分子、過渡金屬配合物、鑭系/錒系配合物、原子團簇、分子團簇等等)、包含的元素都有什么。最好直接給體系截圖
    用的程序、版本和完整的關鍵詞是什么?
    用多少核的機子跑的?(假定所有核都已經用于當前計算了)
    當前跑成什么狀態了?比如對于幾何優化,當前跑了多少步了、優化過程有沒有收斂或震蕩趨勢、結構有沒有向預期的結構變化?(用GaussView自行監控便知,這都不會的話看http://www.shanxitv.org/164)。如果是比如單點計算,當前算到哪個步驟、屏幕上顯示什么了?(外行的話,強烈建議給輸出文件最后幾十行的截圖)

    如果你懶得描述上述信息,或者不會準確描述,直接把輸出文件提供就完了。


    Q25:老師,審稿人讓我用EOM-CCSD計算一個17個分子在DMSO溶劑中的第一和第二激發態,想問一下一般這種要耗時多久

    我的吐槽:“一個17個分子”是什么鬼?到底是一個分子還是17個分子構成的團簇?提問時候最起碼保證沒有語病、沒有錯字、沒有最基本的邏輯錯誤,不要讓人覺得問題特別迷。不僅當前到底是什么體系沒說清楚,用什么基組也不說,什么計算資源下做計算也不說,這問題根本不可能回答。用很好的80核機子在很垃圾的3-21G基組下計算,和很爛的2核機子在較好的cc-pVTZ基組下計算耗時有天壤之別。


    Q26:問一下sob老師和大家,計算蒙脫石的HOMO和LUMO,只能得到HOMO,不顯示LUMO是怎么回事

    我的吐槽:什么程序算的?具體用什么設置算的?用什么程序看的軌道?可視化程序里怎么操作的?什么具體信息都沒有怎么回答?顯然描述必須具體到內行人能根據你的描述在腦中重現出你當前遇到的具體情況、能準確定位出問題的所在。


    Q27:

    我的吐槽:什么亂七八糟的!彌散函數問題、溶劑效應問題、理論方法問題,稀里糊涂瞎攪合在一起,完全不知道在說什么、到底想問什么!而且基組名、泛函名都沒寫對,態度極其敷衍,令人看著就不爽。


    總結:

    你提問的時候交代的信息越充分、詳細,別人的回復就能越具體、越有針對性、越可能直接解決你的問題。想盡快得到有效的回復就絕對不能讓別人必須猜測你當前的情況。如果都懶得把問題描述得清楚具體,就根本別指望會有人給你靠譜的回復。提問時還必須要杜絕各種語義含糊不明、邏輯不清的描述,和當前問題有直接關聯的所有關鍵性的前提、要素必須全都一次性充分交代清楚,一個都不能漏,絕對不能偷懶。如果不好好描述清楚問題而造成歧義,甚至別人還可能誤會你的實際情況,給你錯誤的答案,結果把你給害了。而且提問時候必須組織好語言,絕對不要有語病、錯字、單詞/名詞誤拼,把問題寫出來之后必須謹慎地看一遍再發,否則可能給其他人的理解和解答造成嚴重困難,也顯得你缺乏求助的誠意。還要注意你描述問題的語句里是否有可能造成歧義的地方,這一定要避免。

    計算化學問題在提問時要考慮的常見關鍵要素如下。但凡和當前問題可能有聯系的要素,都必須在提問時明確說清楚,一次性交代出來。
    ?當前研究的是什么體系在什么狀態/條件下的什么問題?PS:當體系特征復雜、別人不容易根據你的描述想象時,若不涉及保密的話強烈建議給出截圖
    ?當前問題涉及的是什么計算程序、什么版本?
    ?當前計算用的關鍵詞具體是什么?具體計算/操作過程是什么?
    ?你的硬件條件如何?(CPU核數、空余內存量)當前的軟件環境如何?(操作系統名字、具體版本、編譯器信息等。如果用的是虛擬機或WSL之類特殊環境必須說明)
    ?對于計算報錯,輸出文件里都有什么和報錯有關的提示?
    PS:曾經很多次答疑的時候,都遇到提問者隱瞞一些關鍵信息(而且誰都意料不到對方會那么干),在最后才終于透露出來,造成之前白打字回復半天。這令我無奈,有時甚至氣憤,感覺是在被耍。比如曾經有人問怎么Multiwfn在Ubuntu里裝不上,我回復好一陣之后也沒解決,對方最后才突然說他是在WSL下運行的...這么關鍵的情況不交代,簡直是在耍我。

    對于語言不好全面交代清楚的較為復雜,特別是涉及到一些奇怪情況的量子化學計算程序方面的問題,盡可能直接提供輸入、輸出文件的網盤鏈接,這是最有效率的提問方式。文件若較大,或者有多個文件,要壓縮到一起后上傳。當有多個文件時,一定要清楚說明里面每個文件對應什么情況的計算,絕對不要讓別人一個個打開查看后去猜。一定要給答疑者盡可能提供便利。

    久久精品国产99久久香蕉