मैं कुछ रैपरों का उपयोग करने की कोशिश कर रहा हूं जिन्हें मैं अपनी पाइपलाइन निर्देशिका (स्नेकफाइल के समान निर्देशिका) में परिभाषित करता हूं बल्कि रैपर रेपो।

मैंने इसके लिए दस्तावेज़ों को देखा है और जब मैं एक पूर्ण पथ का उपयोग करता हूं तो यह ठीक काम करता है, लेकिन मुझे काम करने के लिए सापेक्ष पथ नहीं मिल सकता है। https://snakemake.readthedocs.io/en/latest/snakefiles/ मॉड्यूलरलाइजेशन.html#wrappers

जैसे निरपेक्ष पथ के माध्यम से निर्दिष्ट, कार्य

wrapper:
    "file:///Users/my_username/my_pipeline_dir/wrappers/wrapper_star-build/"

जैसे सापेक्ष पथ के माध्यम से निर्दिष्ट, काम नहीं करता

wrapper:
   "file:/wrappers/wrapper_star-build/"

यह डॉक्स के अनुसार एक सापेक्ष पथ के लिए स्वरूपण की मेरी व्याख्या है। मैंने निम्नलिखित सभी की भी कोशिश की है, जिनमें से कोई भी मेरे लिए काम नहीं करता है:

"file:wrappers/wrapper_star-build/"
"file:./wrappers/wrapper_star-build/"
"wrappers/wrapper_star-build/"

मैं --directory विकल्प का उपयोग कर रहा हूं ताकि मैं अपनी पाइपलाइन और आउटपुट को अलग-अलग व्यवस्थित रख सकूं।

snakemake --directory my_outdir/

अग्रिम में धन्यवाद।

3
vantom 22 जिंदा 2020, 16:59
आप किस स्नेकमेक संस्करण का उपयोग कर रहे हैं?
 – 
Manavalan Gajapathy
23 जिंदा 2020, 06:32
5.8.1
 – 
vantom
23 जिंदा 2020, 18:41
क्या आप सांपमेक कमांड और त्रुटि संदेश पोस्ट कर सकते हैं? आश्चर्य है कि क्या आप इसमें अलग-अलग कार्यशील निर्देशिका का उपयोग करते हैं, जिसमें स्नेकफाइल है।
 – 
Manavalan Gajapathy
23 जिंदा 2020, 19:22
क्षमा करें, मुझे और विवरण प्रदान करना चाहिए था। मेरा लक्ष्य एक निर्देशिका में पाइपलाइन रखना है, ताकि मैं इसे गिट के साथ प्रबंधित कर सकूं, और मेरी प्रयोग-विशिष्ट कॉन्फ़िगरेशन फ़ाइल और नमूना शीट को एक अलग रन निर्देशिका में रख सकूं। मैं कोंडा का भी उपयोग करता हूं।
 – 
vantom
24 जिंदा 2020, 13:36
यानी पाइप_डीआईआर $ स्नेकमेक --निर्देशिका रन_दिर/ --यूज-कोंडा उदाहरण के लिए, मैंने नियम में पूर्ण पथ के साथ अपने कलिस्टो रैपर का उपयोग करने की कोशिश की: "फ़ाइल: /// पाइप_दिर/wrappers/wrapper_kallisto" #runs बनाम "फ़ाइल: /wrappers/wrapper_kallisto" #नहीं चलता त्रुटि संदेश वर्कफ़्लो है: Conda env फ़ाइल मौजूद नहीं है: /wrappers/wrapper_kallisto/environment.yaml मुझे पूरा यकीन है कि दस्तावेज़ कहते हैं कि रैपर पथ साँप फ़ाइल के सापेक्ष होना चाहिए इस पर ध्यान दिए बिना कि आप --directory ध्वज का उपयोग करते हैं, लेकिन मैंने इसे जांचने के लिए आउटपुट निर्देशिका में कॉपी करने का प्रयास किया और यह अभी भी काम नहीं किया।
 – 
vantom
24 जिंदा 2020, 13:47

2 जवाब

सबसे बढ़िया उत्तर

जाहिरा तौर पर हम वर्कफ़्लो.स्नेकफ़ाइल और वर्कफ़्लो.आधारित चर का उपयोग कर सकते हैं। https://groups.google.com/forum/#!msg/ स्नेकमेक/cp9ZbGQgaic/Vtth6fcRO6cJ

वर्कफ़्लो.आधारित वह निर्देशिका है जहाँ साँप फ़ाइल रहता है।

snake_dir = workflow.basedir
......
wrapper:
    f"file:{snake_dir}/wrappers/wrapper_kallisto"
2
vantom 25 जिंदा 2020, 01:44
स्टैक ओवरफ्लो का उपयोग करने के लिए बहुत नया। आपकी सहायता के लिए धन्यवाद:)
 – 
vantom
27 जिंदा 2020, 13:52

क्या ऐसा कुछ काम करेगा?

import os
dir_path = os.path.dirname(os.path.realpath(__file__))

rule star_build:
    ...
    wrapper:
        f"file:{dir_path}/wrappers/wrapper_star-build/"

इस तरह हम अपने सापेक्ष पथ के सामने पथ जोड़ते हैं।

2
Maarten-vd-Sande 24 जिंदा 2020, 14:08
आपके सुझाव के लिए धन्यवाद, लेकिन मुझे अभी भी सही रास्ता नहीं मिल रहा है। dir_path, जब मेरे स्नेकफाइल के शीर्ष पर इस तरह से पहुँचा जाता है, तो लगता है कि यह मेरे स्नेकमेक इंस्टॉलेशन का मार्ग है, न कि मेरी पाइपलाइन निर्देशिका का पथ। तो अब मुझे यह त्रुटि मिलती है: Conda env फ़ाइल मौजूद नहीं है: /Users/my_username/miniconda3/envs/pipedev/lib/python3.7/site-packages/snakemake/wrappers/wrapper_star-build/environment.yaml क्षमा करें यदि मैं हूं यहाँ कुछ बुनियादी गलतफहमी। मैं इसे मैक पर एक कोंडा वातावरण में चला रहा हूं, अगर यह प्रासंगिक है।
 – 
vantom
24 जिंदा 2020, 20:51
उस पृष्ठ को खोजने के लिए धन्यवाद! इसने मुझे एक (कुछ हद तक सुरुचिपूर्ण) उत्तर दिया जिसका मैं नीचे वर्णन करूंगा। आपके द्वारा सूचीबद्ध इन दो दृष्टिकोणों में से किसी ने भी मेरे लिए काम नहीं किया। os.path.dirname(os.path.abspath(name)) मुझे वर्किंग/आउटपुट डायरेक्टरी देता है (वह डायरेक्टरी नहीं जिसमें स्नेकफाइल है) क्योंकि मैं --directory फ्लैग का इस्तेमाल कर रहा हूं। पाइपलाइन और आउटपुट अलग। ऐसा लगता है कि srcdir() को काम करना चाहिए, लेकिन यह वास्तव में मुझे जीथब पर सांपमेक रैपर रेपो में ले जाता है, जो मुझे लगता है कि सांपमेक रैपर के लिए srcdir मानता है।
 – 
vantom
25 जिंदा 2020, 01:30
सहायता करके हमें खुशी होगी। अजीब बात है कि srcdir ने ऐसा व्यवहार किया।
 – 
Manavalan Gajapathy
25 जिंदा 2020, 03:04